Public APIEn producción/public-api/*

Documentación de la API pública de CallSpace

Consulta los endpoints disponibles hoy, cómo autenticarte con x-api-key y cómo consumirlos desde tus integraciones server-to-server.

Resumen rápido

La superficie pública actual es estable y read-only: autenticación por API key, agentes, historial de llamadas y reproducción de grabaciones.

Base URL

https://api.callspace.io

Autenticación

x-api-key

Método

GET

Alcance

Agentes, llamadas y grabaciones read-only del workspace

Qué puedes hacer hoy

La API pública actual está pensada para integraciones controladas. Hoy solo expone datos de agentes y siempre opera aislada por workspace.

Lectura estable

La API pública actual expone endpoints read-only para agentes, llamadas y grabaciones. No hay operaciones de escritura ni mutaciones públicas.

Aislada por workspace

Cada API key queda vinculada al workspace que la creó y solo devuelve sus agentes.

Gestión desde Integraciones

La credencial se genera, copia y rota desde el dashboard, en la sección Integraciones.

Autenticación con x-api-key

Todas las peticiones requieren una API key de workspace en la cabecera x-api-key. La documentación es pública, pero la clave se gestiona desde el área autenticada.

1

1. Genera tu credencial

Crea o regenera la API key desde el dashboard de Integraciones cuando tu workspace ya está operativo.

2

2. Envíala en cada request

Incluye la cabecera x-api-key con el valor completo de la clave en cada petición a la public API.

3

3. Guárdala en backend

Usa la clave solo en procesos server-to-server, variables de entorno o servicios protegidos. No la expongas en frontend público.

Cabecera requerida

La autenticación se resuelve leyendo la cabecera x-api-key. Sin esa cabecera, la petición no entra.

HTTP
x-api-key: <YOUR_API_KEY>

Formato actual de clave

cs_live_<keyId>.<secret>

Buenas prácticas

El backend responde 401 Unauthorized cuando falta la cabecera o la clave no pasa validación.

401 Si falta la cabecera

La API responde 401 Unauthorized indicando que falta la cabecera x-api-key en la petición.

401 Si la clave no es válida

La API responde 401 Unauthorized con el mensaje API key inválida.

  • Guarda la API key en variables de entorno o secretos de infraestructura, no en código cliente.
  • Si sospechas que se ha expuesto, regénérala desde Integraciones para invalidar la anterior.
  • Trata esta integración como acceso server-to-server y evita usar la clave en navegadores o apps públicas.

Referencia de endpoints

La public API actual expone endpoints read-only para consultar agentes, historial de llamadas y reproducción autenticada de grabaciones.

Scope actual

Todos los endpoints quedan aislados por el workspace dueño de la API key. No exponen datos de otros tenants ni acciones de escritura.

Más endpoints públicos

Aquí tienes cada ruta con sus parámetros, tipos, valores admitidos y ejemplos listos para copiar.

Agentes del workspace

Lista read-only de agentes del workspace autenticado. Es el endpoint más simple para validar conectividad y credenciales.

endpoint
GEThttps://api.callspace.io/public-api/agents

Autenticación

x-api-key

Respuesta exitosa

200 OK

Devuelve

Lista de agentes del workspace

Parámetros

Este endpoint no acepta parámetros de path ni query adicionales.

Ejemplo de request

bash
curl -X GET "https://api.callspace.io/public-api/agents" \
  -H "x-api-key: <YOUR_API_KEY>"

Orden de salida

Los agentes se devuelven por createdAt DESC, mostrando primero los más recientes.

Historial de llamadas

Devuelve una respuesta paginada con llamadas agregadas, estado, duración, agente y metadatos de grabación.

endpoint
GEThttps://api.callspace.io/public-api/calls

Autenticación

x-api-key

Respuesta exitosa

200 OK

Devuelve

Página de llamadas del workspace

Parámetros

ParámetroUbicaciónTipoObligatorioAdmiteEjemploDescripción
pagequeryintegerNo>= 11Número de página para navegar la respuesta paginada.
limitqueryintegerNo1-100025Cantidad máxima de resultados por página.
directionquerystringNoinbound | outbound | missedinboundFiltra por llamadas entrantes, salientes o perdidas.
dateFromquerydate stringNoYYYY-MM-DD | ISO 86012026-05-01Fecha inicial del rango. Se interpreta desde el inicio del día.
dateToquerydate stringNoYYYY-MM-DD | ISO 86012026-05-31Fecha final del rango. Se interpreta hasta el final del día.
agentIdsquerycsv stringNouuid,uuid,...a1b2,a3b4Lista separada por comas con IDs de agentes para filtrar solo sus llamadas.
teamIdquerystringNoUUIDteam_123ID de equipo para limitar el historial a los agentes de ese equipo.
qquerystringNotexto libre600Búsqueda parcial sobre fromNumber y toNumber.

Ejemplo de request

bash
curl -G "https://api.callspace.io/public-api/calls" \
  -H "x-api-key: <YOUR_API_KEY>" \
  --data-urlencode "direction=inbound" \
  --data-urlencode "dateFrom=2026-05-01" \
  --data-urlencode "limit=25" \
  --data-urlencode "q=600"

Filtros disponibles

Combina filtros libres para paneles, búsquedas o sincronizaciones. direction solo admite inbound, outbound o missed.

Audio de grabación

Sirve el audio inline de una llamada concreta cuando la grabación existe y pertenece al workspace autenticado.

endpoint
GEThttps://api.callspace.io/public-api/calls/:callSid/recording

Autenticación

x-api-key

Respuesta exitosa

200 OK

Devuelve

Audio MP3 inline

Parámetros

ParámetroUbicaciónTipoObligatorioAdmiteEjemploDescripción
callSidpathstringCA...CA1234567890abcdef1234567890abcdIdentificador único de la llamada devuelto por /public-api/calls.

Ejemplo de request

bash
curl -L "https://api.callspace.io/public-api/calls/CA1234567890abcdef1234567890abcd/recording" \
  -H "x-api-key: <YOUR_API_KEY>" \
  --output call-recording.mp3

Parámetro requerido

Usa el callSid devuelto por /public-api/calls. Si la llamada no tiene grabación, la API responde 404.

Envío de plantilla WhatsApp

Envía un mensaje de WhatsApp usando una plantilla aprobada. Soporta variables y adjunto de header (imagen o PDF según el tipo de plantilla).

endpoint
POSThttps://api.callspace.io/public-api/messaging/whatsapp-template

Autenticación

x-api-key

Respuesta exitosa

201 Created

Devuelve

ID de conversación y mensaje

Parámetros

ParámetroUbicaciónTipoObligatorioAdmiteEjemploDescripción
fromPhoneNumberIdbodystringUUID | E.164+34600000000UUID del número remitente o su número en formato E.164. Si se pasa E.164, se resuelve internamente.
toE164bodystringE.164+34611222333Número destino en formato E.164 (ej. +34611222333).
templateIdbodystringUUID | nombrebienvenidaUUID o nombre de la plantilla aprobada. Máximo 100 caracteres.
variablesbodyobject{ "1": "valor" }{"1":"Hola"}Mapa de variables de la plantilla. Las claves son los índices de los placeholders (ej. {"1":"Valor"}).
headerAttachmentbodyobjectNofileName, mimeType, contentBase64{ ... }Adjunto para el header de la plantilla. Debe incluir fileName, mimeType y contentBase64. Máximo 16 MB.

Ejemplo de request

bash
curl -X POST "https://api.callspace.io/public-api/messaging/whatsapp-template" \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"fromPhoneNumberId":"+34600000000","toE164":"+34611222333","templateId":"bienvenida","variables":{"1":"Hola"}}'

templateId acepta UUID o nombre

Puedes pasar el UUID interno o el nombre de la plantilla. El adjunto headerAttachment es obligatorio solo si la plantilla tiene header de tipo document o media.

Estadísticas de mensajería

Devuelve estadísticas de mensajería por agente para el workspace. Útil para dashboards externos o reportes de actividad.

endpoint
GEThttps://api.callspace.io/public-api/messaging/stats

Autenticación

x-api-key

Respuesta exitosa

200 OK

Devuelve

Estadísticas por agente

Parámetros

ParámetroUbicaciónTipoObligatorioAdmiteEjemploDescripción
referenceDatequerystringNoYYYY-MM-DD2026-06-26Fecha de referencia para las estadísticas en formato YYYY-MM-DD.
totalFromquerystringNoYYYY-MM-DD2026-06-01Inicio del rango para el total acumulado en formato YYYY-MM-DD.

Ejemplo de request

bash
curl -G "https://api.callspace.io/public-api/messaging/stats" \
  -H "x-api-key: <YOUR_API_KEY>" \
  --data-urlencode "referenceDate=2026-06-26"

Formato de respuesta

La respuesta es un array de objetos agente con un contrato estable y orientado a integraciones.

Campos devueltos

Estos son los campos actuales del DTO público devuelto por el endpoint.

CampoTipo
idstring
namestring
lastNamestring
emailstring
extensionstring | null
rolestring
statusstring
whatsappEnabledboolean
createdAtISO datetime
updatedAtISO datetime

Ejemplo JSON

Ejemplo de payload compatible con la implementación actual.

JSON
[
  {
    "id": "3f0a9d20-8ab8-4ee3-9813-8a9f6f0b5cc1",
    "name": "Lucia",
    "lastName": "Martin",
    "email": "lucia@acme.com",
    "extension": "201",
    "role": "AGENT",
    "status": "ACTIVE",
    "whatsappEnabled": true,
    "createdAt": "2026-05-08T10:12:34.000Z",
    "updatedAt": "2026-05-08T10:12:34.000Z"
  }
]

Ejemplos de uso

Snippets listos para consumir el endpoint con tu API key desde entornos backend o scripts internos.

Ejemplo con curl

bash
curl -X GET "https://api.callspace.io/public-api/agents" \
  -H "x-api-key: <YOUR_API_KEY>"

Ejemplo con fetch

TypeScript
const response = await fetch('https://api.callspace.io/public-api/agents', {
  method: 'GET',
  headers: {
    'x-api-key': process.env.CALLSPACE_API_KEY!,
  },
});

if (!response.ok) {
  throw new Error('Request failed');
}

const agents = await response.json();

Resultado esperado

Si la petición es correcta, recibirás un array JSON de agentes del workspace autenticado con status 200 OK.

Gestión de credenciales

La clave se gestiona desde Integraciones

Usa esta documentación como referencia pública y mantén la generación, copia y rotación de la API key dentro del dashboard autenticado.