- Agent API key — proves which provider is calling. Server-side, on every request.
- Verified session — proves which customer has been identity-checked. Required for sensitive reads and all changes.
1. Agent API key
Send your key in theX-API-Key header, exactly like the rest of the partner API:
2. Verified session (email or SMS one-time code)
Before the agent reveals account detail or makes a change, the caller must be verified. The agent triggers a one-time code to the customer’s email (default) or phone on file, asks the caller to read it back, and validates it. On success it receives a short-lived token to send asX-Verified-Session.
Pass
"channel": "sms" on verify/issue to send the code by text instead of email. SMS is
delivered via Twilio and is inert until configured — until then an SMS request returns
503 dependency_unconfigured. Email is always available.1
Issue a code
sent_to back to the caller so
they know which inbox (or phone) to check. Use "channel": "sms" to text it instead;
sent_to is then a masked phone like •••42.2
Validate the code
3
Use the session
Send the token on every protected call for that customer:
Rules
- The token lasts 15 minutes and is bound to one
(provider, customer)pair — it cannot be reused for a different customer (401). - The code is 6 digits, valid for 10 minutes, with a small attempt limit. Repeated failures should trigger a human handoff (open a ticket — see Reference).
verify/issueis rate-limited to 10/min per key; re-issuing within the cooldown re-sends the existing code rather than generating a new one.
Which auth for which endpoint
Ticket creation is intentionally not verification-gated: a key escalation trigger is a
caller the AI could not verify, and the AI must still be able to open a ticket for them.