مرجع واجهة برمجة التطبيقات
مرجع تهيئة الوكلاء وواجهة SQL للوصول البرمجي إلى بياناتك المالية.
نظرة عامة
يوفّر Expense Budget Tracker واجهة برمجة تطبيقات عامة واحدة للوصول البرمجي عبر:
https://api.expense-budget-tracker.com/v1/
ويمكن استخدام هذه الواجهة بطريقتين:
- تهيئة مخصّصة للوكلاء تبدأ من
GET /v1/ - استخدام مباشر عبر HTTP باستخدام
ApiKeyطويل الأمد موجود مسبقًا
وتخضع جميع الطلبات لسياسات Postgres نفسها الخاصة بالأمان على مستوى الصفوف (Row Level Security) تمامًا كما في تطبيق الويب.
الاكتشاف والمواصفات المنشورة
ابدأ من هنا:
https://api.expense-budget-tracker.com/v1/
توضّح استجابة الاكتشاف للوكلاء كيفية بدء المصادقة وما الطلبات التالية التي ينبغي إرسالها. كما تنشر الواجهة نفسها ما يلي:
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 أرقام الذي وصله عبر البريد الإلكتروني
- أرسل
codeوotpSessionTokenوlabelفي طلبPOSTإلى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مساحة العمل الافتراضية لهذا المفتاح - بعد حفظ مساحة العمل، يمكن استدعاء
/v1/sqlمن دونX-Workspace-Id - يظل
X-Workspace-Id: <workspaceId>مدعومًا إذا أردت تجاوز مساحة العمل المحفوظة لطلب واحد - إذا لم يكن للمفتاح اختيار محفوظ بعد وكان لدى المستخدم مساحة عمل واحدة فقط، فستحفظ الواجهة تلك المساحة تلقائيًا وتستخدمها
للاطلاع على دليل إرشادي خطوة بخطوة للمستخدم، راجع إعداد وكيل الذكاء الاصطناعي.
الاستخدام المباشر عبر HTTP بمفتاح موجود مسبقًا
يمكن للبرامج النصية، ومهام cron، ولوحات المعلومات، والتطبيقات المخصّصة استدعاء الواجهة نفسها مباشرةً إذا كانت تملك مسبقًا 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— مواصفات الواجهة المنشورة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
- المعرّفات المحاطة بعلامتَي اقتباس
- السلاسل النصية بصيغة
dollar-quoted
ويفرض الخادم أيضًا قيودًا على العلاقات التي يمكن الاستعلام عنها. استخدم /v1/schema لفحص العلاقات والأعمدة المتاحة قبل توليد SQL.
العلاقات المتاحة حاليًا:
ledger_entriesaccountsbudget_linesbudget_commentsworkspace_settingsaccount_metadataexchange_rates
الحدود
- 100 صف لكل استجابة
- مهلة تنفيذ قدرها 30 ثانية لكل عبارة
- 10 طلبات في الثانية، و10,000 طلب في اليوم لكل مفتاح
الأمان
- تُخزَّن مفاتيح API على هيئة تجزئات SHA-256، ولا تُحفَظ القيمة الأصلية للمفتاح مطلقًا
- تفرض سياسات الأمان على مستوى الصفوف (
RLS) عزل مساحات العمل على مستوى قاعدة البيانات - يمكن إبطال المفاتيح من داخل المنتج في أي وقت
- تؤدي إزالة عضو من مساحة العمل إلى إبطال جميع مفاتيحه تلقائيًا