Skip to main content
Changes that affect integrators, newest first. See Versioning for what counts as breaking and what does not.
Post-call feedback
Added — post-call feedback. POST /meetings/{id}/feedback records the participant’s own verdict on a call: a good / had_issues rating, plus two issue checklists split by who fixes the problem — video_issues for call quality (freezes, audio drop-outs, lip-sync) and agent_issues for the AI’s behaviour (interrupting, slow replies, going off-script). GET on the same path reads it back, and GET /meetings/feedback/catalog returns the accepted keys with display labels. See Meetings.One row per meeting — resubmitting replaces the previous answer and returns 200 instead of 201. Free-text comment is encrypted at rest. Additive.
Developer platform foundations
Added — machine-readable errors. Every response now carries an X-Request-Id header, and public-API errors carry a structured error object with a stable type, a specific code, the offending param where applicable, and a doc_url. See Errors.Existing top-level status and message fields are unchanged, so no integration needs to move. Additive.Added — published rate limits. 600 requests/minute globally and 120 writes/minute, per API key. RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset now appear on every response, with Retry-After on a 429. Previously the limits existed but were invisible. See Rate limits. Additive.Added — cursor pagination on GET /scenarios, GET /personas and GET /goals. Opt in by sending limit or cursor; without either, these endpoints return exactly the body they always have. See Pagination. Additive.Added — idempotent writes. All write endpoints accept an Idempotency-Key header. A retry with the same key and body replays the original response rather than repeating the operation, and the response carries Idempotency-Replayed: true. See Idempotency. Additive.Added — official SDKs.
Both handle retries with Retry-After-aware backoff, generate one idempotency key per operation and reuse it across attempts, expose typed errors, and walk cursors transparently.Added — a published versioning policy and this changelog. The v1 contract is now fingerprinted and enforced in CI: a breaking change cannot ship by accident. See Versioning.Fixed — the OpenAPI specification. It previously documented 29 of the API’s paths with no operationIds, and referenced two schemas (Recording, Transcript) that were never defined — which made it invalid and unusable for code generation. It is now generated from the route definitions themselves and covers 75 public paths across 109 operations.