Getting started

Build voice agents that pick up the phone

Vollo is an AI voice platform: design conversational agents in a visual workflow builder, put them on real phone numbers or in the browser, and drive everything from a REST API.

Base URL
https://api.vollo.io/api/v1
Authentication
Authorization: Bearer pk_live_…
Rate limit
120 requests / minute
Media
WebRTC · SIP · wss://rtc.vollo.io

What Vollo is#

A Vollo workspace contains projects. Inside a project you create agents (a system prompt plus model, voice, and transcription settings) and workflows — node graphs built in the visual builder that decide what happens on a call: greet, listen, reason with an LLM, look things up, call your APIs, collect keypad digits, transfer to a human, hang up.

A published workflow can be reached three ways:

Architecture#

Media and control are separate planes. Audio never touches the REST API: it flows through the LiveKit-based media plane straight to the agent workers that execute your workflow and stream audio to the speech and language providers.

The Vollo platform: media plane (left to right) and control plane (bottom).

Quickstart#

From zero to a live voice agent in seven steps. Steps 1–5 happen in the dashboard; the rest is API.

  1. Create an account and an API key

    Sign up at app.vollo.io, then create a workspace API key under Settings → API Keys. Keys look like pk_live_… and carry scopes. Store the key server-side — it is shown once.

  2. Create a project

    Projects group agents, workflows, numbers, and sessions — one per product or environment is typical. Create one in the dashboard or via POST /projects.

  3. Create an agent

    An agent bundles a system prompt with model choices: LLM provider and model, Deepgram for speech-to-text, a Cartesia voice for text-to-speech. You can also configure these inline on a workflow's Agent node.

  4. Build a workflow

    Open the visual builder and drag nodes onto the canvas: a Greeting, an Agent node that references your agent, and a Hangup. Wire them start → greeting → agent → hangup. See Workflows for the concepts.

  5. Validate and publish

    Press Validate, fix anything it flags, then Publish. Publishing freezes the draft into an immutable version that live traffic runs on — you keep editing the draft safely.

  6. Attach a phone number — or open a web session

    For phone: connect a SIP trunk, add a number, and point a dispatch rule at your workflow. For the browser: mint a session token and connect with the LiveKit JS SDK.

  7. Make your first API call

    Start an outbound call from your number to any phone:

    cURL / shellStart an outbound call
    curl -X POST https://api.vollo.io/api/v1/calls \
      -H "Authorization: Bearer pk_live_8f3KJd92mA4qL7Zx1RttVWpc" \
      -H "Content-Type: application/json" \
      -d '{
        "project_id": "9b2e7c1a-4d3f-4e8a-9c5b-2f7d1e6a8b3c",
        "workflow_id": "7f3a9d2e-8c1b-4f6a-b5d4-e2c9a1f7b8d0",
        "from": "+12125550142",
        "to": "+962790123456",
        "metadata": { "crm_id": "A-1042" }
      }'
    JSON201 Created
    {
      "data": {
        "id": "c4d9e2f7-1b8a-4e3c-9f6d-7a2b5c8e1d4a",
        "direction": "outbound",
        "status": "queued",
        "from": "+12125550142",
        "to": "+962790123456",
        "project_id": "9b2e7c1a-4d3f-4e8a-9c5b-2f7d1e6a8b3c",
        "workflow_id": "7f3a9d2e-8c1b-4f6a-b5d4-e2c9a1f7b8d0",
        "workflow_version": 3,
        "metadata": { "crm_id": "A-1042" },
        "created_at": "2026-08-18T09:12:44Z"
      }
    }

    The callee's phone rings; when they answer, your published workflow takes over. Track progress with webhooks (call.started, call.ended) or by polling GET /calls/{id}.

Where to next#