Довідник API
Підключення AI-агентів і довідник SQL API для програмного доступу до ваших фінансових даних.
Огляд
Expense Budget Tracker надає один публічний API для машинного доступу за адресою:
https://api.expense-budget-tracker.com/v1/
Цю саму точку входу можна використовувати двома способами:
- Підключення AI-агента через
GET /v1/ - Прямі HTTP-запити з уже наявним довготривалим
ApiKey
Усі запити проходять через той самий механізм Postgres Row Level Security, що й вебзастосунок.
Точка входу та опубліковані специфікації
Починайте з цієї адреси:
https://api.expense-budget-tracker.com/v1/
Початкова відповідь пояснює агенту, як розпочати автентифікацію і що викликати далі. Через цей самий API також опубліковано:
GET /v1/openapi.jsonGET /v1/swagger.jsonGET /v1/schema
Використовуйте schema, коли потрібен точний перелік дозволених таблиць, подань і стовпців, доступних через /v1/sql.
Підключення AI-агента
Якщо ви хочете, щоб Claude Code, Codex, OpenClaw або інший агент підключився самостійно, почніть із початкової точки входу GET /v1/ і далі виконуйте дії, які сервер поверне у відповіді.
Як проходить автентифікація
GET https://api.expense-budget-tracker.com/v1/- Прочитайте
send_codeіbootstrapUrl, які поверне сервер - Надішліть
POSTз email користувача наhttps://auth.expense-budget-tracker.com/api/agent/send-code - Отримайте
otpSessionToken - Попросіть користувача ввести 8-значний код із листа
- Надішліть
POSTзcode,otpSessionTokenіlabelнаhttps://auth.expense-budget-tracker.com/api/agent/verify-code - Отримайте довготривалий
ApiKey - Збережіть цей ключ поза пам'яттю чату
GET https://api.expense-budget-tracker.com/v1/meGET https://api.expense-budget-tracker.com/v1/workspaces- За потреби створіть робочий простір через
POST https://api.expense-budget-tracker.com/v1/workspaces POST https://api.expense-budget-tracker.com/v1/workspaces/{workspaceId}/selectGET https://api.expense-budget-tracker.com/v1/schema- Виконуйте SQL через
POST https://api.expense-budget-tracker.com/v1/sql
Заголовок автентифікації
Authorization: ApiKey <key>
Вибір робочого простору
POST /v1/workspaces/{workspaceId}/selectзберігає вибраний робочий простір за замовчуванням для цього API-ключа- після цього у викликах
/v1/sqlможна не передаватиX-Workspace-Id X-Workspace-Id: <workspaceId>усе одно підтримується, якщо потрібно тимчасово перевизначити збережений робочий простір для одного запиту- якщо в користувача є лише один робочий простір і для ключа ще не збережено вибір, API автоматично збереже й використає саме його
Покрокову інструкцію для людини дивіться в Налаштування AI-агента.
Прямі HTTP-запити з наявним ключем
Скрипти, cron-завдання, дашборди й власні застосунки можуть напряму звертатися до того самого API, якщо вже мають довготривалий ApiKey.
Автентифікація
Передавайте ключ у заголовку Authorization зі схемою 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 потрібен лише тоді, коли для ключа ще не збережено робочий простір за замовчуванням або коли ви хочете тимчасово перевизначити збережений робочий простір для конкретного запиту.
Authorization: ApiKey ebta_your_key_hereX-Workspace-Id: <workspaceId>за потреби
Коротко про ендпоїнти
GET /v1/— публічний стартовий опис APIGET /v1/openapi.jsonіGET /v1/swagger.json— опубліковані специфікації APIGET /v1/me— дані автентифікованого акаунтаGET /v1/workspaces— список робочих просторів, доступних власнику ключаPOST /v1/workspaces— створити робочий простірPOST /v1/workspaces/{workspaceId}/select— зберегти робочий простір за замовчуванням для цього ключаGET /v1/schema— перевірити, які таблиці, подання й стовпці доступні для SQLPOST /v1/sql— виконати один обмежений SQL-оператор
Правила для SQL
POST /v1/sql приймає рівно один SQL-оператор на запит.
Дозволені типи операторів:
SELECTWITHINSERTUPDATEDELETE
Заблоковані або відхилені конструкції:
- кілька операторів в одному запиті
- DDL-команди, як-от
CREATE,DROPіALTER - обгортки транзакцій, як-от
BEGIN,COMMITіROLLBACK set_config()- SQL-коментарі
- ідентифікатори в подвійних лапках
- рядки у форматі dollar-quoting
Сервер також обмежує, до яких таблиць і подань можна звертатися. Перед генерацією SQL перевіряйте /v1/schema, щоб побачити доступні об'єкти та стовпці.
Наразі доступні такі таблиці й подання:
ledger_entriesaccountsbudget_linesbudget_commentsworkspace_settingsaccount_metadataexchange_rates
Обмеження
- не більше 100 рядків у відповіді
- тайм-аут виконання оператора 30 секунд
- до 10 запитів за секунду і 10 000 запитів на день на один ключ
Безпека
- API-ключі зберігаються як SHA-256-хеші; у відкритому вигляді вони не зберігаються
- RLS забезпечує ізоляцію робочих просторів на рівні бази даних
- ключі можна будь-коли відкликати з інтерфейсу продукту
- якщо видалити учасника робочого простору, усі його ключі буде автоматично відкликано