API Docs
Upscale images to print-ready TIFF, PNG and JPG from your own apps. Calls draw from your credit balance — buy credits in the app, spend them via the API or the dashboard.
Authentication
Create a key at Dashboard → API keys and send it as a Bearer token. Base URL: https://printscale.app.
Authorization: Bearer psk_live_xxxxxxxxQuickstart
1. Get an upload URL
curl -X POST https://printscale.app/api/v1/uploads \
-H "Authorization: Bearer psk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"filename":"photo.jpg","contentType":"image/jpeg"}'
# → { "upload_url": "...", "image_url": "...", "content_type": "image/jpeg" }2. Upload the file, then start the upscale
# upload the bytes to the presigned URL
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @photo.jpg
# start the upscale (this is where credits are charged)
curl -X POST https://printscale.app/api/v1/upscale \
-H "Authorization: Bearer psk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"image_url":"<image_url>","target":{"mode":"print","cm":60,"dpi":300}}'
# → { "id":"...", "status":"processing", "credits_charged":2 }3. Poll for the result
curl https://printscale.app/api/v1/jobs/<id> \
-H "Authorization: Bearer psk_live_xxx"
# → { "status":"done", "width":5315, "height":7087,
# "outputs": { "tiff":"...", "png":"...", "jpg":"..." } }Endpoints
POST /api/v1/uploads
Returns a presigned upload_url (PUT your file there) and the image_url to use for the upscale. You can skip this and pass any public https image URL directly.
POST /api/v1/upscale
Body: image_url (required) and target:
{"mode":"factor","factor":"auto"} // auto (3x small / 2x large)
{"mode":"factor","factor":2} // or 3
{"mode":"print","cm":60,"dpi":300} // exact print size (dpi 150/300/600)Returns { id, status, credits_charged } and processes asynchronously. On failure the credits are refunded automatically.
GET /api/v1/jobs/{id}
Returns status (processing / done / failed / expired), dimensions, credits_charged, and download outputs when done.
Credit cost
Charged by output size, shown in the response:
- • up to ~42 cm (≤5,000 px long side) — 1 credit
- • up to ~85 cm (≤10,000 px) — 2 credits
- • up to ~100 cm (≤12,000 px) — 3 credits
Notes
- • Outputs are kept for 3 days, then deleted — download within the window.
- • Start from a sharp source: the API enlarges detail, it doesn't repair blurry images.
- • Errors return JSON
{ error }with the proper HTTP status (401 invalid key, 402 no credits, 400 bad input).
Use it from AI agents (MCP)
PrintScale ships an MCP server, so AI agents (Claude Desktop, Cursor, Claude Code) can upscale images as a tool — e.g. “upscale this photo to 60 cm for print.”
{
"mcpServers": {
"printscale": {
"command": "npx",
"args": ["-y", "printscale-mcp"],
"env": { "PRINTSCALE_API_KEY": "psk_live_xxx" }
}
}
}Tools: printscale_upscale, printscale_job, printscale_credits. Works with a local file path or an image URL.
Ready to build?
Create an API key