Tipo de página: docs
Especificación de la API
Contrato OpenAPI legible por máquinas y contrato de la API REST orientada al cliente para TextTree.
Respuesta directa
Contrato OpenAPI legible por máquinas y contrato de la API REST orientada al cliente para TextTree.
Contenido de la página
# Especificación de la API
TextTree publica un contrato estático OpenAPI 3.1 para la API REST actual:
- [OpenAPI JSON](/openapi.json)
- Servidor de producción: `https://api.texttree.ai`
- Servidor Phoenix local: `http://localhost:4001`
La especificación se basa en el mapa de rutas de Phoenix y en el registro del protocolo MCP. Está
pensada para revisión de clientes, generación de código y planificación de integraciones.
## Autenticación
Las solicitudes autenticadas de la API REST y de MCP requieren un token de acceso bearer emitido
por TextTree:
```http
Authorization: Bearer $TEXTREE_ACCESS_TOKEN
```
Los tokens de acceso bearer actuales comienzan con `txt_...` e incluyen scopes como
`messages:write`, `campaigns:read`, `campaigns:write`, `numbers:read`,
`numbers:write`, `onboarding:read`, `onboarding:write`, `mcp:read` y
`mcp:execute`.
Las claves de API heredadas `txk_...` se conservan como registros internos para flujos de trabajo
históricos. No son aceptadas por `/api/v1/messages`, `/api/v1/numbers`,
`/api/v1/campaigns`, `/mcp` ni `/mcp/tools`.
## Migración de claves heredadas
Si un cliente todavía tiene una clave heredada `txk_...`, cámbiala una sola vez por un token
bearer `txt_...` actual:
```bash
curl https://api.texttree.ai/api/v1/auth/migrate-legacy-key \
-H "Authorization: Bearer $TEXTREE_LEGACY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Production bearer token"}'
```
En caso de éxito, TextTree devuelve el nuevo token bearer una sola vez y revoca la clave
heredada. Si la creación del token falla, la clave heredada no se revoca.
## Superficies REST actuales
El archivo OpenAPI cubre:
- verificaciones de salud públicas
- arranque de cuentas headless
- encolamiento de mensajes salientes y consulta de estado
- rutas de campañas, snippets y listas de contactos
- rutas de listado y aprovisionamiento de números
- rutas programáticas de onboarding y financiamiento
- rutas de gestión de clientes OAuth de MCP
- registro OAuth, intercambio de tokens y revocación
- endpoints receptores de webhooks para proveedores de SMS y de financiamiento
- transporte JSON-RPC nativo de MCP y rutas REST heredadas de herramientas MCP
Para los detalles de los métodos nativos de MCP, usa los documentos de [compatibilidad MCP de OpenAI](/docs/openai-mcp/)
y de [MCP](/docs/mcp/). OpenAPI documenta los endpoints de transporte HTTP;
los descriptores y esquemas de herramientas MCP viven en los documentos de MCP porque se
devuelven a través de `tools/list` de JSON-RPC.
## Envolturas de error
La mayoría de las fallas de la API devuelven un objeto JSON con una cadena `error`:
```json
{
"error": "unauthorized"
}
```
Las fallas de scope incluyen el scope de ruta o de herramienta faltante:
```json
{
"error": "insufficient_scope",
"required_scope": "messages:write"
}
```
Las fallas de validación incluyen detalles a nivel de campo:
```json
{
"error": "validation_failed",
"details": {
"phone_number": ["should be at least 7 character(s)"]
}
}
```
## Idempotencia
`POST /api/v1/messages` acepta una `idempotency_key` opcional. Reutilizar la misma
clave con el mismo destinatario, cuerpo y costo devuelve el mensaje existente con
`"replayed": true`. Reutilizar la misma clave con un payload diferente devuelve
`409 idempotency_conflict`.
## Verificación
Las verificaciones públicas en vivo para este contrato son:
```bash
curl https://api.texttree.ai/health
curl https://api.texttree.ai/api/v1/health
curl https://api.texttree.ai/mcp/health
curl https://api.texttree.ai/.well-known/oauth-protected-resource/mcp
curl https://api.texttree.ai/.well-known/oauth-authorization-server/mcp
```
El comportamiento de los endpoints autenticados está cubierto por las pruebas del controlador de
Phoenix y de MCP, porque este repositorio no usa tokens bearer de clientes ni de producción
para la verificación de la documentación.