---
title: "Upscale an image (async)"
method: POST
path: "/v1/images/upscale"
tags: ["Images"]
---

# Upscale an image (async)

`POST /v1/images/upscale`

## Request

- Base URL: `https://contentmaschine.ai/api`
- URL: `https://contentmaschine.ai/api/v1/images/upscale`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://contentmaschine.ai/api/oauth/authorize`, token URL `https://contentmaschine.ai/api/oauth/token`)

Submit an upscale job for an image already in your library.
Returns a `krea_job_id` and `generation_id`.
Poll `GET /v1/images/upscale-status` with those values.

Typical flow:
1. Generate an image → get `result.file_uuid`
2. Upscale that `file_uuid` → get `krea_job_id` + `generation_id`
3. Poll upscale-status until `completed`

## Request body

- object
  - `file_uuid` string, uuid, required: UUID of a file in your library (e.g. from a completed generate job).
  - `provider` 'krea_topaz' | 'krea_bloom': krea_topaz = generative quality; krea_bloom = creative detail.
  - `scale` 2 | 4 | 6 | 8: Upscale multiplier.
  - `auto_downscale` boolean: When the output would exceed the provider limit (krea_topaz 16000px, krea_bloom 10000px on the longest side), shrink the source to fit first. Without it such a request answers 400 `needs_downscale` with the suggested `target_width`/`target_height`, and nothing is charged.

## Response `202`

Upscale job submitted

- UpscaleQueued
  - `success` boolean
  - `data` object
    - `krea_job_id` string
    - `generation_id` integer
    - `status` string
    - `estimated_credits` number, float
    - `src_width` integer
    - `src_height` integer
  - `timestamp` string, date-time

## Other responses

- `400`: Validation error or image too large
- `401`: Missing or invalid API key
- `402`: Insufficient credits
- `404`: File not found
- `default`: Any other error. Every failure this API emits uses the same envelope; branch on `error.type`, never on `error.message`, and quote `error.correlation_id` to support.

---

[API](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api.md) · [All operations](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/revisions/28c74f46051c?raw)
