Image upscale
Documentation index for AI agents: /llms.txt. Every page is also available as markdown: add
.mdto the URL.
Enlarge an image 2x, 4x or 8x as an async job, then download the result.
Submit the image as a data URI to get a job_id, poll the job status, then download the file from the job endpoint. Results are kept for 1 hour after the job finishes.
All endpoints need the x-api-key header (see Authentication) and return the standard envelope. A successful request costs 2 credits.
Endpoints on this page
POST /api/v1/image/upscale/2x: Upscale 2x (up to 4 MP output)POST /api/v1/image/upscale/4x: Upscale 4x (up to 16 MP output)POST /api/v1/image/upscale/8x: Upscale 8x (up to 64 MP output)GET /api/v1/image/jobs/{id}: Job statusGET /api/v1/image/jobs/{id}/file: Download the result
Image Upscale (Super Resolution)
Enlarge an image 2x, 4x, or 8x with detail reconstruction rather than plain interpolation.
- Submit the image as a data URI, receive a job_id, then download the result from our endpoint
- We do not store results: the file lives on the processing CDN for 1 hour after the job finishes, so download it as soon as the status is succeeded
- Input is capped at 1 MB and 1 MP (send JPEG or WebP to stay under it)
- A job that fails is refunded in full
- Checking status or downloading is free
POST /api/v1/image/upscale/2x
Upscale 2x (up to 4 MP output). Upscales an image 2x, accepting up to 1 MP of input and returning at most 4 MP. Costs 250 credits per job. A failed job is refunded in full, and an account that has never topped up can run this tier at most 4 times from the signup bonus (failed jobs do not count).
| Body field | Required | Type | Description |
|---|---|---|---|
image | yes | string | The image as a data URI: data:image/png;base64,... (PNG, JPEG, or WebP, 1 MB maximum after decoding; use JPEG or WebP). A plain http URL is rejected. |
curl -X POST "https://use.apiindonesia.id/api/v1/image/upscale/2x" \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"image":"data:image/jpeg;base64,/9j/4AAQSkZJRg..."}'
POST /api/v1/image/upscale/4x
Upscale 4x (up to 16 MP output). Upscales an image 4x, accepting up to 1 MP of input and returning at most 16 MP. Costs 1,000 credits per job. This tier requires an account that has topped up at least once.
| Body field | Required | Type | Description |
|---|---|---|---|
image | yes | string | The image as a data URI (PNG, JPEG, or WebP, 1 MB maximum). |
curl -X POST "https://use.apiindonesia.id/api/v1/image/upscale/4x" \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"image":"data:image/png;base64,iVBORw0KGgo..."}'
POST /api/v1/image/upscale/8x
Upscale 8x (up to 64 MP output). Upscales an image 8x, accepting up to 1 MP of input and returning at most 64 MP. Costs 4,000 credits per job, and this tier also requires an account that has topped up. The output file is large, so plan for the download time and your own storage.
| Body field | Required | Type | Description |
|---|---|---|---|
image | yes | string | The image as a data URI (PNG, JPEG, or WebP, 1 MB maximum). |
curl -X POST "https://use.apiindonesia.id/api/v1/image/upscale/8x" \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"image":"data:image/png;base64,iVBORw0KGgo..."}'
GET /api/v1/image/jobs/{id}
Job status. Returns the job status (pending, succeeded, or failed) with the result resolution, the failure reason, and the download expiry. This endpoint is free: polling does not consume credits.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | The job_id returned by the submit call. |
curl "https://use.apiindonesia.id/api/v1/image/jobs/6f1c1f0e-6a8f-4f2b-9a1e-0d6b3f0f9a11" \
-H "x-api-key: YOUR_API_KEY"
Example response (shortened):
{
"success": true,
"data": {
"id": "6f1c1f0e-6a8f-4f2b-9a1e-0d6b3f0f9a11",
"status": "succeeded",
"tier": "2x",
"scale": 2,
"credits_charged": 250,
"source": {
"width": 1000,
"height": 1000
},
"result": {
"width": 2000,
"height": 2000
},
"download_url": "https://use.apiindonesia.id/api/v1/image/jobs/6f1c1f0e-6a8f-4f2b-9a1e-0d6b3f0f9a11/file",
"download_expires_at": "2026-10-23T15:20:11.000Z",
"error": null,
"created_at": "2026-10-23T14:20:11.000Z",
"completed_at": "2026-10-23T14:20:19.000Z"
}
}
GET /api/v1/image/jobs/{id}/file
Download the result. Streams the result file from the processing CDN to your client.
- Free, only reachable by the account that owns the job
- Only until download_expires_at (1 hour after the job finished)
- After that the answer is 410 RESULT_EXPIRED, because the file really is deleted upstream
- The response is image bytes, not JSON
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | A job_id owned by your account. |
curl "https://use.apiindonesia.id/api/v1/image/jobs/id/file" \
-H "x-api-key: YOUR_API_KEY"