▸ v1.1 target — not live yet. The shape below is the planned public API. Availability has not been announced. Internal routes today serve only the first-party web app and don't enforce the idempotency or rate-limit contract documented here.
Auth (v1.1)
API keys will be issued from /settings. Send the key as Authorization: Bearer sk_live_.... Base URL: https://api.shotshq.com/v1.
Idempotency (v1.1)
Every mutating request will require an Idempotency-Key header. Keys will be retained for 24 hours — replays will return the original response.
Planned endpoints
- POST /projects — create a new project
- GET /projects — list your projects
- GET /projects/:id — fetch a single project
- PATCH /projects/:id — update canvas / metadata
- POST /projects/:id/render — kick off a render
- GET /projects/:id/screenshots — list rendered assets
- POST /ai/copy — generate headline copy
- POST /ai/backdrop — generate AI backdrop
- POST /ai/translate — fan out to N locales
- POST /webhooks — register a webhook URL
Webhooks (v1.1)
We'll POST to your registered URL for these events: render.completed, render.failed, credits.low, checkout.completed. Signed with HMAC-SHA256 in the X-ShotsHQ-Signature header.
Rate limits (v1.1)
Proposed limit: 60 requests/minute. Generation endpoints would have separate per-user concurrency limits (3 in-flight at once) — additional requests will be queued, not rejected.