Skip to main content

API reference

API changelog

Versioned release notes for the v1 surface — additions, deprecations, and back-compat guarantees.

Last updated

Versioned release notes for the v1 surface. Breaking changes go to /api/v2, never to /api/v1 — entries below are additive unless explicitly marked deprecated.

How we version

The v1 contract guarantees:

  • No removed endpoints.
  • No removed response fields.
  • No renamed error codes.
  • No tightened validation that breaks previously-valid requests.
  • New optional request fields, new response fields, and new endpoints can ship freely.

Deprecations get a Deprecation: true response header on every call and a callout below at least 90 days before removal. Endpoints we plan to remove move to /api/v2 with a parallel old/new period.

2026-05-03

  • Added. Hand-curated OpenAPI 3.1 spec at /api/v1/openapi.json. Edge-cached 1h fresh + 24h stale-while-revalidate; CORS open to all origins.
  • Added. X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset headers on every authenticated response (success and 429).
  • Added. Webhook subscriptions surface — POST / GET /api/v1/webhooks, PATCH / DELETE /api/v1/webhooks/{id}, plus test-fire and deliveries-log routes.
  • Added. POST /api/v1/billing/charge-offsession — silent subscription upgrade for off-session-consenting customers, with SCA-handled fallback.
  • Added. mode: "hosted" | "embedded" on POST /api/v1/billing/checkout — embedded mode returns a client_secret for the ChatGPT App embedded widget.
  • Added. Live event lifecycle routes — /api/v1/live-events/{eventId}/go-live and /end.

2026-04-XX (initial v1 cut)

  • Initial v1 surface ships: profile, queue, matches, interview-room, billing, events, jobs, candidates, settings, team-invite. ~25 endpoints.
  • PAT-based bearer auth with jbb_ prefix and per-token scopes.
  • Standard error envelope across every endpoint: { error, code, details? }.

Subscribing to changes

Two channels:

  • This page — bookmarkable, indexed, no signup.
  • The changelog.api webhook event (subscribe via /account/webhooks) — pushes every entry into your endpoint as it ships.

Related reading