مرجع API
راهنمای راهاندازی عاملها و مرجع SQL API برای دسترسی برنامهنویسی به دادههای مالی شما.
نمای کلی
Expense Budget Tracker برای دسترسی ماشینی یک API عمومی در این نشانی ارائه میکند:
https://api.expense-budget-tracker.com/v1/
از همین API میتوان به دو روش استفاده کرد:
- راهاندازی بومیِ عامل که از
GET /v1/شروع میشود - استفادهٔ مستقیم از HTTP با
ApiKeyبلندمدتی که از قبل در اختیار دارید
همهٔ درخواستها زیر همان قواعد Row Level Security در Postgres اجرا میشوند که برنامهٔ وب هم از آنها پیروی میکند.
کشف API و مشخصات منتشرشده
نقطه شروع اینجاست:
https://api.expense-budget-tracker.com/v1/
پاسخ سند کشف API به عاملها میگوید احراز هویت را چگونه آغاز کنند و بعد از آن کدام مسیرها را فراخوانی کنند. همین API این مشخصات را هم منتشر میکند:
GET /v1/openapi.jsonGET /v1/swagger.jsonGET /v1/schema
هر زمان به فهرست دقیق رابطهها و ستونهایی نیاز داشتید که از طریق /v1/sql در دسترساند، schema را بررسی کنید.
راهاندازی بومیِ عامل
اگر میخواهید Claude Code، Codex، OpenClaw یا هر عامل دیگری خودش اتصال را برقرار کند، از نقطهٔ کشف API شروع کنید و همان اقدامهایی را دنبال کنید که سرور برمیگرداند.
فرایند احراز هویت
GET https://api.expense-budget-tracker.com/v1/- اقدام
send_codeوbootstrapUrlبازگرداندهشده را بخوانید - ایمیل کاربر را با
POSTبهhttps://auth.expense-budget-tracker.com/api/agent/send-codeبفرستید otpSessionTokenرا دریافت کنید- از کاربر بخواهید کد ۸ رقمیِ ارسالشده به ایمیل را وارد کند
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فضای کاریِ پیشفرض را برای همان کلید API ذخیره میکند- وقتی فضای کاری ذخیره شد، دیگر لازم نیست در فراخوانیهای
/v1/sqlهدرX-Workspace-Idرا بفرستید - اگر بخواهید فقط برای یک درخواست، فضای کاریِ ذخیرهشده را نادیده بگیرید، همچنان میتوانید از
X-Workspace-Id: <workspaceId>استفاده کنید - اگر کاربر دقیقاً یک فضای کاری داشته باشد و این کلید هنوز انتخاب ذخیرهشدهای نداشته باشد، API همان فضای کاری را بهطور خودکار ذخیره و استفاده میکند
برای راهنمای مرحلهبهمرحله مخصوص کاربران انسانی، راهاندازی عامل هوش مصنوعی را ببینید.
استفادهٔ مستقیم از HTTP با کلیدی که از قبل دارید
اسکریپتها، کارهای زمانبندیشده، داشبوردها و برنامههای سفارشی، اگر از قبل یک ApiKey بلندمدت داشته باشند، میتوانند همین API را مستقیماً فراخوانی کنند.
احراز هویت
کلید را در هدر احراز هویت 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-quoted
سرور فقط اجازه میدهد روی مجموعهٔ محدودی از رابطهها پرسوجو اجرا شود. پیش از تولید SQL، با /v1/schema رابطهها و ستونهای در دسترس را بررسی کنید.
رابطههای در دسترس در حال حاضر:
ledger_entriesaccountsbudget_linesbudget_commentsworkspace_settingsaccount_metadataexchange_rates
محدودیتها
- ۱۰۰ ردیف در هر پاسخ
- مهلت اجرای هر دستور ۳۰ ثانیه است
- ۱۰ درخواست در ثانیه و ۱۰٬۰۰۰ درخواست در روز برای هر کلید
امنیت
- کلیدهای API بهصورت هشهای SHA-256 ذخیره میشوند و هرگز بهصورت متن خام ذخیره نمیشوند
- RLS جداسازی فضاهای کاری را در سطح پایگاه داده اعمال میکند
- کلیدها را میتوان هر زمان از داخل محصول باطل کرد
- با حذف یک عضو از فضای کاری، همهٔ کلیدهای او بهطور خودکار باطل میشوند