POST /v1/imaging/image-resize
Resize an image
Fit an image to the size you need without visible artefacts, and strip its metadata.
Resize an image now No key, no code — 2 credits either way.
curl -X POST "$DOATHING_API/v1/imaging/image-resize" \
-H "x-api-key: $DOATHING_KEY" \
-H "content-type: application/json" \
-d '{"file": {"filename": "photo.jpg", "content_type": "image/jpeg", "data_b64": "<base64>"}, "options": {"width": 800, "mode": "fit"}}'
Fit an image to the size you need without visible artefacts, and strip its metadata.
Resize an image by fit, fill or exact dimensions using high-quality resampling.
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.
{
"original": {
"width": 4032,
"height": 3024
},
"resized": {
"width": 800,
"height": 600
},
"mode": "fit",
"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 |
|---|---|---|---|---|
| width | options | integer | — | Target width in pixels. 1 to 20000 |
| height | options | integer | — | Target height in pixels. One of the two is enough. 1 to 20000 |
| mode | options | string | "fit" | fit keeps the ratio inside the box; fill crops to cover it; exact ignores the ratio. one of fit, fill, exact |
| format | options | string | "same" | Output format, or 'same' to keep the input's. one of same, png, jpeg, webp, gif, bmp, tiff, avif |
| allow_upscale | options | boolean | false | Permit enlarging. Off by default, because enlarging invents detail. |
| quality | options | integer | 88 | 1 to 100, for lossy output formats. 1 to 100 |