Conversions

Create conversion jobs, process stored assets or new uploads, download results, and save finished files directly to a workspace bucket.

GET/api/conversions/catalog
200 OK

List supported format pairs, conversion options, and anonymous and registered limits.

POST/api/conversions
201 Created

Create a temporary conversion job and presigned source upload.

Request body
{
  "filename": "campaign.png",
  "size": 2841024,
  "inputFormat": "png",
  "outputFormat": "avif",
  "contentType": "image/png",
  "options": { "quality": 82, "width": 1200 }
}
Convert a stored asset with an API key
curl -X POST "$STEADYLINK_API/api/conversions" \
  -H "X-API-Key: $STEADYLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceAssetId": "asset_01J...",
    "inputFormat": "png",
    "outputFormat": "avif",
    "options": { "quality": 82, "width": 1200 }
  }'
Workspace API keys need assets:read to read conversion jobs and assets:write to create, start, cancel, or save them. Each authenticated job belongs to the exact API key that created it. Anonymous jobs receive an accessToken instead.
POST/api/conversions/{job_id}/start
202 Accepted

Confirm the source upload and queue conversion processing.

GET/api/conversions/{job_id}
200 OK

Read progress, output metadata, errors, expiration, and save status.

GET/api/conversions/{job_id}/download
200 OK

Receive a short-lived download redirect for a completed result.

POST/api/conversions/{job_id}/save
202 Accepted

Save a completed conversion to a bucket and enter the normal finalization and scanning pipeline.

Save result
{
  "bucketId": "bucket_01J...",
  "path": "converted/",
  "filename": "campaign_converted.avif"
}
DELETE/api/conversions/{job_id}
200 OK

Cancel or remove a temporary conversion job.