Image: Convert format — API reference
Convert to a different image format
/api/v1/jobs
Convert to a different image format
Request body
| Field | Type | Required | Description |
|---|---|---|---|
tool | string | required | Must be "image-convert" for this endpoint. |
input.url | string (URL) | required | Publicly fetchable URL of the source image file. Use /v1/uploads to upload directly to R2 if you don't have one. |
options | object | optional | Tool-specific knobs. Defaults shown in the example. Unknown keys are ignored. |
webhookUrl | string (URL) | optional | If set, we POST the final result to this URL. Pro/Max only — see Webhooks. |
idempotencyKey | string | optional | Re-submitting with the same key within 24 h returns the original response without re-running the job. |
Code sample
curl -X POST https://api.utified.com/v1/jobs \
-H "Authorization: Bearer utf_live_…" \
-H "Content-Type: application/json" \
-d '{
"tool": "image-convert",
"input": { "url": "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1200" },
"options": {
"format": "webp",
"quality": 0.85
}
}'Responses
Accepted — job queued
{
"id": "job_abc123def456",
"state": "queued",
"statusUrl": "/api/v1/jobs/job_abc123def456"
}Polled status (GET /api/v1/jobs/<id>)
{
"id": "job_abc123def456",
"tool": "image-convert",
"state": "completed",
"progress": 100,
"result": {
"status": "converted",
"outputFormat": "webp",
"downloadUrl": "https://media.utified.com/processed/abc123-photo_converted.webp",
"message": "Successfully processed image-convert"
},
"createdAt": "2026-05-17T15:42:00.000Z",
"startedAt": "2026-05-17T15:42:01.124Z",
"finishedAt": "2026-05-17T15:42:13.842Z",
"queue": "image-standard-queue"
}Pull result.downloadUrl once state === 'completed'. Set up a webhook to skip polling — see /docs/api/webhooks.