מדריך ה-API
תהליך ההתחברות של סוכנים ומסמך עזר ל-SQL API לצורך גישה תכנותית לנתונים הפיננסיים שלכם.
סקירה כללית
Expense Budget Tracker חושפת ממשק API ציבורי אחד לגישה תכנותית בכתובת:
https://api.expense-budget-tracker.com/v1/
אפשר להשתמש באותו ממשק בשתי דרכים:
- חיבור עצמי של סוכנים החל מ-
GET /v1/ - שימוש ישיר ב-HTTP עם
ApiKeyארוך-טווח קיים
כל הבקשות נאכפות באמצעות אותה אבטחה ברמת שורה (RLS) של Postgres שבה משתמשת גם אפליקציית הווב.
גילוי ומפרטים שפורסמו
התחילו כאן:
https://api.expense-budget-tracker.com/v1/
תגובת הגילוי מסבירה לסוכנים איך להתחיל את תהליך האימות ולאילו נקודות קצה לפנות אחר כך. אותו API גם מפרסם:
GET /v1/openapi.jsonGET /v1/swagger.jsonGET /v1/schema
השתמשו ב-schema כשאתם צריכים את הרשימה המדויקת של הטבלאות והעמודות שמותר לגשת אליהן דרך /v1/sql.
חיבור עצמי של סוכנים
אם אתם רוצים ש-Claude Code, Codex, OpenClaw או סוכן אחר יתחבר בעצמו, התחילו מנקודת הקצה לגילוי ופעלו לפי הפעולות שהשרת מחזיר.
זרימת האימות
GET https://api.expense-budget-tracker.com/v1/- קראו את הפעולה
send_codeואתbootstrapUrlשמוחזרים בתגובה - שלחו
POSTעם כתובת האימייל של המשתמש אל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- אחרי שסביבת העבודה נשמרת, אפשר להשמיט את
X-Workspace-Idב-/v1/sql X-Workspace-Id: <workspaceId>עדיין נתמך אם תרצו לעקוף את סביבת העבודה השמורה בבקשה אחת- אם למשתמש יש בדיוק סביבת עבודה אחת, ועדיין לא נשמרה בחירה עבור המפתח, ה-API ישמור את הבחירה הזו אוטומטית וישתמש בה
למדריך אנושי מפורט שלב אחר שלב, ראו הגדרת סוכן AI.
שימוש ישיר ב-HTTP עם מפתח קיים
סקריפטים, משימות מתוזמנות, לוחות מחוונים ואפליקציות מותאמות אישית יכולים לפנות לאותו API ישירות, כל עוד כבר יש להם ApiKey ארוך-טווח.
אימות
שלחו את המפתח בכותרת אימות מסוג 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/— מסמך גילוי ציבוריGET /v1/openapi.jsonו-GET /v1/swagger.json— מפרטי API שפורסמוGET /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
- מזהים במירכאות כפולות
- מחרוזות התחומות בדולרים, למשל
$$...$$
השרת גם מגביל אילו טבלאות אפשר לתשאל. השתמשו ב-/v1/schema כדי לבדוק אילו טבלאות ועמודות נחשפות לפני שאתם מייצרים את משפט ה-SQL.
הטבלאות שנחשפות כרגע:
ledger_entriesaccountsbudget_linesbudget_commentsworkspace_settingsaccount_metadataexchange_rates
מגבלות
- 100 שורות לכל תגובה
- מגבלת זמן של 30 שניות לכל משפט
- 10 בקשות לשנייה, 10,000 בקשות ליום לכל מפתח
אבטחה
- מפתחות API נשמרים כגיבובי SHA-256, בלי לשמור את הערך הגלוי
- מדיניות RLS אוכפת בידוד בין סביבות עבודה ברמת מסד הנתונים
- אפשר לבטל מפתחות מתוך המוצר בכל רגע
- הסרת חבר מסביבת עבודה מבטלת אוטומטית את כל המפתחות שלו