generated: '2026-07-21' method: searched source: https://developers.spot.ai/reference/introduction docs: - https://developers.spot.ai/reference/introduction - https://developers.spot.ai/reference/authentication - https://developers.spot.ai/reference/response-codes - https://developers.spot.ai/reference/webhooks authentication: style: http-bearer detail: >- Bearer API key generated by an org admin in the dashboard; per-operation named permissions (e.g. camera_share_create, clip_share_create, camera.manage_audio). See authentication/spot-authentication.yml. pagination: style: cursor request_params: - cursor - limit response_fields: - next - prev detail: >- Cursor pagination. `limit` defaults to 50, max 100. Responses carry a non-null `next` (and `prev`) cursor; page until `next` is null. idempotency: supported: false detail: No documented idempotency-key header; writes are not advertised as idempotent. versioning: scheme: uri-path current: v1 spec_version: 1.10.0 detail: All paths are under /v1; the OpenAPI info.version tracks the spec (1.10.0). error_envelope: format: custom detail: >- ValidationError { name, message, details[] }. Conventional HTTP status codes. Not RFC 9457. See errors/spot-problem-types.yml. rate_limiting: signal: '429 Too Many Requests on limit exceed' headers: not documented async_writes: detail: >- Spot Connect event writes (ingest/import/update/delete) return 202 Accepted; historical-footage jobs run asynchronously and are polled by job id. webhooks: detail: >- RSA256-signed webhooks (Spot-Webhook-Signature + Spot-Webhook-Meta headers), verified against a per-org JWKS at https://jwks.spot.ai/webhooks/{org id}/keys.json. Retries on exponential backoff up to 5 attempts; acknowledge with any 2xx. See asyncapi/spot-webhooks.yml. cross_links: errors: errors/spot-problem-types.yml authentication: authentication/spot-authentication.yml lifecycle: lifecycle/spot-lifecycle.yml webhooks: asyncapi/spot-webhooks.yml