API changelog
Every change to the public API, newest first. Additive changes ship within v1; anything that
would break a client needs a new version path (versioning). The SDK's own changes
are in its CHANGELOG.
2026-09-20 — social sign-in for the dashboard
Operators can sign in with Google or GitHub as well as with an email and a password, which is
unchanged. Five session-only routes, listed in the reference for completeness:
GET/POST /v1/auth/social, GET /v1/auth/callback/{provider}, and
GET/POST/DELETE /v1/me/auth-methods….
Nothing here changes how an integration authenticates. API keys are the only way in for software, and these routes refuse keys as every session-only route does. They are documented because the dashboard has no private endpoints (ADR 0003), not because there is anything to call: a browser and a person are needed for all of them.
2026-09-15 — the public API
- API keys.
Authorization: Bearer rk_live_…, with eleven scopes, made and revoked in the dashboard (GET,POST /v1/api-keys,DELETE /v1/api-keys/{id}— for signed-in owners and admins, never for keys). Authentication. - Test mode.
rk_test_…keys work on a separate sandbox with small allowances of its own. - Webhooks.
submission.created,submission.ready,submission.approved,submission.rejected,reel.ready,reel.failed,export.ready; signed with HMAC-SHA256; retried for 21 hours; a delivery log with every attempt, and replay./v1/webhooks…. Webhooks. - Per-key and per-organisation rate limits, with
RateLimit-*headers on every response. - Errors: new
insufficient_scope(403, withrequired_scope). - The OpenAPI document describes every event in its
webhookssection, and every request, response and path parameter has a real example. @akteora/sdk1.0.0 on npm.
2026-09-14 — plans and billing
GET /v1/billing, GET /v1/billing/usage, POST /v1/billing/checkout, /portal,
/change-plan; limit.upgrade_url on every 402; closed-link reason paused.
Plans and billing.
2026-09-14 — reels
/v1/reels and its clips, render and share routes; GET /v1/reels/music; the limit
render_seconds_per_month. Reels.
2026-09-13 — public walls
public_wall_url on brands; GET /public/walls, /public/walls/{slug},
/public/walls/{slug}/testimonials/{id}; POST /public/removals and /public/removals/lookup.
Public walls.
2026-09-13 — the widget
/v1/widgets and POST /v1/widgets/preview; the public widget document format.
Widget.
2026-09-13 — moderation, tags and exports
POST /v1/exports/preview; /v1/tags; tagging a testimonial; tag_id and is_public filters;
rejected_at and rejection_reason; public_media and GET /v1/submissions/{id}/media/{variant};
the plan_limit_exceeded error. Exports, media.
2026-09-12 — transcripts, search, written testimonials
Transcripts with word timings (GET, PATCH /v1/submissions/{id}/transcript); sentiment;
search with q; written and spoken-then-written testimonials (text_input, text_source,
original_text).
2026-09-10 — the first routes
Brands, collect links, the capture routes, and submissions with direct-to-storage uploads.