REST API · Live

Upscale API

A production Upscale API that lifts a photo 2× or 4×, tightens detail, and reduces compression artifacts. One HTTP call. $0.009 per image (9 credits). 5,000 free credits (24-hour trial), no credit card.

$0.009 / image2x or 4x (default 4)File or URL5,000 free credits (24-hour trial)No credit card
Get an API key (free) Quick start See pricing API docs

Quick start — Upscale API

POST a photo, get a 4× file back. Default scale=4. Use image for a file or image_url for a URL. Poll until completed.

curl -X POST https://api.pixelapi.dev/v1/image/upscale \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@photo.jpg" \
  -F "scale=4"

curl https://api.pixelapi.dev/v1/image/GENERATION_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests
r = requests.post(
    "https://api.pixelapi.dev/v1/image/upscale",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    files={"image": open("photo.jpg", "rb")},
    data={"scale": "4"},
)
job = r.json()
import fs from "fs";
const form = new FormData();
form.append("image", fs.createReadStream("photo.jpg"));
form.append("scale", "4");
const res = await fetch("https://api.pixelapi.dev/v1/image/upscale", {
  method: "POST",
  headers: { Authorization: "Bearer " + process.env.PIXELAPI_KEY },
  body: form,
});
$ch = curl_init("https://api.pixelapi.dev/v1/image/upscale");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer YOUR_API_KEY"],
  CURLOPT_POSTFIELDS => [
    "image" => new CURLFile("photo.jpg"),
    "scale" => "4",
  ],
  CURLOPT_RETURNTRANSFER => true,
]);
$job = json_decode(curl_exec($ch), true);

What the Upscale API is for

Marketplaces reject soft phone photos. Print shops need more pixels than a social download contains. AI-generated stills look fine at 1024 px and fall apart on a poster. The Upscale API is a production REST upscaler: 2× or 4× super-resolution, optional exact output box, JPEG mush reduced, edges tightened.

Live price is $0.009 per image (9 credits). Some generated API descriptions still say 20 credits / $0.02 — that is stale. Bill against /v1/pricing/live. A longer-standing marketing page also lives at image-upscaler-api.html; this Upscale API URL is the canonical the crawler and ads should use for “upscale API” queries.

Scale 2 or 4

scale is an integer, min 2, max 4, default 4. Use 2 when you only need a modest PDP bump and want a smaller file. Use 4 when the destination is print or a zoomable gallery.

Exact pixel box

target_width / target_height (64–8192). fit_mode: stretch (default), pad_white, or pad_transparent when the box aspect does not match the photo.

Pricing comparison

VendorWhat you getTypical paid rate
PixelAPI Upscale API2× / 4× REST, file or URL, optional exact size$0.009 / image
Topaz Gigapixel and desktop suitesLocal UI, excellent control, no HTTP keySeat license (often $100+)
Hosted upscaler APIsREST, various metersOften $0.02–$0.10 / image
Generic “enhance” phone appsConsumer UI, watermark riskSubscription

5,000 free credits (24-hour trial), no card. Compare also vs Topaz Gigapixel and open-source alternative notes.

Production notes

Use cases and related pages

Ecommerce teams upscale user-phone SKU shots to the marketplace minimum. Real-estate sites push listing photos to zoom. Print-on-demand takes a 1K still to a 4K file. Thumbnail pipelines reverse the usual compress-to-death path.

How-tos: product photo, headshot, real estate, old scan, art, screenshot. Alternatives: IMG Upscaler, Upscale Media. Also restore old photos and the AI Image Editor API. Hubs: use cases, alternatives, howto.

Frequently asked questions

How do I upscale an image via API?

POST to https://api.pixelapi.dev/v1/image/upscale with a Bearer key. Send a file as image or a URL as image_url. Default scale is 4. Poll GET /v1/image/{id} until completed and download output_url.

What does the Upscale API cost?

$0.009 per image (9 credits) on /v1/pricing/live. Ignore older OpenAPI prose that still quotes 20 credits. 5,000 free credits, 24-hour trial, no card.

Is this 4x only?

scale accepts 2 or 4 (default 4). You can also set target_width and target_height (64–8192 px) when the output must hit an exact pixel box for a marketplace template.

What is fit_mode?

When custom width/height change the aspect ratio: stretch (default, exact box), pad_white (keep aspect, white bars), pad_transparent (keep aspect, transparent PNG).

Will it invent faces or product logos?

It increases resolution and reduces compression mush. It is not a face-identity editor. For damaged portraits pair it with face restore; for object cleanup run Remove Object first.

File upload or URL?

Either. Multipart field image for a local file, or image_url for a publicly fetchable https URL. Do not send JSON on this route.

How large can the output be?

Target edges cap at 8192 px. 4x on a large input is the usual path to print. If you only need a 1200-px PDP tile, set target_width instead of always asking for 4x.

What about rate limits?

20 requests/minute on the free trial, 60 on Starter, 120 on Pro and 300 on Scale, plus 3/10/20/50 parallel jobs. See /docs/parallel-processing.html.