Export a public container image to tar.
{
"image": "nginx:latest"
}
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "queued",
"image": "nginx:latest",
"createdAt": "2026-01-04T20:00:00Z",
"sizeBytes": null
}
curl -X POST https://containerdl.com/v1/exports \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer cdl_live_xxx" \\
-d '{"image":"nginx:latest"}'
Export from a private GHCR or Docker Hub image.
Credentials are used only to pull the image for this request, stored temporarily in memory during processing, and never stored in database or logs.
{
"image": "ghcr.io/myorg/private-app:v1.0",
"registry_auth": {
"username": "myusername",
"password": "ghp_myPersonalAccessToken"
}
}
curl -X POST https://containerdl.com/v1/exports \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer cdl_live_xxx" \\
-d '{
"image":"ghcr.io/myorg/private-app:v1.0",
"registry_auth":{
"username":"myusername",
"password":"ghp_myPersonalAccessToken"
}
}'
Private registry authentication is available on Light and Pro plans only. Free plan users can export public images without authentication.
Supported registries: ghcr.io (PAT as password), docker.io (access token).
- Use HTTPS only.
- Use read-only tokens with minimal scopes.
- Rotate tokens regularly.
- Never commit tokens to git.
Check export job status.
curl https://containerdl.com/v1/exports/{id} \\
-H "Authorization: Bearer cdl_live_xxx"
Download completed tar file.
curl -L https://containerdl.com/v1/exports/{id}/download \\
-H "Authorization: Bearer cdl_live_xxx" \\
-o myimage.tar
Create a multi-image bundle from a stack file.
{
"input": "version: '3'\\nservices:\\n web:\\n image: nginx:latest",
"kind": "compose"
}
curl -X POST https://containerdl.com/v1/bundles \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer cdl_live_xxx" \\
-d @stack.json
Check your current credits.
curl https://containerdl.com/v1/credits \\
-H "Authorization: Bearer cdl_live_xxx"