Referencia de API
Guía de configuración para agentes y referencia de la API SQL para acceder por programación a tus datos financieros.
Descripción general
Expense Budget Tracker expone una API pública en:
https://api.expense-budget-tracker.com/v1/
Puedes acceder a esta misma API de dos maneras:
- Configuración nativa para agentes a partir de
GET /v1/ - Uso directo por HTTP con una
ApiKeyde larga duración que ya exista
Todas las solicitudes se someten a la misma seguridad a nivel de fila de Postgres que usa la aplicación web.
Descubrimiento y especificaciones publicadas
Empieza aquí:
https://api.expense-budget-tracker.com/v1/
La respuesta de descubrimiento indica a los agentes cómo iniciar la autenticación y qué llamadas hacer a continuación. Esta misma API también publica:
GET /v1/openapi.jsonGET /v1/swagger.jsonGET /v1/schema
Usa schema cuando necesites la lista exacta de relaciones y columnas permitidas que expone /v1/sql.
Configuración nativa para agentes
Si quieres que Claude Code, Codex, OpenClaw u otro agente se conecte por sí solo, empieza por el punto de descubrimiento y sigue las acciones que devuelve el servidor.
Flujo de autenticación
GET https://api.expense-budget-tracker.com/v1/- Lee la acción
send_codeque devuelve la respuesta ybootstrapUrl - Haz
POSTcon el correo electrónico del usuario ahttps://auth.expense-budget-tracker.com/api/agent/send-code - Recibe
otpSessionToken - Pide al usuario el código de 8 dígitos que ha recibido por correo electrónico
- Haz
POSTconcode,otpSessionTokenylabelahttps://auth.expense-budget-tracker.com/api/agent/verify-code - Recibe una
ApiKeyde larga duración - Guarda esa clave fuera de la memoria del chat
GET https://api.expense-budget-tracker.com/v1/meGET https://api.expense-budget-tracker.com/v1/workspaces- Opcionalmente, haz
POST https://api.expense-budget-tracker.com/v1/workspacespara crear un espacio de trabajo POST https://api.expense-budget-tracker.com/v1/workspaces/{workspaceId}/selectGET https://api.expense-budget-tracker.com/v1/schema- Ejecuta SQL con
POST https://api.expense-budget-tracker.com/v1/sql
Cabecera de autenticación
Authorization: ApiKey <key>
Gestión del espacio de trabajo
POST /v1/workspaces/{workspaceId}/selectguarda el espacio de trabajo predeterminado para esa clave de API- después de guardar un espacio de trabajo,
/v1/sqlpuede omitirX-Workspace-Id X-Workspace-Id: <workspaceId>sigue siendo compatible si quieres usar, en una sola solicitud, un espacio de trabajo distinto del que quedó guardado- si el usuario tiene exactamente un espacio de trabajo y la clave todavía no tiene ninguno guardado, la API lo guarda automáticamente y lo usa
Si quieres una guía paso a paso para personas, consulta Configuración de agentes de IA.
Uso directo por HTTP con una clave existente
Los scripts, las tareas cron, los paneles y las aplicaciones personalizadas pueden llamar directamente a esta misma API una vez que ya disponen de una ApiKey de larga duración.
Autenticación
Pasa la clave en una cabecera de autenticación ApiKey:
curl -X POST https://api.expense-budget-tracker.com/v1/sql \
-H "Authorization: ApiKey ebta_your_key_here" \
-H "X-Workspace-Id: workspace-id" \
-H "Content-Type: application/json" \
-d '{"sql": "SELECT * FROM ledger_entries ORDER BY ts DESC LIMIT 10"}'
X-Workspace-Id solo es necesario si la clave todavía no tiene guardado un espacio de trabajo predeterminado, o si quieres usar otro distinto para esa solicitud.
Authorization: ApiKey ebta_your_key_hereX-Workspace-Id: <workspaceId>cuando sea necesario
Resumen de rutas
GET /v1/— documento público de descubrimientoGET /v1/openapi.jsonyGET /v1/swagger.json— especificaciones publicadas de la APIGET /v1/me— contexto de la cuenta autenticadaGET /v1/workspaces— lista los espacios de trabajo disponibles para el propietario de la clavePOST /v1/workspaces— crea un espacio de trabajoPOST /v1/workspaces/{workspaceId}/select— guarda el espacio de trabajo predeterminado para esta claveGET /v1/schema— muestra las relaciones y columnas permitidas para SQLPOST /v1/sql— ejecuta una única instrucción SQL restringida
Política SQL
POST /v1/sql acepta exactamente una instrucción SQL por solicitud.
Tipos de instrucciones permitidos:
SELECTWITHINSERTUPDATEDELETE
Patrones bloqueados o rechazados:
- varias instrucciones en la misma solicitud
- DDL como
CREATE,DROPyALTER - envoltorios de transacción como
BEGIN,COMMITyROLLBACK set_config()- comentarios SQL
- identificadores entrecomillados
- cadenas delimitadas con comillas de dólar
El servidor también restringe qué relaciones se pueden consultar. Usa /v1/schema para revisar las relaciones y columnas expuestas antes de generar SQL.
Relaciones actualmente expuestas:
ledger_entriesaccountsbudget_linesbudget_commentsworkspace_settingsaccount_metadataexchange_rates
Límites
- 100 filas por respuesta
- tiempo máximo de ejecución de 30 segundos por instrucción
- 10 solicitudes por segundo y 10.000 solicitudes por día para cada clave
Seguridad
- Las claves de API se almacenan como hashes SHA-256; la clave en texto plano nunca se guarda
- RLS aplica el aislamiento por espacio de trabajo a nivel de base de datos
- Las claves se pueden revocar desde el producto en cualquier momento
- Al eliminar a un miembro de un espacio de trabajo, se revocan automáticamente todas sus claves