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
Both handle retries with
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.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.
