API & Webhooks

Production-ready API. Not a roadmap slide.

25+ REST endpoints, real-time webhooks, JWT authentication, and interactive documentation. Every feature you use in the UI is available via API.

Quick answer

What is the DialerBee API? DialerBee provides a production-ready REST API with 25+ endpoints covering campaigns, contacts, calls, agents, compliance, recordings, reports, and webhooks. Authentication uses JWT bearer tokens with 24-hour expiry. The API supports cursor-based pagination, returns RFC 7807 error responses, and enforces 2,000 requests/minute per tenant. Real-time webhooks deliver events (call.started, call.answered, call.amd_result, disposition.set, compliance.blocked, etc.) with HMAC-SHA256 signature verification and exponential retry backoff. Interactive API documentation is available at dialer.broadnet.me/admin/api-docs.html.

The Problem

Most dialer APIs are an afterthought

You bought a dialer to make calls. Now you need to integrate it with your CRM, push data to your warehouse, trigger workflows from call events, and build custom dashboards. You check the vendor's API documentation and find... a PDF from 2019 with 6 undocumented endpoints, no webhooks, and a SOAP interface.

This is the reality for most outbound teams. The dialer works fine for making calls, but the moment you need to build on top of it — sync dispositions to Salesforce, auto-create tickets in Zendesk, push analytics to your BI tool, or build a custom agent interface — you're stuck with CSV exports and manual processes.

DialerBee was built API-first. Every feature in the UI is backed by the same REST API that you can call from your own systems. The API isn't a bolt-on — it's the foundation the entire platform runs on.

6
Typical vendor endpoints
undocumented, no webhooks
SOAP
Legacy protocol
many dialers still use XML/SOAP
CSV
Export-only integration
manual file transfers, no real-time

How It Works

API-first by design

DialerBee's API follows REST conventions with JSON payloads, standard HTTP methods, and RFC 7807 error responses. Authentication uses JWT bearer tokens obtained via a login endpoint, with 24-hour expiry and token refresh support. Every API response includes rate-limit headers so your integration can self-throttle gracefully.

Step 01

Authenticate

POST to /v1/login with credentials. Receive a JWT bearer token valid for 24 hours. Use token refresh for long-running integrations.

Step 02

Call Endpoints

25+ RESTful endpoints for campaigns, contacts, calls, agents, compliance, recordings, and reports. JSON in, JSON out.

Step 03

Receive Webhooks

Register webhook URLs to receive real-time events. Every payload is signed with HMAC-SHA256 so you can verify authenticity.

Step 04

Handle Errors

RFC 7807 Problem Details for every error. Rate limit headers in every response. 429 status with retry-after guidance.

Side-by-Side Comparison

DialerBee API vs typical dialer APIs

Capability Typical Dialer API DialerBee API
Endpoints 5-10, partially documented 25+ fully documented with OpenAPI spec
Protocol SOAP/XML or proprietary REST with JSON, RFC 7807 errors
Authentication API key (never expires) JWT with 24h expiry + token refresh
Real-time events Polling or none HMAC-SHA256 signed webhooks with retry
Pagination Offset-based or none Cursor-based with next_cursor + has_more
Rate limiting Undocumented 2,000 req/min with headers in every response
Documentation PDF or outdated wiki Live interactive Swagger docs
Multi-tenant Single tenant only Per-tenant scoping on every endpoint

Endpoint Reference

10 API groups. 25+ endpoints.

API Group Endpoints
Authentication POST /login, POST /refresh
Campaigns CRUD + start/pause
Contacts Upload, list, search
Calls History, live counts, originate
Agents State, SIP registration
Compliance & DNC Pre-dial checks, DNC lists
Recordings List, signed playback URLs
Reports Export (CSV, JSON, PDF)
Webhooks Subscribe, manage, verify
System Health, version

Quick Start

Authenticate and start dialing in 3 API calls

Step 1 Authenticate
POST /v1/login
Content-Type: application/json

{
  "email": "admin@yourcompany.com",
  "password": "••••••••"
}

