Upscale generated images
October 3, 2025 (March 9, 2026)
LTX Studio API has been retired due to low demand. If you are interested in using it, this API can be easily resurrected — please contact [email protected] with your request.
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())