Docs
Descripción general de la API
Descripción general de la API
Arquitectura y estructura de la API de BeatsCode.
BeatsCode expone dos APIs principales que trabajan en conjunto para ofrecer la plataforma completa.
APIs disponibles
Backend API (puerto 8000)
API REST construida con FastAPI que gestiona:
- Autenticación y autorización (JWT)
- Gestión de usuarios y roles
- Suscripciones y pagos (Stripe)
- Artículos y contenido del blog
- Integración con CRM (Twenty)
- Soporte al cliente (Chatwoot)
URL base: https://api.beatscode.co/api/v1
Meta-Agent API (puerto 8001)
API de orquestación de agentes IA construida con FastAPI + PydanticAI:
- Creación y ejecución de tareas
- Streaming de resultados (SSE)
- Gestión de cuotas y concurrencia
- Integración con canales (Telegram)
- Historial de uso
URL base: https://agent.beatscode.co/api/v1
Arquitectura
Ambas APIs siguen una arquitectura por capas:
Routers → Services → CRUD Repositories → Models
| Capa | Responsabilidad |
|---|---|
| Routers | Endpoints HTTP, validación de entrada, documentación OpenAPI |
| Services | Lógica de negocio, orquestación de operaciones |
| CRUD | Patrón repositorio con SQLAlchemy async |
| Models | Modelos de base de datos (SQLAlchemy 2.0) |
Base de datos
Ambos servicios comparten una base de datos PostgreSQL 16+ llamada shinkansen_local:
- El backend usa el esquema
public - Meta-Agent usa el esquema
meta_agent
Adicionalmente:
- Redis 7.2+ — Token blacklist, caching, concurrencia, códigos de vinculación
- MongoDB 7.0+ — Checkpointing del estado de agentes LangGraph
Formato de respuesta
Todas las respuestas de la API usan un wrapper unificado:
{
"success": true,
"message": "Operación completada exitosamente",
"data": {
// Datos de la respuesta
}
}
En caso de error:
{
"success": false,
"message": "Descripción del error",
"data": null
}
Documentación interactiva
Ambas APIs incluyen documentación interactiva generada automáticamente:
- Swagger UI:
/docs - ReDoc:
/redoc
Puedes probar los endpoints directamente desde la documentación interactiva después de autenticarte.