→ Response: { "token": "eyJhbG...", "expires_in": 86400 }
Step 2 Create a campaign
POST /v1/campaigns
Authorization: Bearer eyJhbG...

{
  "name": "Q3 Collections",
  "mode": "progressive",
  "amd_enabled": true,
  "compliance_profile": "uae-tdra"
}
Step 3 Upload contacts and start
POST /v1/campaigns/{id}/contacts
Content-Type: multipart/form-data

→ Upload CSV with phone, name, and custom fields

POST /v1/campaigns/{id}/start
→ Campaign is now dialing

Webhooks

Real-time events delivered to your systems

Webhooks deliver events to your systems in real time — no polling required. Every webhook payload is signed with HMAC-SHA256 so you can verify it came from DialerBee and wasn't tampered with. If your endpoint is down, webhooks retry with exponential backoff for up to 2 hours 35 minutes, ensuring you never miss an event.

call.started

A new outbound call has been initiated

call.answered

The recipient picked up — AMD classification included

call.ended

Call completed with duration, disposition, and recording URL

call.amd_result

AMD classification result: human or machine, with confidence score

agent.state_change

Agent went available, on-call, wrap-up, or offline

disposition.set

Agent submitted a disposition with outcome and notes

compliance.blocked

A call was blocked by the compliance engine with rule details

campaign.started

Campaign started dialing

campaign.paused

Campaign paused by supervisor or system

recording.ready

Call recording is processed and ready for playback

contact.dnc_added

A contact was added to the DNC suppression list

callback.scheduled

Agent scheduled a callback for a contact

Under the hood

Built for developers who ship

Protocol HTTPS only (TLS 1.2+)
Format JSON request and response bodies
Authentication JWT Bearer tokens (24-hour expiry) with refresh
Versioning /v1 URL path + schema_version in webhooks
Pagination Cursor-based with next_cursor and has_more
Rate limiting 2,000 requests/minute per tenant with headers
Error format RFC 7807 Problem Details for HTTP APIs
Webhook signing HMAC-SHA256 signature verification
Webhook retries Exponential backoff (max 2h 35m total)
Recording URLs Signed URLs with 1-hour expiry via MinIO
DNC registries UAE (TDRA), KSA (CITC), Egypt (NTRA), Jordan (TRC)
SDKs JavaScript and Python (coming soon)

Frequently asked questions about the API

Is the API available on all plans?
REST API access is available on all plans. Starter plans have limited API scope (read-only for some endpoints). Professional and Enterprise plans include full API access with write operations, webhooks, and higher rate limits.
Where can I find the API documentation?
Interactive API documentation is available at dialer.broadnet.me/admin/api-docs.html. It includes endpoint descriptions, request/response examples, authentication guides, and a live API explorer where you can test calls directly.
How does webhook authentication work?
Every webhook payload includes an HMAC-SHA256 signature in the X-Signature header. Your endpoint should compute the HMAC of the raw request body using your webhook secret and compare it to the signature. This verifies the payload came from DialerBee and wasn't modified in transit.
What happens if my webhook endpoint is down?
DialerBee retries failed webhook deliveries with exponential backoff. Retries continue for up to 2 hours and 35 minutes total. After all retries are exhausted, the event is logged as undelivered and visible in your webhook dashboard.
Can I use the API to build a custom agent interface?
Yes. The API exposes all agent-related endpoints: state management, call control, disposition submission, contact lookup, and recording playback. Combined with WebSocket events for real-time updates, you can build a fully custom agent experience.
Is the API multi-tenant?
Yes. Every API call is scoped to the authenticated tenant. Partner/reseller accounts can manage multiple tenants via the Partner API, including tenant provisioning, configuration, and billing management.
What's the rate limit?
2,000 requests per minute per tenant. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. If you exceed the limit, you'll receive a 429 status with a Retry-After header.
Are there SDKs available?
JavaScript and Python SDKs are in development. In the meantime, the API uses standard REST conventions with JSON payloads, so any HTTP client in any language works. The interactive documentation includes curl examples for every endpoint.

Ready to integrate?

Explore the live API docs or book a demo and get API access. Build your first integration in hours, not weeks.