Before you start
Make sure you have:- An authenticated session (see Authentication)
- Your API key ready
- A phone number you can call for testing
Step 1: Create a contact
First, add the person you want to call:id from the response—you’ll need it in the next step.
id value - you’ll need it for the next steps.
Step 2: Create an audience
Audiences are groups of contacts. Even for a single contact, you need an audience:id from the response.
Step 3: Add the contact to the audience
Link your contact to the audience:Step 4: Create a flow
Flows define what happens during a call. Here’s a simple flow that dials the contact, plays a greeting message, and hangs up:id.
Replace
AUDIO_ID with the ID of your pre-recorded audio file. You can upload audio files via the Audio Management API. See the Designing Call Flows guide for more advanced examples with menus and user input handling.Step 5: Create a program
Programs tie everything together. They specify which audience to call, which flow to use, and when to execute:didPool contains DID UUIDs used as caller ID. Use a DID allocated to your account (see GET /dids/available in the API reference).
Step 6: Launch the program
Programs start in draft status. To execute them, launch an execution:executionId to track progress.
Step 7: Monitor the execution
Check how your execution is progressing:status (pending/running/completed/failed), totalContacts, contactsCompleted, contactsFailed, contactsPending, and contactsInProgress.
Alternative: Ad-hoc calls
If you don’t need the full program infrastructure, you can make one-off calls directly:What’s next?
You’ve made your first call! Here’s where to go from here:Core Concepts
Understand how all the pieces fit together.
Designing Call Flows
Build more sophisticated call logic with audio playback.
Retry Strategies
Handle failed calls gracefully.
Audio Management
Upload and manage your audio files.