POST/api/v6/callblasting/calls

Call with generated voice

Sends a call that plays a text-to-speech audio.

Scope and limits

Scope

API key with the callblasting service enabled

Usage limit

60 requests per minute

Idempotency

Supports Idempotency-Key

  • Up to 4000 characters of text per call.
  • Up to 5 attempts per call.

Sends a call that plays a text-to-speech audio. The audio is synthesized when the process is created and reused if it already existed, at no extra charge.

The voice is always chosen by catalog code (voice). Pre-recorded audio has its own endpoint: POST /api/v6/callblasting/calls/audio.

Which states are retried is a fixed service policy. In retry you only tune the limits: how many attempts, how often, and how long a call must last to count as successful.

Request body

application/json
to
stringrequired
Destination number in international format, digits only (7 to 18).
text
stringrequired
Text to synthesize (1 to 4000 characters).
voice
stringrequired
Voice code from the catalog (see GET /api/v6/callblasting/voices).
callerId
stringoptional
Number shown to the person receiving the call.
clientReference
stringoptional
Your own reference to correlate the call (max 128 characters).
repeat
integeroptional
Times the message is played.

Default: 2

recordingTtlSec
integeroptional
Recording retention in seconds. Defaults to 24 hours; minimum 24 hours, maximum 1 year.
retry
objectoptional
Retry tuning. Which states are retried is a fixed service policy; here you only tune the limits.
maxAttempts
integeroptional
Number of attempts.

Default: 2

minIntervalSec
integeroptional
Minimum wait between attempts, in seconds.

Default: 300

minSuccessSec
integeroptional
Minimum duration for the call to count as successful, in seconds.

Default: 5

{
  "to": "573001234567",
  "text": "Hola, te llamamos de Acme para confirmar tu cita del jueves.",
  "voice": "es-us-female-1",
  "clientReference": "campania-abril-0012",
  "repeat": 2
}

Responses

202

Call queued.

{
  "success": true,
  "data": {
    "id": "cb_9f2c0e2a1d8b",
    "to": "573001234567",
    "status": "queued",
    "clientReference": "campania-abril-0012"
  },
  "meta": {
    "requestId": "8f0c0e2a4b1d4c8fae2b7a91e0c5d3f6",
    "timestamp": "2026-06-23T15:04:05+00:00",
    "responseTimeMs": 412.5
  }
}
400

Invalid number, missing text, or unknown voice.

401

Invalid or missing credentials.

402

Insufficient balance to generate the call audio.

403

The API key does not have the callblasting service enabled.

429

Request limit exceeded.

Possible errors

Codes this endpoint can return in error.code. The full detail lives in the catalog.

See the full catalog
POST /api/v6/callblasting/calls
curl -X POST 'https://developers.hablame.co/api/v6/callblasting/calls' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer hk_YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"to":"573001234567","text":"Hola, te llamamos de Acme para confirmar tu cita del jueves.","voice":"es-us-female-1","clientReference":"campania-abril-0012","repeat":2}'

Try-It

Run the request against the real API with your own API key.

The key is used only in your browser for this request. It is not stored nor sent anywhere else.

Request body

Destination number in international format, digits only (7 to 18).

Text to synthesize (1 to 4000 characters).

Voice code from the catalog (see GET /api/v6/callblasting/voices).

Number shown to the person receiving the call.

Your own reference to correlate the call (max 128 characters).

Times the message is played.

Recording retention in seconds. Defaults to 24 hours; minimum 24 hours, maximum 1 year.

Retry tuning. Which states are retried is a fixed service policy; here you only tune the limits.

POST https://developers.hablame.co/api/v6/callblasting/calls

Response

You have not sent a request yet.