Voice agents / Vapi, Retell, ElevenLabs

Latency is your constraint.

A voice turn needs one narrow, complete answer. Pull only the context needed for the current turn, and keep the key out of the call transcript and every URL.

Credential contract

Use one Synorb Key as a Bearer token for REST and MCP. /connect self-provisions a 72 Hour Agent Demo key with no email, 25 Manifests, and expires_at in the payload; it expires after 72 hours. Bind an email at /api/connect/bind-email to upgrade the same key to Starter, free forever. Individual is $10/month for 1,000 Manifests.

Authorization: Bearer YOUR_SYNORB_KEY

Pull one complete answer

Never enter plan mode mid-call. One narrow Manifest pull is a complete answer when the scope matches the caller's question. Fewer streams means less waiting and less irrelevant context.

curl -sS \
  -H "Authorization: Bearer $SYNORB_KEY" \
  "https://api.synorb.com/streams/123/manifests?lookback_hours=24"

Cache the Manifest answer for the life of the conversation. Reuse it for follow-up turns unless the caller asks for new context.

Use SSE for the live connection

Connect to the MCP SSE endpoint with the key in the Authorization header. Never put a key in a URL, query string, transcript, or client-visible page.

curl -N \
  -H "Authorization: Bearer $SYNORB_KEY" \
  https://mcp.synorb.com/sse

Keep scopes tight and keep one active answer path per call. Handle rate limits using the returned retry information rather than widening the request.