Callsistdocs
Referencia

Endpoints

La referencia completa, generada desde los esquemas que validan las peticiones.

Los cuerpos de petición de esta página se generan desde los esquemas de validación de la API, no están escritos a mano. Lo que ves es literalmente lo que se acepta.

Lo que sí está escrito a mano —y por tanto puede quedarse corto— son las descripciones y los códigos de respuesta. Si algo no cuadra, manda el comportamiento de la API.

Aceptado no significa atendido. Como los cuerpos salen del esquema de validación, aquí aparecen también los campos que la API acepta y luego ignoraspeaker_labels, speakers_expected, channels, word_timestamps y language_confidence_threshold. Pasan la validación, no dan error y no cambian el resultado: la lista, con lo que hace cada uno de verdad, está en Subir audio.

No hay consola de pruebas, y es deliberado. Ver por qué.

GET/v1/me

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/me"
Empty
GET/v1/balance

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/balance"
Empty
GET/v1/models

Response Body

curl -X GET "https://example.com/v1/models"
Empty
POST/v1/files

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/files" \  -F file="string"
Empty
GET/v1/files/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Path Parameters

id*string

Response Body

application/json

curl -X GET "https://example.com/v1/files/string"
Empty
DELETE/v1/files/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Path Parameters

id*string

Response Body

application/json

curl -X DELETE "https://example.com/v1/files/string"
Empty
POST/v1/transcripts

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Header Parameters

Idempotency-Key?string

Ventana de 24 h. Mismo valor y mismo cuerpo no se cobra dos veces.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/transcripts" \  -H "Content-Type: application/json" \  -d '{}'
Empty
GET/v1/transcripts

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Query Parameters

limit?integer
Range1 <= value <= 100
before?string
Formatdate-time
status?string

Value in

  • "queued"
  • "processing"
  • "completed"
  • "failed"
  • "cancelled"

Response Body

application/json

curl -X GET "https://example.com/v1/transcripts"
Empty
GET/v1/transcripts/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Path Parameters

id*string

Response Body

application/json

curl -X GET "https://example.com/v1/transcripts/string"
Empty
DELETE/v1/transcripts/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Path Parameters

id*string

Response Body

application/json

curl -X DELETE "https://example.com/v1/transcripts/string"
Empty
POST/v1/chat/completions

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/chat/completions" \  -H "Content-Type: application/json" \  -d '{    "model": "string",    "messages": [      {        "role": "system",        "content": "string"      }    ]  }'
Empty
POST/v1/embeddings

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/embeddings" \  -H "Content-Type: application/json" \  -d '{    "model": "string",    "input": "string"  }'
Empty
POST/v1/webhooks

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/webhooks" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com",    "events": [      "string"    ]  }'
Empty
GET/v1/webhooks

Authorization

bearerAuth
AuthorizationBearer <token>

Cabecera Authorization: Bearer sk_live_…

In: header

Response Body

curl -X GET "https://example.com/v1/webhooks"
Empty

Por qué no hay «try it»

Deepgram y AssemblyAI tienen consola de pruebas en su referencia. Nosotros no, y no es por falta de ganas.

El CORS de la API es una lista blanca con un solo origen: el panel. Poner una consola aquí obligaría a añadir docs.callsist.com, y eso significa invitar a pegar una clave sk_live_ en una página web pública, donde la lee cualquiera que abra el inspector del navegador. La clave no caduca y da acceso a transcribir, a gastar saldo y a leer todo lo transcrito.

El playground autenticado del panel hace lo mismo sin ese problema, porque allí la sesión ya existe y la clave no tiene que viajar a ninguna parte: app.callsist.com.

Para probar desde tu máquina, copia el curl de cada operación.