Getting started
Offhook API
One REST API to place and answer AI phone calls, using your own speech-to-text, text-to-speech, language model and phone carrier.
Offhook runs the parts of a voice agent that are tedious to build yourself: streaming audio between the caller and the models, dialing reliably, keeping a complete log of every call, and sending signed webhooks. You bring the provider keys and describe the agent.
Base URL
You send requests to your own deployment. In local development that is:
http://localhost:8000 How the pieces fit
There are three resources, and each one builds on the one before it:
1 Connections: your provider keys → 2 Agents: who talks, and with which connections → 3 Calls: an agent dialing a number
- Connections store your provider credentials (Deepgram, Cartesia, Groq, Plivo and others), encrypted.
- Agents combine instructions, a voice and the connections to run on.
- Calls use an agent to place an outbound call. Inbound calls use one to answer.
Authentication
Every request carries an API key as a bearer token. Keys start with
vk_dev_ or vk_prod_, depending on the environment that
created them. See Authentication.
curl http://localhost:8000/v1/calls \
-H "Authorization: Bearer $OFFHOOK_KEY" Next steps
- Quickstart: run Offhook locally and place your first call.
- Webhooks: get call events as they happen.
- Errors and limits: status codes, call error codes and rate limits.