Skip to main content

Overview

Image Upscaler is an asynchronous image-to-image API for enlarging and enhancing one source image. Use it when you already have an image URL and want a higher-resolution output without writing a text prompt.

Endpoint and authentication

Base URL:
All requests require your APIXO API key:
Submit requests also require:

Copy-paste async quickstart

This minimal request submits a 4k JPG upscaling task and returns a taskId.
Successful response:
Save the taskId; you need it to poll for the final result.

Poll for result

Processing response:
Success response:
Failed response:
Parse resultJson after state becomes success:
Parse resultJson only after state becomes success.

Request body

Default 4k JPG

8k WebP

Parameters

string
default:"async"
required
Result delivery mode. Use async for polling with statusTask, or callback for webhook delivery.
string
Required when request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.
object
required
Image Upscaler input parameters.

Response format

Submit task response

POST /generateTask/image-upscaler returns a task ID when the task is accepted:
integer
API status code. 200 means the task was accepted.
string
Human-readable status message.
string
Unique task identifier used with the status endpoint.

Status response fields

string
Unique task identifier.
string
Current task state: pending, processing, success, or failed.
string
JSON string containing the upscaled image URL in resultUrls. Present when state is success.
string
Machine-readable failure code. Present when state is failed.
string
Human-readable failure message. Present when state is failed.
integer
Task creation timestamp in Unix milliseconds.
integer
Task completion timestamp in Unix milliseconds. Present after completion.
integer
Processing duration in milliseconds. Present in successful polling responses when timing data is available.

Webhook callback mode

Use callback mode when your backend should receive the final result automatically instead of polling.
Successful callback payload:
See Webhooks for delivery requirements and retry behavior.

Billing

New non-LLM requests use 1 credit = $0.001. Calculate the full amount, including billable quantity and add-ons, apply the applicable account discount, then round the request total upward to the next whole credit. Agreed fixed unit prices retain their precision and replace the standard price and discount; final rounding still applies. See credit conversion and rounding. Image Upscaler is billed per submitted image at $0.01 / image. The price does not vary by resolution or output_format. For current API rates in USD, see API pricing.

Latency and polling

Image Upscaler tasks run asynchronously. Actual latency varies by source image size, selected target resolution, queue load, and result storage time. Recommended polling pattern:
For production queues or large batches, use callback mode to avoid frequent polling and to handle longer 8k jobs more cleanly.
Rate limits and concurrency can vary by account, API key, and route. If you receive 429, slow down requests and retry with backoff. For account-level details, see System APIs.

Errors and troubleshooting

HTTP errors

Request validation

Task failure codes

See Error Codes for the full error reference.

MCP integration

The complete model schema declares result decoding in mcp.result and supported file bindings in mcp.attachments. These are client integration metadata, not generation input parameters. Attachment paths: image_urls. Preserve the user’s file order. Model parameter validation remains on the API.