REST API for phone calls
POST /v1/calls dials. Answer, hang up, hold and press keys with one request each. Every
state change arrives as a signed webhook.
REST API for phone calls
POST /v1/calls dials. Answer, hang up, hold and press keys with one request each. Every
state change arrives as a signed webhook.
AI voice agents on real calls
Give a call a stream URL and OpenLine connects it to your agent’s WebSocket. Twilio Media
Streams format included, so Pipecat-style agents work as they are.
Your SIM, your server
Calls go out on a normal SIM plan, with no per-minute API fees. The server runs on your machine; calls, transcripts and settings stay in one SQLite file.
Silent phone
The phone only routes the call. Audio flows between the caller and your server; nothing plays on the handset. No root, no extra hardware.
curl -X POST https://your-openline.example/v1/calls \ -H "Authorization: Bearer $OPENLINE_KEY" -H "content-type: application/json" \ -d '{"deviceId":"phone-7f3a91c2","to":"+919876543210", "stream":{"url":"wss://my-agent.example.com/ws","format":"twilio"}}'When the call is answered, OpenLine opens your agent’s WebSocket and streams the conversation both ways. Your agent hangs up by closing the socket.
Building with an AI coding assistant? Point it at llms.txt or
llms-full.txt.