Skip to content
Shootika
Top-down view of a sage candle, cognac tote, white sneaker, amber serum, steel watch and tortoiseshell sunglasses laid out in a neat grid on a pale table

Product photography API

Product photos from your own stack

A REST API, signed webhooks and an MCP server put the whole Shootika studio inside your software. Add products, start shoots, hear the moment a photo is ready, and approve the keepers.

The REST API and webhooks are for web app stores. A Shopify store uses the Shopify app or an AI assistant.

REST API

One API for the whole shoot

Plain JSON over HTTPS, one bearer key per integration, and errors with a stable code your software can read.

Example

Start a shoot in one request

The answer is 202 with the frame queued. One frame comes off your allowance, and it is refunded if the shoot fails.

curl -X POST https://api.shootika.com/v1/frames \
  -H "Authorization: Bearer $SHOOTIKA_API_KEY" \
  -H "Idempotency-Key: sage-crewneck-shoot-1" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": "8b0e5c1a-2f4d-4c1e-9a7b-3d6f0e2a9c41",
    "source_image_id": "c2d7e9f0-6a1b-4e3c-8d5f-7b9a0c1e2f34",
    "scene_id": "5e4a3b2c-1d0f-4a9b-8c7d-6e5f4a3b2c1d"
  }'
Example request. The ids are made up; the API reference has the full schema.
A woman in a sage ribbed crewneck and cream trousers sitting on a stone ledge against an ochre wall, her shadow cast beside her

One request in. A finished photo out.

The same models, scenes and quality as the app, on a model or in a lifestyle scene.

Webhooks

Know the moment a photo is ready

Stop polling. Add an endpoint in the web app and Shootika posts each event to it, signed so you can trust it.

  • Every delivery carries a Shootika-Signature header: an HMAC-SHA256 of the timestamp and the raw body.
  • Answer with any 2xx within 10 seconds. Anything else is retried up to 8 times over about 24 hours.
Webhooks guide
frame.ready
A frame finished and its image is ready.
frame.failed
A frame could not be made. The error code comes with it.
frame.approved
A frame was approved.
frame.unapproved
An approval was taken down.
webhook.test
Sent when you ask for a test event, to check your endpoint.

Idempotency and retries

Retry without paying twice

Networks fail. A retried request should never cost you a second frame.

MCP server

Or let an AI assistant drive

Point any assistant that takes a remote MCP server at Shootika and it can find products, start shoots and publish frames for you. It works for Shopify stores and web app stores alike.

Shootika for Claude and ChatGPT
Server URLhttps://mcp.shootika.com
  • Connect with one approval on a Shootika page. No key to copy.
  • You choose what it may do: read, add products, shoot, publish.
  • Disconnect it any time and it stops at once.

Plugin

Claude Code and Codex plugin

The Shootika plugin gives Claude Code and Codex ready-made skills for shooting products, reviewing frames and casting models, on top of the MCP server.

/plugin install shootika --marketplace shootika-ai/plugin
Claude Code
codex plugin marketplace add shootika-ai/plugin
codex plugin add shootika@shootika
Codex

Make your first call today

Start free with 20 frames, create a key in the web app, and shoot your first product from code.