Referencia de API
Integre con Epismo a través del HTTP API.
El Epismo HTTP API está disponible en https://api.epismo.ai. Los puntos finales de la aplicación se encuentran en /v1. Los puntos finales OAuth se encuentran en /oauth y rutas de metadatos conocidas. El API utiliza el mismo modelo de objetos que el servidor CLI y MCP: paquetes, pistas, alias, sugerencias, espacios de trabajo, proyectos, alcances y créditos.
Autenticación
Los puntos finales protegidos aceptan tokens de acceso OAuth como tokens de portador.
curl https://api.epismo.ai/v1/packs/search \
-H "authorization: Bearer $EPISMO_TOKEN" \
-H "content-type: application/json" \
-d '{"type":"context","query":"onboarding"}'Los puntos finales de lectura requieren ámbitos de lectura. Los puntos finales de mutación requieren ámbitos de escritura. Muchos puntos finales /v1 aceptan workspaceId como parámetro de consulta. Si se omite, la solicitud utiliza el contexto o espacio personal predeterminado del token.
curl "https://api.epismo.ai/v1/projects?workspaceId=$WORKSPACE_ID" \
-H "authorization: Bearer $EPISMO_TOKEN"Solicitar convenciones
- Utilice
content-type: application/jsonpara los cuerpos de solicitud JSON. - Los puntos finales de actualización utilizan la semántica PATCH. Los campos omitidos permanecen sin cambios.
- Las fechas utilizan
YYYY-MM-DD. - Crear y actualizar llamadas use
scope; las llamadas de búsqueda utilizanscopes. workspaceIdse pasa como parámetro de consulta en puntos finales compatibles.
Mapa de puntos finales principales
| Método | Camino | Propósito |
|---|---|---|
| POST | /v1/otp-tokens |
Cree un token OTP para iniciar sesión |
| GET/POST | /v1/credits |
Obtener saldo o iniciar el pago |
| GET/POST/PATCH | /v1/workspaces, /v1/workspaces/:workspaceId |
Listar, crear y actualizar espacios de trabajo |
| GET/PUT/DELETE | /v1/workspaces/:workspaceId/members, /v1/workspaces/:workspaceId/members/:userId |
Listar, insertar o eliminar miembros del espacio de trabajo |
| GET/POST/PATCH | /v1/projects, /v1/projects/:projectId |
Listar, crear y actualizar proyectos |
| POST/PUT/DELETE | /v1/projects/members/list, /v1/projects/:projectId/members, /v1/projects/:projectId/members/:userId |
Administrar miembros del proyecto |
| GET/PUT/DELETE | /v1/agents |
Listar, agregar y eliminar agentes instalados |
| POST/PATCH/GET/DELETE | /v1/tracks, /v1/tracks/:id |
Administrar pistas |
| POST | /v1/tracks/search, /v1/tracks/apply |
Buscar o aplicar pistas de forma masiva |
| POST | /v1/tracks/review |
Generar una reseña de solo lectura |
| POST/GET/DELETE | /v1/logs, /v1/logs/:logId |
Administrar registros |
| POST/PATCH/GET/DELETE | /v1/packs |
Administrar paquetes mediante consulta reference |
| POST | /v1/packs/search, /v1/packs/like, /v1/packs/rate |
Buscar, dar me gusta o calificar paquetes |
| POST | /v1/packs/run |
Expandir un paquete de flujo de trabajo a una pista |
| PUT/GET/DELETE | /v1/aliases, /v1/aliases/:alias |
Administrar alias de paquetes |
| POST/GET/PATCH | /v1/suggestions, /v1/suggestions/search, /v1/suggestions/:id, /v1/suggestions/:id/resolve |
Administrar sugerencias de paquetes |
| POST | /v1/mcp/tokens, /v1/mcp/tokens/refresh |
Emitir y actualizar tokens MCP |
| POST | /v1/cli/tokens |
Emitir tokens CLI |
Crear un paquete de contexto
POST /v1/packs
Authorization: Bearer <token>
Content-Type: application/json
{
"type": "context",
"title": "Team onboarding",
"scope": { "type": "personal" },
"blocks": [
{ "title": "Where things live", "content": "Docs in Notion, code in GitHub, designs in Figma." },
{ "title": "How we work", "content": "Weekly planning on Mondays; ship behind feature flags." }
]
}Los paquetes de contexto utilizan blocks. Los paquetes de flujo de trabajo utilizan type: "workflow" y steps. Pasar bloques a un flujo de trabajo o pasos a un paquete de contexto devuelve un error de validación.
Leer paquetes de manera eficiente
El paquete lee los datos del esquema de devolución de forma predeterminada. Para paquetes grandes, no solicite inmediatamente full=true a menos que el cliente realmente lo necesite todo. Lea primero el esquema y luego busque el blockIds o el stepIds seleccionados.
curl "https://api.epismo.ai/v1/packs?reference=@repo-onboarding" \
-H "authorization: Bearer $EPISMO_TOKEN"curl "https://api.epismo.ai/v1/packs?reference=@repo-onboarding&blockIds=b001,b002" \
-H "authorization: Bearer $EPISMO_TOKEN"Agregue shareUrl=true a una lectura de paquete para crear o devolver un enlace para compartir a pedido. Crear y actualizar respuestas no generan enlaces para compartir y solicitar uno no hace público un paquete privado.
Las referencias de paquetes pueden ser UUID, @alias, @handle/alias, URL compartidas o URL centrales.
Los costos de crédito API se enumeran por operación en Créditos API.
Crear pistas
Las pistas de tareas representan un trabajo concreto.
POST /v1/tracks
Authorization: Bearer <token>
Content-Type: application/json
{
"type": "task",
"title": "Review docs",
"scope": { "type": "personal" },
"task": { "status": "todo", "dueDate": "2026-06-05" }
}Los seguimientos de objetivos representan resultados.
{
"type": "goal",
"title": "Ship documentation v1",
"scope": { "type": "projects", "ids": ["project-id"] },
"goal": { "status": "on_track", "progress": 40 }
}Los estados de las tareas son backlog, todo, in_progress y done. Los estados de los objetivos son not_started, on_track, at_risk, postponed y completed.
Búsqueda y filtros
La búsqueda de paquetes admite type, query, page, searchMode, scopes y campos de filtro como category, like, visibility, ownerId, minLikeCount, minSuccessCount, updatedAtFrom y updatedAtTo.
La búsqueda de seguimiento admite filtros específicos de tareas, como assignee, goalId, parentId y dependsOn, además de filtros específicos de objetivos, como progressMin y progressMax. También acepta searchMode.
searchMode selecciona el modo de clasificación: keyword (predeterminado) o semantic (coincidencia de palabras clave más similitud de vectores). Omítalo para la búsqueda de palabras clave.
{
"type": "task",
"query": "docs",
"scopes": [{ "type": "personal" }],
"filter": { "status": ["todo", "in_progress"] }
}Aplicar pistas de forma masiva
POST /v1/tracks/apply puede crear, actualizar y eliminar varias pistas en una sola solicitud. Los identificadores que no son UUID crean nuevos registros y otros upserts pueden hacer referencia a ellos en la misma solicitud.
{
"scope": { "type": "personal" },
"upserts": [
{ "id": "t001", "title": "Task A", "task": { "status": "todo" } },
{ "id": "t002", "title": "Task B", "task": { "status": "todo", "dependsOn": ["t001"] } }
]
}Errores
Los errores se devuelven como JSON. Los errores de validación pueden incluir detalles de análisis del esquema.
| Estado | Significado |
|---|---|
| 400 | Entrada, parámetro de ruta o parámetro de consulta no válidos |
| 401 | Token de portador faltante o no válido |
| 402 | No hay suficientes créditos para una operación sujeta a crédito |
| 403 | Autenticado pero no permitido en el ámbito/espacio de trabajo seleccionado |
| 404 | No se encontró el registro o referencia solicitado |
| 409 | Conflicto, como una transición de estado no válida o una restricción duplicada |
| 429 | Tarifa limitada, especialmente creación de OTP |
| 500 | Error inesperado del servidor |
| 502 | El servicio ascendente devolvió una respuesta no válida o fallida |
Vuelva a intentar solo las respuestas 429 y 5xx transitorias, y utilice la función de retroceso.