DialerBee APIv1 · 1.0.0-rc6

Sending (click-to-call and SMS)

Your own systems can start a click-to-call (POST /v1/calls) and send an SMS (POST /v1/sms) through the API. Both reach real people, so they are off for every account until your account's administrator switches them on, and every send goes through the same checks as a call or message started in the DialerBee console.

What protects every send

Set it up (account administrator)

  1. Open Settings > API clients > API sending in the DialerBee console.
  2. Choose what the API may do: tick Click-to-call and/or SMS, then confirm.
  3. Set your account's limits: the daily caps, the per-minute cap, and if you want them the daily estimated-spend limit and the minimum balance. Save.
  4. Create a sending key: give it a name, tick what it may do, enter your servers' IP addresses (required) and the key's daily and per-minute caps. Copy the key at once: it is shown only once. At least one channel (click-to-call or SMS) must be switched on first. While both are off, creating a sending key (POST /v1/settings/api-sending/clients in the console API) is refused with 409 and the code no_channel_enabled ("Switch click-to-call or SMS on before creating a sending key"); nothing is created. Switch one on in step 2, save, then create the key.
  5. Store the key as a secret on your servers and send it only in the Authorization header.
  6. To pause everything, press Stop all API sending; press Resume sending to allow it again.

A new account created by self-service sign-up can switch sending on only after DialerBee has approved its outbound calling and messaging.

When someone at DialerBee or a partner opens your account with "Login as", they can stop sending and lower your limits, but they cannot switch sending on, raise a limit, add an address to a sending key or create a new credential for it: only your own administrators can.

The click-to-call and SMS tools are not offered by DialerBee's hosted MCP server for now. An AI assistant asks you to confirm each such action in its own window, but that confirmation is given by the assistant application, not checked by DialerBee, so it cannot prove a person approved the send.

Click-to-call

curl -sS https://app.dialerbee.com/api/v1/calls \
  -H "Authorization: Bearer $DIALERBEE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"to": "+12125550101", "agent_extension": "3901"}'

The named agent must be signed in and ready; DialerBee holds the agent, dials the customer from one of your verified caller IDs (or the caller_id you name, which must be one of them) and joins the agent when the customer answers. See Calls, leads and messages.

SMS

curl -sS https://app.dialerbee.com/api/v1/sms \
  -H "Authorization: Bearer $DIALERBEE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"to": "+12125550101", "body": "Your order has shipped.", "client_reference": "order-1042"}'

The answer is 202 with the message's status. The compliance checks run before anything is sent. An SMS is checked as a marketing message that needs explicit consent: even a service text such as "Your order has shipped." is refused with message_refused (no_consent) unless you have recorded the customer's consent in DialerBee.

Errors a send can answer

Status code What it means
401 invalid_api_key The key is missing, wrong, expired or revoked.
403 insufficient_scope The key is not a sending key for this action.
403 ip_not_allowed The request did not come from an address on the key's allow-list.
403 tier_not_enabled Your account has not switched this action on.
403 sending_suspended "Stop all API sending" is on for your account, or DialerBee stopped sending platform-wide.
403 outbound_not_approved A new self-service account is waiting for outbound approval.
402 insufficient_balance The balance is used up or below your minimum balance.
422 on_dnc The number is on a Do-Not-Call list.
422 blocked_country DialerBee does not contact numbers in this country.
422 dial_refused A call was refused by a compliance check (errors[0].code, for example outside_calling_hours or caller_id_not_registered).
422 message_refused An SMS was refused by a compliance check (errors[0].code, for example outside_calling_hours or no_consent).
409 agent_unavailable The agent is not signed in and ready.
409 duplicate_client_reference This client_reference was already used; nothing was sent again.
429 daily_cap_reached The key's or your account's daily cap is reached; Retry-After says when it resets (00:00 UTC).
429 rate_limit_exceeded Too many sends this minute; follow Retry-After.
429 spend_cap_reached Your account's daily estimated-spend limit is reached; Retry-After says when it resets.

Nothing is dialled or sent when a send answers an error. Retry only with the same Idempotency-Key.