Beta

Developer API

Remove backgrounds, upscale photos and restore old pictures with a single HTTP call. Binary in, binary out — no SDK required, no account, no subscription.

The API is in beta: the three endpoints below are stable, but we may add fields and headers. Breaking changes will get a new version prefix (/api/v2/), never a silent change to v1. Images are processed transiently and never stored.

Quickstart

Buy a pack below, copy your key from the confirmation page (it is shown exactly once), then:

POST /api/v1/remove-background — Remove background

Cuts out the subject and returns a PNG with a transparent background.

curl -X POST https://everyimg.studio/api/v1/remove-background \
  -H "Authorization: Bearer eik_live_YOUR_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg \
  -o cutout.png

POST /api/v1/upscale — Upscale

Enlarges a photo 2× (default) or 4× with AI-recovered detail. Add ?scale=4 for 4×.

curl -X POST "https://everyimg.studio/api/v1/upscale?scale=2" \
  -H "Authorization: Bearer eik_live_YOUR_KEY" \
  -H "Content-Type: image/png" \
  --data-binary @small.png \
  -o large.png

POST /api/v1/restore — Restore

Repairs scratches, fading and blurry faces in old photos.

curl -X POST https://everyimg.studio/api/v1/restore \
  -H "Authorization: Bearer eik_live_YOUR_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @old-photo.jpg \
  -o restored.jpg

Authentication

Pass your key on every request: Authorization: Bearer eik_live_…. Keys bought in Stripe test mode start with eik_test_. We store only a SHA-256 hash of your key — if you lose it, it cannot be recovered, only replaced by buying a new pack.

Limits

Errors

Errors are JSON: { "error": { "code": "…", "message": "…" } }

StatusCodeMeaning
401 invalid_api_key The Authorization header is missing or the key is unknown.
402 insufficient_calls Your call balance is empty — buy another pack below.
400 unsupported_media_type Send raw bytes as image/jpeg, image/png or image/webp.
413 payload_too_large Images are limited to 4 MB per request.
429 rate_limited More than 60 requests in one minute — check the Retry-After header.
502 provider_error Processing failed on our side. You were not charged for the call.
503 unavailable The endpoint is temporarily unavailable.

Pricing

Pay as you go — one call is one processed image, on any endpoint. Calls never expire. Prices include VAT where applicable; you get a Stripe invoice automatically.

Starter €9 1,000 calls · €0.009 per image
Scale €79 10,000 calls · €0.0079 per image

Topping up an existing key? Paste it here before you buy and the calls are added to it instead of issuing a new key. It is hashed in your browser’s request and never stored.