Authentication & authorization

How to authenticate requests with API keys and scope your access.

Base URL

All Partner API requests use production:

https://studio.zentag.ai/api/v1/partner

API keys

Every request must include your secret key. Two header forms are accepted:

Authorization: Bearer zt_live_sk_...
x-api-key: zt_live_sk_...

Keys are:

  • Hashed at rest - only a SHA-256 hash is stored; the plaintext secret is
    shown once at creation.
  • Scoped - each key carries a set of scopes. Requests without the required
    scope return 403 insufficient_scope.

Scopes

ScopeGrants
clips:readList clips and read clip metadata, export JSON, and status
clips:writeCreate, update, delete clips and trigger generate / autoflip / reframe / crop jobs
highlights:readList highlights and read highlight metadata and progress
highlights:writeCreate, update, delete highlights and trigger generation jobs
media:readRead the media library (filters/stats) and request signed media URLs
publish:readRead publish history and publish event status
publish:writePublish clips to connected social destinations
storage:writePush clips to configured external storage buckets (including bulk)
webhooks:manageCreate and manage webhook endpoints and view deliveries
catalog:readRead competitions, teams, players, tags, and stream metadata
catalog:writeCreate, update, and delete competitions, teams, players, and tags
streams:readList and read streams (catalog:read also accepted for backward compatibility)
streams:writeCreate, update, and end streams

Rotation & revocation

  • Rotate a key to mint a replacement while the old key stays valid for a
    short grace window (default 24h), then revoke it.
  • Revoke a key immediately to disable it.

IP allowlisting (optional)

For high-trust partners, an app can restrict requests to specific source IPs or
CIDR ranges. Requests from other IPs return 403 ip_not_allowed.

Transport security

All requests must use HTTPS. Never embed secret keys in client-side code.


Did this page help you?