Changelog

Notable changes to the Zentag Partner API.

All notable changes to the Zentag Partner API are documented here. The API is
versioned in the URL path (/api/v1/partner). Backwards-incompatible changes
ship under a new major version; additive changes may ship within v1.

v1.1.0 - 2026-07-17

Dashboard-parity content modules (no editor / NLE).

Added

  • Clips: PATCH / DELETE, richer list filters, async autoflip / reframe / crop (202).
  • Highlights: create / update / delete, real POST /highlights/generate (manual | ai | ai_global), progress GET.
  • Media: library filters, /media/stats, /media/filters/counts, GET /media/{id}.
  • Streams: streams:read / streams:write, create / update / end (reads still accept catalog:read).
  • Catalog write: competitions, teams, players, tags (catalog:write).
  • Storage: bulk push + external-storage status.
  • Webhooks: PATCH /webhook-endpoints/{id}.

Changed

  • POST /highlights/generate no longer returns 501; it queues a real job.

v1.0.1 - 2026-07-17

Audit hardening pass.

Fixed

  • POST /clips/generate now creates a real HLS clip job (trackable clip_id); no more fake job_* ids.
  • POST /publish with clip_id hydrates media from the clip (optional social_profile_id).
  • GET /media/{id}/signed-urls reports signed + expires_at (signed when GCS key available).
  • clip.created webhook is emitted when clips are created.
  • Key scopes are intersected with parent app scopes; partner webhooks are app-scoped; deleting an app removes its webhooks.

Added

  • Nested GET /streams/{id}/clips and GET /streams/{id}/highlights.
  • Catalog get-by-id: competitions, teams, players, tags.
  • Partner webhook POST .../test and POST .../deliveries/{id}/replay.
  • Error code not_implemented (501).
  • Roadmap guide documenting VideoVerse parity backlog.

Changed

  • POST /highlights/generate returns 501 not_implemented until the AI highlight pipeline is wired (no fake jobs).

v1.0.0 - 2026-07-01

Initial public release of the Zentag Partner API.

Added

  • Authentication: environment-scoped API key pairs (zt_{env}_pk/sk_...) with
    scopes, hashed-at-rest secrets, rotation with grace window, and revocation.
  • Clips: GET /clips, GET /clips/{id}, GET /clips/{id}/export-json,
    POST /clips/generate.
  • Highlights: GET /highlights, GET /highlights/{id},
    POST /highlights/generate.
  • Media: GET /media, GET /media/{id}/signed-urls.
  • Publishing: POST /publish, GET /publish/history, GET /publish/{id}.
  • Storage: POST /clips/{id}/push-external-storage, GET /storage/buckets.
  • Catalog: competitions, teams, players, tags, streams.
  • Webhooks: endpoint management, signed deliveries (clip.ready,
    highlight.ready, publish.*, stream.*), delivery log, replay, and test events.
  • Platform: cursor pagination, per-key rate limiting with X-RateLimit-*
    headers, Idempotency-Key support, and a typed error envelope.

Did this page help you?