Developers · API

Dress any product in one API call.

The same engine behind the Piktor app, exposed as a clean REST API. Send a product image, get photoreal on-model renders and clean masks back — in seconds, at catalog scale.

api.piktor.colive
POST /v1/generate200 OK · 4 renders · 4K + masks
<15s
per image
4K
clean masks
4
endpoints
500+
brands building
Why the API

Production imagery, as an endpoint

Everything the app does, callable from your build pipeline, PIM or storefront — no upload UI, no manual art direction.

01

Programmatic on-model imagery

One POST turns a flat product shot into photoreal on-model renders. Pick the model, pose, light and scene as parameters — not clicks.

02

Batch at catalog scale

Push thousands of SKUs through /v1/batch in a single request. Same credits, one job to track — built for marketplace-sized volume.

03

4K exports, clean masks

Every render ships at up to 4K with a pixel-accurate alpha mask — ready to composite or drop straight onto a product page.

04

Webhooks, not polling

Subscribe to job.succeeded and we POST the finished URLs to your endpoint the moment they are ready. No busy loops.

Quickstart

Your first render in one request

Authenticate with a bearer token, POST a product image with model and scene params, then poll the job or catch the webhook. Here is the whole round-trip.

api.piktor.coPOST /v1/generate
curl -X POST https://api.piktor.co/v1/generate \
  -H "Authorization: Bearer $PIKTOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product_image_url": "https://cdn.yourbrand.com/sku/8842-front.jpg",
    "category": "apparel",
    "model": { "gender": "female", "body": "medium", "skin_tone": "III" },
    "scene": { "preset": "studio-daylight", "background": "seamless-bone" },
    "output": { "count": 4, "resolution": "4k", "mask": true }
  }'
Response200 OK
{
  "id": "job_9f8c2a1b7d",
  "status": "succeeded",
  "credits_used": 4,
  "images": [
    {
      "url": "https://cdn.piktor.co/v1/renders/9f8c2a1b7d/01.png",
      "width": 3072,
      "height": 4096,
      "mask_url": "https://cdn.piktor.co/v1/renders/9f8c2a1b7d/01-mask.png"
    },
    {
      "url": "https://cdn.piktor.co/v1/renders/9f8c2a1b7d/02.png",
      "width": 3072,
      "height": 4096,
      "mask_url": "https://cdn.piktor.co/v1/renders/9f8c2a1b7d/02-mask.png"
    }
  ],
  "created_at": "2026-07-22T09:41:20Z"
}

Illustrative — see the live reference in the app for the full parameter set and every scene preset.

Endpoints

A small surface, on purpose

Four endpoints cover the whole lifecycle — generate, check, batch, discover.

POST/v1/generate

Create a render job from one product image plus your model and scene params.

GET/v1/jobs/{id}

Poll a job for its status, image URLs and mask URLs.

POST/v1/batch

Queue many SKUs in a single request for catalog-scale runs.

GET/v1/models

List the available model presets, body types, skin tones and scenes.

Rate limits & pricing

Credit-based, and simple

One image is one credit — that is the whole pricing model.

  • 1 image = 1 credit. Extra renders in a request draw from the same balance.
  • Failed or rejected renders are never charged.
  • Every response returns an X-Credits-Remaining header so you can meter usage.
  • Rate limits scale with your plan; Enterprise lifts them entirely.
PlanImagesRate limit
Free1030 req/min
Starter100 / mo60 req/min
StudioMost popular400 / mo120 req/min
EnterpriseUnlimitedCustom

Credits come from your Piktor plan — see the full tiers on the pricing page.

Full reference

The complete docs live in the app

Every parameter, webhook event, error code and official SDK — versioned and interactive — sits in your dashboard. Grab a key and the reference opens right beside it.

Ship on-model imagery, programmatically.

Create a key in the app and make your first call in minutes. Free tier included — no card.