Robotalker API Developer Guide: Automate Calls and SMS from Your Application

🔑 Key Takeaways:

  • The Robotalker API uses standard REST conventions with JSON payloads—any language or framework that can make HTTP requests can integrate with it
  • Webhooks are the recommended pattern for receiving delivery status and inbound message events; polling the API for status is discouraged at scale
  • Phone numbers must be in E.164 format (+12125550100) for all API calls—normalization at the application layer before passing to the API prevents the most common request errors

The Robotalker API lets you trigger automated calls and SMS messages directly from your application, CRM, scheduling system, or custom workflow—no manual uploads, no batch scheduling through a UI. This guide covers the concepts and patterns developers need to get from zero to production integration.

Authentication

All API requests authenticate using an API key passed in the request header. Your API key is available in your Robotalker account dashboard under Settings → API.

Authentication Header
Authorization: Bearer YOUR_API_KEY

Include this header on every API request. Requests without a valid API key return HTTP 401 Unauthorized.

Core API Endpoints

Endpoint Method Purpose
/api/v1/calls POST Initiate a single outbound call or batch campaign
/api/v1/calls/{id} GET Retrieve status and outcome for a specific call
/api/v1/campaigns POST Create and schedule a bulk voice broadcasting campaign
/api/v1/campaigns/{id} GET Retrieve campaign status and aggregate delivery stats
/api/v1/sms POST Send a single SMS or bulk SMS batch
/api/v1/contacts POST / GET Create, retrieve, and manage contacts and opt-out status

Sending a Single Automated Call

POST /api/v1/calls — Request Body
{
  "to": "+12125550100",
  "from": "+18005550199",
  "message": "Hello {FIRST_NAME}, this is a reminder about your appointment on {APPT_DATE} at {APPT_TIME}. Press 1 to confirm or 2 to reschedule.",
  "voice": "en-US-Neural-F",
  "variables": {
    "FIRST_NAME": "Sarah",
    "APPT_DATE": "Tuesday, April 15th",
    "APPT_TIME": "3:15 PM"
  },
  "dtmf": {
    "1": {"action": "webhook", "url": "https://yourapp.com/confirm"},
    "2": {"action": "webhook", "url": "https://yourapp.com/reschedule"},
    "9": {"action": "optout"}
  },
  "webhook_url": "https://yourapp.com/call-status"
}
Response
{
  "call_id": "cal_9x7k2m4p",
  "status": "queued",
  "to": "+12125550100",
  "created_at": "2025-04-15T10:30:00Z"
}

The call is queued immediately. Use the call_id to retrieve status or rely on the webhook for event-driven updates.

Receiving Delivery Status via Webhooks

Register a webhook_url in your call or campaign request to receive real-time status events. Robotalker sends an HTTP POST to your endpoint when each event fires:

Webhook Event Payload (Call Completed)
{
  "event": "call.completed",
  "call_id": "cal_9x7k2m4p",
  "to": "+12125550100",
  "status": "answered",
  "duration_seconds": 28,
  "dtmf_response": "1",
  "amd_result": "human",
  "timestamp": "2025-04-15T10:30:45Z"
}

Key event types your webhook should handle:

  • call.completed — Call finished; includes answer status, duration, DTMF response
  • call.no_answer — Call rang but wasn't answered
  • call.voicemail — AMD detected voicemail; message left or hung up per config
  • call.failed — Call couldn't be placed (invalid number, carrier failure)
  • contact.optout — Recipient pressed opt-out key or replied STOP

Error Handling and Rate Limits

The API returns standard HTTP status codes:

  • 200/201: Success
  • 400: Bad request—malformed JSON, invalid phone number format, missing required field
  • 401: Authentication failure—invalid or missing API key
  • 429: Rate limit exceeded—implement exponential backoff and retry
  • 500: Server error—retry with backoff; log for investigation

Rate limits vary by plan. Check your account dashboard for your current rate limits. For bulk campaign sends, use the /api/v1/campaigns batch endpoint rather than looping single-call requests—batch endpoints handle throttling internally and are more efficient at scale.

Build Automated Calling Into Your Application

Get your Robotalker API key and start sending automated calls and SMS from your application today—no long-term commitment required.

  • ✔️ RESTful API with JSON payloads
  • ✔️ Webhook delivery for real-time event handling
  • ✔️ Dynamic variable support for personalized messages
Get API Access →

FAQ: Robotalker API

Any language that can make HTTP requests works with the REST API—Python, Node.js, PHP, Ruby, Java, C#, Go, and others. There's no SDK requirement; you just need an HTTP library and JSON serialization. If you're using a popular framework, there are community examples for most stacks. The API follows standard REST conventions, so any developer familiar with REST integration will be productive quickly.

Use the API with your own verified phone numbers during development—calls to numbers you control allow you to verify the full flow without risking contacts on your production list. For webhook testing, tools like ngrok or webhook.site let you expose a local endpoint to receive webhook events during development without deploying to a server. Start with single-call API requests before testing bulk campaigns to catch any configuration issues early.