Initiate call
Queue an outbound call to be processed by your AI agent.Path parameters
The unique identifier for your business
Request body
This endpoint acceptsmultipart/form-data with a maximum size of 10MB.
Phone number to call in E.164 format (e.g., +1234567890)
ID of the phone number to call from (must be configured in your business)
ID of the AI agent to use for this call
Optional campaign ID to associate with this call for tracking and analytics
ISO 8601 timestamp to schedule the call for a future time. If not provided, the call is queued immediately.
Key-value pairs of dynamic variables to use during the call (e.g., customer name, account number). These are available to the agent during conversation.
Additional metadata to attach to the call for your own tracking purposes
Response
Indicates whether the call was successfully queued
Array containing the queue ID(s) for the initiated call(s)
Error code if Success is false
Error message if Success is false or success confirmation
Example request
Example response
Error response example
Call queue lifecycle
When you initiate a call, it goes through the following states:- Queued - Call is in the queue waiting to be processed
- Processing - Call is being dialed
- In Progress - Call is connected and conversation is active
- Completed - Call has ended
- Failed - Call could not be completed
Permissions required
This endpoint requires:- Valid API key with access to the specified business
MakeCallmodule permission withFullaccess- User and business must not be disabled
- Business must have editing enabled
- Sufficient balance or package minutes for making calls
Rate limits and quotas
- Each call consumes minutes from your package or balance
- You must have sufficient credits before the call can be queued
- The system validates your balance before accepting the call request
Common error codes
| Code | Description |
|---|---|
InitiateCall:INSUFFICIENT_BALANCE | Not enough credits or minutes to make the call |
InitiateCall:INVALID_NUMBER | Invalid recipient phone number format |
InitiateCall:INVALID_AGENT | Agent ID not found or disabled |
InitiateCall:INVALID_NUMBER_ID | Calling number ID not found or not configured |
InitiateCall:PERMISSION_DENIED | Insufficient permissions to make calls |
InitiateCall:BUSINESS_DISABLED | Business account is disabled |
InitiateCall:EXCEPTION | Internal server error |
Best practices
Phone numbers
- Always use E.164 format for recipient numbers (+[country code][number])
- Verify numbers are valid before making calls
- Respect do-not-call lists and local regulations
Dynamic variables
- Use dynamic variables to personalize conversations
- Keep variable names consistent across your integration
- Don’t include sensitive information in metadata
Scheduling
- Schedule calls during appropriate business hours for the recipient’s timezone
- Use campaigns to batch and track related calls
- Monitor queue status to ensure calls are being processed
Error handling
- Always check the
Successfield in the response - Log queue IDs for tracking and debugging
- Implement retry logic for transient failures
- Handle balance/quota errors gracefully
Notes
- Calls are processed asynchronously; the API returns immediately after queuing
- Use the queue ID to track call status and retrieve conversation details
- Maximum request size is 10MB for the entire multipart form
- Scheduled calls are processed at the specified time (subject to queue availability)