Visión general

La API de Buluthat le permite integrar su software actual (CRM, ERP, comercio electrónico, mesa de ayuda) con su central en la nube: clic para llamar, control de llamadas, gestión de colas, lista negra, archivos de audio, campañas de llamadas automáticas, tareas del asistente de voz y código de verificación por voz.

Todos los endpoints son HTTP plano; las respuestas son JSON. Se usa desde cualquier lenguaje con un cliente HTTP.

Dirección base: https://api.buluthat.com/api/

Autenticación

Todos los endpoints son iguales La clave de API utiliza. La clave en el panel Cuenta y Soporte > Claves de API desde la página, lo genera el responsable de la cuenta; bt_ comienza con y se muestra una sola vez en el momento en que se genera.

La clave se envía en cada solicitud en el encabezado:

Authorization: Bearer bt_xxxxxxxx

Authorization si no se puede establecer el encabezado X-Api-Key: bt_xxxxxxxx también se acepta. La clave en la URL (?key=) el envío está desactivado en las claves nuevas.

Cada clave está vinculada a una única cuenta de cliente y solo accede a los datos de esa cuenta. En la clave alcance está definido:

AlcanceEndpoints
callGestión de llamadas, colas, estados de agentes
autocallLlamadas automáticas (por compatibilidad con integraciones antiguas, también habilita los endpoints de asistente de voz, OTP de voz y llamadas)
voicebotAsistente de voz
voice_otpCódigo de verificación por voz
smsAPI de SMS

Solicitud fuera del alcance 403 scope_denied, módulo desactivado en su cuenta 403 module_disabled devuelve. A la clave lista de IP permitidas, fecha de vencimiento y firma HMAC de solicitud obligatoria se pueden definir; todos Seguridad de la API en la página.

No use la clave en el navegador (JavaScript); llámela siempre desde su propio servidor. Si cree que se filtró, pulse en el panel "Renovar clave > Cerrar la anterior de inmediato" y la anterior quedará invalidada al instante.

Formato de solicitud

  • Operaciones de lectura GET, operaciones que modifican POST (en los archivos de audio PUT/DELETE).
  • Cuerpo del POST application/json o application/x-www-form-urlencoded puede ser.
  • Operación en los endpoints de integración action se selecciona con el parámetro (?action=create_campaign).
  • Las marcas de tiempo son hora de Turquía (2026-09-18 10:12:03).
  • Números de teléfono 05xxxxxxxxx, 5xxxxxxxxx o 905xxxxxxxxx se acepta en el formato; en las respuestas vuelve normalizado.

Formato de respuesta

Los endpoints de integración (autocall, voicebot, voice_otp) siempre devuelven un sobre:

{ "ok": true, "data": { } }
{ "ok": false, "error": "Kampanya bulunamadı.", "code": "campaign_not_found" }

Los endpoints de la central (begin_call, queues, blocked_numbers…) responden con código de estado HTTP: en caso de éxito 200 OK y en el cuerpo, el resultado (matriz JSON o texto plano); en caso de error 4xx y en el cuerpo, un mensaje de error en turco.

Códigos de error

HTTPcodeSignificado
400validation_failedNo se superó la validación del campo; el mensaje explica el motivo
401missing_token / invalid_token / token_expiredClave inexistente, no válida o vencida
401query_key_disabled / signature_*La clave llegó en la URL o no se pudo verificar la firma (Seguridad de la API)
403module_disabled / scope_denied / ip_not_allowedMódulo desactivado, alcance insuficiente o IP no permitida
404*_not_foundNo existe el registro o pertenece a otro cliente
405method_not_allowedLlegó un GET a una operación que requiere POST
422(específico del endpoint)Rechazo por regla de negocio: cuota, tiempo, sin línea, etc.
413payload_too_largeEl cuerpo de la solicitud supera 5 MB
429rate_limited / ip_lockedSe superó el límite de velocidad o la IP está bloqueada temporalmente por demasiados intentos fallidos
503db_unavailableProblema temporal del servicio; inténtelo de nuevo en un momento

Límites de velocidad

LímitePredeterminado
Por clave120 solicitudes por minuto (se puede reducir desde los ajustes de la clave)
Suma de todas las claves de la cuenta600 solicitudes por minuto
Estados de agentesademás, 2 solicitudes por minuto (para el estado en vivo, prefiera el webhook)
Llamadas automáticas add_leads5.000 registros por solicitud

En las respuestas X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset llegan los encabezados. Al superarlo 429 Too Many Requests y Retry-After devuelve el encabezado. En cada respuesta el X-Request-Id comparta el valor en las solicitudes de soporte.

Entorno de pruebas

No hay un sandbox aparte; pruebe en su cuenta con una extensión de prueba y una campaña pequeña. Las campañas de llamadas automáticas status: "draft" créelo con y results/summary puede llamar a los endpoints incluso sin datos. En el código de verificación por voz, envíelo a su propio número; la tarificación se aplica según las reglas de su paquete.

Versión y cambios

Los endpoints se mantienen compatibles hacia atrás; se agregan campos nuevos y no cambian el nombre ni el tipo de los existentes. Un campo que vaya a eliminarse se anuncia con al menos 90 días de antelación en el panel y en esta página.

Ayuda

Si se atasca durante la integración, abra un registro con el tema "Integración / API" en el Centro de Soporte del panel; adjunte su solicitud y respuesta de ejemplo y lo revisamos juntos.