Skip Shoot API overview
Render your products into rooms from your own systems, and let shoppers see them in their own homes. One REST API, one pool of credits.
Updated
What you can build
- Catalog imagery from your systemsRender every SKU in every finish into your rooms, straight from your PIM, DAM or storefront, and store the images where your team works.
- A visualizer on your product pagesAdd one script tag. Shoppers upload a picture of their room and see your product in it, under your brand.
- Every paint color, on real wallsSend a hex value and get the color on the walls of any room. No product setup needed.
- Pavers, gravel and plants, outdoorsAdd yards and patios as outdoor scenes and render ground cover into them.
How it works
- Add a sceneA room picture. Its surfaces are found for you.
POST /scenesFree - Create rendersA product or paint color on a surface. One, or up to 100.
POST /renders1 credit each - Collect imagesPoll each render, then download its 4K image.
GET /renders/{id}Failed renders are refunded
Renders run in the background, a few at a time for each workspace. Most finish in about 20 to 60 seconds once they start, though times vary and none is guaranteed. See The render lifecycle.
Your first request
With a secret key in an environment variable, this asks for one product in one scene:
curl -X POST https://www.skipshoot.com/api/v1/renders \
-H "Authorization: Bearer $SKIPSHOOT_SECRET_KEY" \
-H "Idempotency-Key: render-812-4410" \
-H "Content-Type: application/json" \
-d '{
"scene_id": 812,
"product_id": 4410
}'{
"renders": [
{
"id": "3f2b8e9a-6c1d-4e7b-9a05-2d8c41f7b6e0",
"scene": {
"id": 812,
"name": "Library"
},
"product": {
"id": 4410,
"name": "Emerald velvet"
},
"paint": null,
"surface": "Sofa",
"created_at": "2026-10-21T14:03:12.000Z",
"status": "queued",
"image_url": null,
"upscale_status": "not_requested",
"error": null
}
],
"credits_charged": 1
}The quickstart walks through it from a new key to a finished image.
Key facts
- Base URL:
https://www.skipshoot.com/api/v1, HTTPS only. - Format: JSON in and out, with
snake_casefields. - Authentication: a secret key as a bearer token. Authenticate API requests.
- Pricing: 1 credit a render, from the same credits as the app. Scenes are free, and failed renders are refunded automatically. Credits, billing and refunds.
- Safe retries: an
Idempotency-Keymeans a retried render request never charges twice. Idempotent requests. - Batches: up to 100 renders in one request, all or nothing.
- Output: 4K images (PNG or JPEG), with a signed link that lasts at least 30 days.
- Results: poll for them; there are no webhooks yet. Poll for results.
- Spec: the whole API as OpenAPI 3.1, public.
Explore the docs
- QuickstartFrom a new key to a finished render in six steps.
- Client codeA complete client for Node.js or Python, ready to paste.
- Scenes and surfacesThe rooms your products render into, and what is found in them.
- API referenceEvery endpoint, field, status and error.
- Errors and status codesEvery error the API can send, and what to do about it.
- Go-live checklistWhat to check before your integration renders for real.
Something these pages do not answer? Email admin@skipshoot.com and we’ll help.
