Upscale generated images
October 3, 2025
Table of contents
This endpoint upscales previously generated images to higher resolution.
https://api.useapi.net/v1/ltxstudio/images/upscale
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"jobId": "email:[email protected]:7a34b821-9fd0-205e-d21b-4abc6f7839e7-type:image"
}
emailis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required.jobIdis required, the job ID from a previously completed image generation job. Use thejobIdfield from POST images/edit or POST images/create response.pollForResultis optional, number of polling attempts to wait for completion (each attempt waits 3 seconds, up to 60 seconds total max) before sending job to the scheduler. For example,pollForResult: 5will poll every 3 seconds for up to 15 seconds total.
Supported values:1-20.
Default: immediate return withjobId.maxJobsis optional, override the default maximum number of concurrent jobs.replyUrlis optional, webhook URL for job completion notifications. See GET assets/jobIdfor response model.replyRefis optional, custom reference for webhook identification.
Responses
-
{ "jobId": "email:[email protected]:8b45c932-0fe1-316f-e32c-5bcd7g8940f8-type:image", "generationId": "gen_xyz789abc012" } -
200 OK (pollForResult completed)
{ "status": { "type": "completed", "progress": 100, "artifact": { "assetUrl": "https://storage.googleapis.com/lt-infinity-prd/artifacts/vertex-ai/…", "expirationDateString": "1748919477350", "asset": { "type": "artifact", "fileId": "asset:4c29…-type:image/png", "mimeType": "image/png", "artifactSubtype": "vertex-ai" } } }, "jobId": "email:[email protected]:8b45c932-0fe1-316f-e32c-5bcd7g8940f8-type:image", "replyRef": "custom-reference-123", "replyUrl": "https://webhook.example.com/ltx-callback", "code": 200 } -
{ "error": "Error message", "code": 400 } -
{ "error": "Unauthorized", "code": 401 } -
{ "error": "Insufficient credits", "code": 402 }
Model
Use GET assets/jobId to retrieve job status and results if they were not provided with the response.
{ // TypeScript, all fields are optional
status: {
type: 'active' | 'completed' | 'failed'
progress?: number
message?: string
artifact?: {
assetUrl: string
expirationDateString: string
asset: {
type: string
fileId: string
mimeType: string
artifactSubtype: string
}
}
}
jobId?: string
generationId?: string
replyRef?: string
replyUrl?: string
code?: number
}
Examples
-
curl "https://api.useapi.net/v1/ltxstudio/images/upscale" \ -H "Authorization: Bearer …" \ -H "Content-Type: application/json" \ -d '{ "jobId": "email:[email protected]:7a34b821-9fd0-205e-d21b-4abc6f7839e7-type:image", "pollForResult": 10 }' -
const token = "API token"; const apiUrl = "https://api.useapi.net/v1/ltxstudio/images/upscale"; const response = await fetch(apiUrl, { method: "POST", headers: { "Authorization": `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ "jobId": "email:[email protected]:7a34b821-9fd0-205e-d21b-4abc6f7839e7-type:image", "pollForResult": 10 }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" apiUrl = "https://api.useapi.net/v1/ltxstudio/images/upscale" headers = { "Authorization" : f"Bearer {token}", "Content-Type": "application/json" } data = { "jobId": "email:[email protected]:7a34b821-9fd0-205e-d21b-4abc6f7839e7-type:image", "pollForResult": 10 } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())