API reference
Every route this deployment serves, read from the router itself at boot rather than
maintained by hand — so it cannot describe an endpoint that is not there, or miss one that is.
Responses are JSON. Errors are {"error": "…", "code": "domain.reason"}.
A denied cross-workspace read answers 404, identically to a record that does not
exist.
| Route | Methods | Access | What it does |
|---|---|---|---|
/api/actions |
GET | signed in | The in-call action catalogue. |
/api/actions/execute |
POST | signed in | Run an action. Privileged ones need a resolved approval. |
/api/actions/log |
GET | signed in | What the assistant did, and whether it was approved. |
/api/activity |
GET | signed in | The newest handful of calls as an event feed. |
/api/admin/audit |
GET | operator | The operator action log. |
/api/admin/backup |
GET | operator | Take a backup; {"drill":true} proves a restore. |
/api/admin/clients |
GET POST | operator | Client workspaces; POST creates one. |
/api/admin/connections |
GET | operator | Every external account a real call depends on, and — with ?verify=1 — whether each key actually works. |
/api/admin/overview |
GET | operator | Platform totals: clients, plans, revenue, pricing. |
/api/admin/readiness |
GET | operator | The machine-checkable half of the launch gate. |
/api/admin/settings |
GET PATCH | operator | The platform settings registry. Secrets are redacted. |
/api/admin/users |
GET | operator | Accounts across all workspaces. |
/api/analytics |
GET | signed in | Sentiment, intents and conversion, from records. |
/api/approvals |
GET | signed in | Approvals waiting on a person. |
/api/approvals/resolve |
POST | signed in | Approve or deny one. |
/api/auth/forgot |
POST | sign-in flow | Begin a password reset. |
/api/auth/google |
GET | sign-in flow | Start Google sign-in. |
/api/auth/google/callback |
GET | sign-in flow | Finish Google sign-in. |
/api/auth/login |
POST | sign-in flow | Email and password sign-in. Rate-limited per IP. |
/api/auth/logout |
POST | sign-in flow | Clear the session cookie. |
/api/auth/me |
GET | sign-in flow | The signed-in user and their workspace. |
/api/auth/methods |
GET | no sign-in | Which sign-in buttons this deployment can offer. |
/api/auth/phone/start |
POST | sign-in flow | Send a one-time code by SMS. |
/api/auth/phone/verify |
POST | sign-in flow | Check a one-time code and sign in. |
/api/auth/signup |
POST | sign-in flow | Create an account and its workspace. |
/api/billing |
GET | no sign-in | Plan, rate card, and this workspace’s credit position. |
/api/billing/commit |
POST | signed in | Settle a hold at what the call actually cost. |
/api/billing/invoices |
GET | signed in | Issued invoices. |
/api/billing/ledger |
GET | signed in | Credit movements, append-only. |
/api/billing/plan |
POST | signed in | Change plan. |
/api/billing/pricing |
GET | signed in | The published price list. Public: the pricing page reads it signed-out. |
/api/billing/refund |
POST | signed in | Operator: reverse one charge, once, inside the refund window. |
/api/billing/release |
POST | signed in | Drop a hold for a call that never connected. |
/api/billing/reserve |
POST | signed in | Hold credit against a call about to be placed. |
/api/billing/topup |
POST | signed in | Buy a credit pack. |
/api/billing/webhook |
POST | signed in | Stripe’s callback. Signature-verified and idempotent. |
/api/callbacks |
GET | signed in | The call-back queue. |
/api/calls |
GET | signed in | This workspace’s calls, filtered and paged. |
/api/campaigns |
GET POST | signed in | Campaign grouping over queued outbound work. |
/api/chatbot/sync |
POST | signed in | Sync knowledge with the linked AI-SNS.Chat bot. |
/api/config |
GET | signed in | This workspace’s configuration; PATCH a named section. |
/api/connections |
GET | signed in | Person-to-person chat connections. |
/api/contacts |
GET | signed in | The workspace address book. |
/api/dnc |
GET | signed in | The do-not-call list. Additions take effect on the next dial. |
/api/export |
GET | signed in | Export this workspace's own calls, bookings, contacts, messages and audit log as JSON or CSV. POST only, owner or operator, and the counts are audited. |
/api/health |
GET | no sign-in | Liveness. Answers before anyone signs in, and is what the platform probes. |
/api/integrations |
GET | signed in | Connected third-party systems and their sealed credentials. |
/api/me/invite |
GET PATCH | signed in | This user’s invite link. |
/api/me/invite/rotate |
POST | signed in | Issue a new invite link and void the old one. |
/api/messages |
GET POST | signed in | SMS sends; POST sends, GET lists. |
/api/messages/quote |
POST | signed in | Price an SMS before sending it. |
/api/numbers |
GET POST | signed in | Phone numbers held by this workspace; POST rents another. |
/api/outbound |
POST | signed in | Place one outbound call now. Gated on DNC and calling hours. |
/api/outbound/queue |
GET | signed in | The outbound queue for this workspace. |
/api/outbound/schedule |
POST | signed in | Queue calls for later, singly or in bulk. |
/api/playbooks |
GET | signed in | Industry playbooks and their per-call-type instructions. |
/api/reports |
GET | signed in | The summary plus a per-number breakdown. |
/api/reservations |
GET | signed in | Bookings taken on calls. |
/api/retention/preview |
GET | signed in | What a retention window would destroy, before it is saved. |
/api/session |
GET | no sign-in | Whether this browser is signed in, without a redirect. |
/api/setup |
GET | signed in | What this workspace still has to do before its phone is answered — each step judged from its own settings, never a checkbox. |
/api/simulate |
POST | signed in | Mint a demo call (テスト着信). Rate-limited. |
/api/site |
GET | no sign-in | The operator-managed copy and toggles the landing page renders. |
/api/social |
GET | no sign-in | Which social channels feed the phone. |
/api/social/sync |
POST | signed in | Refresh those channels. |
/api/subject/disclose |
GET | signed in | A data-subject disclosure request. |
/api/subject/erase |
GET | signed in | A data-subject erasure request. |
/api/subject/preview |
POST | signed in | What an erasure would remove and what would be kept, without doing it. |
/api/summary |
GET | signed in | Dashboard KPIs for a date range. |
/api/telephony/provision |
GET | signed in | Whether each carrier number points at this deployment; POST points one here. |
/api/vocab |
GET | signed in | Intents, outcomes and this workspace’s numbers, for rendering. |
/api/voice/line |
GET | no sign-in | Speak one line of the landing page’s scripted call. |
/api/voice/preview |
POST | signed in | Speak a sample in a workspace’s configured voice. |
/api/voice/status |
GET | no sign-in | Whether speech playback is available at all. |
/api/webhooks/deliveries |
GET | signed in | Outbound webhook attempts and their results. |
Access. “no sign-in” routes are the eight the landing page reads signed-out.
“sign-in flow” routes exist so somebody can sign in. Everything else needs a session, and
every write on every path needs one. Operator routes are the platform
surface, not a customer’s.
← Back to site