API & Enterprise

AI product imagery
at scale

Embed Paqshot's generation engine directly into your platform, PIM, or workflow. One REST call - studio packshot, lifestyle session, editorial - delivered in seconds.

Who it's for

Built for teams that ship at scale

E-commerce platforms

Auto-generate catalog packshots for every SKU on upload - no studio, no manual work.

PIM & DAM integrations

Trigger image generation inside your product information or asset management workflow.

Marketplace operators

Standardize product imagery across thousands of sellers with a single API call per listing.

Creative agencies

Deliver lifestyle and editorial imagery for clients at 10× the speed of traditional production.

Automation pipelines

Plug into n8n, Make, Zapier, or any custom pipeline to enrich product data with imagery.

SaaS builders

White-label product photography into your own platform with our private-label plan.

API Reference

REST API documentation

Base URL: https://api.paqshot.com/v1

AUTH

Authentication

All API requests require a Bearer token passed in the Authorization header.

Authorization: Bearer pk_live_xxxxxxxxxxxxxxxxxxxxxxxx
API keys are available to business customers. Contact us to get yours.
POST /v1/generate Generate product imagery

Submit a generation job. Returns immediately with a job id - poll GET /generate/{id} for the result.

Request body

Parameter Type Required Description
product_image string required URL or base64-encoded image of the product (JPEG / PNG / WebP, max 10 MB)
style enum required "studio_packshot" | "lifestyle" | "editorial" | "mockup"
scene_type enum optional "auto" | "action" | "abstract" | "product_packshot" - defaults to "auto"
background enum / string optional "white" | "off_white" | "light_gray" | "black" | "#RRGGBB" - used with studio_packshot
aspect_ratio enum optional "1:1" | "4:3" | "16:9" | "9:16" | "3:2" | "2:3" - defaults to "1:1"
people enum optional "none" | "with_people" | "without_people" - defaults to "none"
location string optional "office" | "outdoor" | "cafe" | "studio" | "urban" | "nature" or any custom text
prompt string optional Optional free-text prompt to guide composition, mood, or styling (max 500 chars)
webhook_url string optional HTTPS URL to receive a POST callback when the generation completes

Example request

curl -X POST https://api.paqshot.com/v1/generate \
  -H "Authorization: Bearer pk_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "product_image": "https://yourdomain.com/product.jpg",
    "style": "studio_packshot",
    "background": "white",
    "aspect_ratio": "1:1"
  }'

Response 202 Accepted

{
  "id": "gen_01j9xkm3p8fvz4q2n7tbhc6r",
  "status": "processing",
  "style": "studio_packshot",
  "aspect_ratio": "1:1",
  "estimated_seconds": 12,
  "created_at": "2026-06-09T14:00:00Z"
}
GET /v1/generate/{id} Poll generation status

Check the status of a generation job. Poll every 2–5 seconds until status is completed or failed.

Response 200 OK

{
  "id": "gen_01j9xkm3p8fvz4q2n7tbhc6r",
  "status": "completed",
  "image_url": "https://cdn.paqshot.com/gen/gen_01j9xk...jpg",
  "thumbnail_url": "https://cdn.paqshot.com/gen/gen_01j9xk..._thumb.jpg",
  "width": 1024,
  "height": 1024,
  "style": "studio_packshot",
  "created_at": "2026-06-09T14:00:00Z",
  "expires_at": "2026-06-16T14:00:00Z"
}

Image URLs are accessible for 7 days. Download and store them on your side if you need long-term access.

GET /v1/generations List generations

Returns a paginated list of your recent generation jobs.

Parameter Type Default Description
limit integer 20 Number of results (max 100)
offset integer 0 Pagination offset
status enum - Filter by: "processing" | "completed" | "failed"
WEBHOOK

Webhooks

Async result delivery

Pass a webhook_url in the generate request. We'll POST the completed result to your endpoint - no polling needed.

Webhook payload

{
  "event": "generation.completed",
  "id": "gen_01j9xkm3p8fvz4q2n7tbhc6r",
  "status": "completed",
  "image_url": "https://cdn.paqshot.com/gen/gen_01j9xk...jpg",
  "thumbnail_url": "https://cdn.paqshot.com/gen/gen_01j9xk..._thumb.jpg",
  "created_at": "2026-06-09T14:00:00Z"
}

Verify webhook authenticity by checking the X-Paqshot-Signature header (HMAC-SHA256 of the raw body, signed with your webhook secret).

ERR

Error codes

HTTP code Description
400 invalid_request Missing or malformed parameters
401 unauthorized Missing or invalid API key
403 forbidden Quota exceeded or feature not available on your plan
404 not_found Generation ID not found
413 image_too_large Product image exceeds 10 MB
422 unsupported_image Image format not supported (use JPEG / PNG / WebP)
429 rate_limited Too many requests - back off and retry
500 server_error Internal error on our side - retry after a few seconds

All errors return a JSON body: { "error": "code", "message": "human readable" }

Limits & SLA

Predictable, scalable performance

8–20 s
Generation time
per image, p95
99.9%
Uptime SLA
monthly
60/min
Rate limit
per API key
7 days
Image retention
on CDN

Get access

Ready to integrate?

API access is available to business customers. Drop us a line - we'll set you up with an API key, rate limits tailored to your volume, and a technical onboarding call.