POST /v1/imaging/image-convert
Convert an image
PNG, JPEG, WebP, GIF or TIFF, with transparency handled sensibly when the target cannot keep it.
Change an image's format now No key, no code — 2 credits either way.
curl -X POST "$DOATHING_API/v1/imaging/image-convert" \
-H "x-api-key: $DOATHING_KEY" \
-H "content-type: application/json" \
-d '{"file": {"filename": "photo.jpg", "content_type": "image/jpeg", "data_b64": "<base64>"}, "options": {"format": "webp", "quality": 82}}'
PNG, JPEG, WebP, GIF or TIFF, with transparency handled sensibly when the target cannot keep it.
Convert between PNG, JPEG, WebP, GIF, BMP and TIFF, flattening transparency where the target requires it.
Input
Send a file object with base64 data_b64, its content_type and a filename. Accepted types: image/png, image/jpeg, image/webp, image/gif, image/tiff.
The declared type is not trusted — the bytes are sniffed and a contradiction is rejected rather than corrected.
Response
The result carries your remaining balance alongside it, so you can track spend without a second call.
{
"from_format": "jpeg",
"to_format": "webp",
"width": 4032,
"height": 3024,
"request_id": "37f01edb-0163-42a1-ac51-0acaef979800",
"credits_remaining": 96
}
Cost
2 credits per call, whether it is run from the site or from the API — the credential differs, the price does not. A new account starts with 20 credits.
A rejected request still costs a credit: the authorizer decrements before the tool validates. A call rejected for a missing or invalid key is free.
Parameters
Generated from the endpoint’s own validation, so this is exactly what it accepts. A body field goes at the top level; an option goes inside options.
| Name | In | Type | Default | Notes |
|---|---|---|---|---|
| format | options | string | "png" | png, jpeg, webp, gif, bmp, tiff or avif. one of png, jpeg, webp, gif, bmp, tiff, avif |
| strip_metadata | options | boolean | true | Drop EXIF on the way out. On by default. |
| quality | options | integer | 88 | 1 to 100, for lossy formats. 1 to 100 |
| background | options | string | — | #RRGGBB to composite transparency onto when the target format has no alpha channel. |