export const metadata = {
  title: "Changelog",
  description:
    "Noteworthy additions, improvements, and deprecations in the FaithTranscripts public API.",
  alternates: { canonical: "/docs/api/changelog" },
};

# Changelog

Plain-text history of every noteworthy API change. Breaking changes are
called out at the top of their entry. Dates are in America/Chicago.

---

## 2026-04-19 — v1 launch

Initial public release of the FaithTranscripts API.

- **Authentication.** Bearer tokens via `ft_live_…` API keys. Keys are issued per-organization from [Settings → API Keys](/settings/api-keys) and are recoverable (can be revealed again by org members).
- **Transcripts.** `POST /transcripts` accepts four source types: `paste` (inline text), `youtube` (single video URL), `url` (any public fetchable URL, up to 5 MB), and `upload` (presigned R2 upload). Reads, lists, soft-deletes, AI-pass triggers.
- **Jobs.** `GET /jobs/{id}` for status/progress polling.
- **Webhooks.** Registration, rotation, deletion, and HMAC-SHA256-signed deliveries for `transcript.*` and `ai_pass.*` events. Retries with exponential backoff (10s, 1m, 10m, 1h, 6h).
- **Async patterns.** Fire-and-forget (default), polling, webhooks, and synchronous wait via `?wait=true&timeout=…` (max 60s).
- **Idempotency.** All POST endpoints accept an `Idempotency-Key` header with a 24-hour TTL.
- **Rate limits.** 60 create/min, 600 read/min, 10 concurrent sync-wait, all scoped per organization.
- **Meta.** `GET /me` (key metadata) and `GET /healthz` (liveness, no auth).
- **Docs.** This documentation site, hosted at `/docs/api` on the same domain as the API.

No breaking changes yet — this is the first release.
