SellShot API

Background removal, listing quality checks and marketplace-ready exports over plain HTTPS. Same credits as the app: 1 credit = 1 processed image; re-composing an existing cutout is free.

Authentication

Create a key in the app (Account → API keys) and send it as a header. Keys are shown once; we store only a hash.

X-API-Key: pk_live_…

Quick start

curl -X POST https://api.pixready.app/api/marketplace \
  -H "X-API-Key: $PIXREADY_KEY" \
  -F file=@product.jpg -F target=amazon -o amazon_main.jpg
# Will Amazon accept this photo? (free quick estimate; with_cutout=true = AI-accurate, 1 credit)
curl -X POST https://api.pixready.app/api/check \
  -H "X-API-Key: $PIXREADY_KEY" -F file=@product.jpg -F target=amazon_com -F with_cutout=false
# Python
import requests
r = requests.post("https://api.pixready.app/api/effect",
    headers={"X-API-Key": KEY},
    files={"file": open("shoe.jpg","rb")},
    data={"effect": "shadow", "bg_mode": "scene", "scene": "podium", "size": "1600x1600"})
open("shoe_podium.jpg","wb").write(r.content)
print(r.headers["X-Credits-Left"])

Endpoints

EndpointBody (multipart)ReturnsCredits
POST/api/remove-bgfiletransparent PNG1
POST/api/checkfile, target, with_cutoutJSON: score, verdict, checks[], fixes[]0 / 1
POST/api/marketplacefile, targetlisting-ready JPG1
POST/api/effectfile, effect=shadow|enhance|upscale, factor, bg_mode, scene, color, size, fill, bg_file, logo, skip_cutoutPNG/JPG1 (0 if skip_cutout)
POST/api/variantsfile, colors=red,blue,…, bg_mode, …ZIP1
POST/api/packfile, items=instagram_post,story_reel,…, bg_mode, scene, logoZIP1
POST/api/composefile (transparent PNG), bg_mode, scene, bg_file, size, fill, logoPNG/JPG0
POST/api/bulkfiles[] ≤200, mode, target, colorZIP + _consistency.json1 / image
GET/api/marketplaces · /api/scenes · /api/presets · /api/pack-sizes · /api/config—JSON lists0
GET/api/me · /api/history—balance, ledger0

Targets

India: amazon flipkart meesho myntra · Global: amazon_com etsy ebay walmart tiktok_shop · Both: shopify instagram_shop

Response headers

X-Credits-Left on every paid call · X-Processed/X-Failed/X-Consistency-Before/X-Consistency-After on bulk · X-Preview: guest when unauthenticated (600px, watermarked).

Errors

401 missing/invalid key · 402 not enough credits · 413 file > 15 MB · 422 every image in a batch failed · 429 rate limited (60 req/min per key).

Tips

Cache the cutout: call /api/remove-bg once, then send the PNG to /api/compose, /api/effect or /api/variants with skip_cutout=true — unlimited free re-renders of the same product.

Full OpenAPI schema: /docs · Status: /health