با کلیدِ API میتوانید از اسکریپت، CI، داشبوردِ خودتان یا یک ایجنتِ هوش مصنوعی با سازمان کار کنید. فهرستِ endpointها و نمونهها در API: endpointها است. برای Claude، ChatGPT، Claude Code، Cursor، Gemini CLI و Antigravity کلید نسازید؛ آنها بدونِ کلید وصل میشوند: اتصالِ ایجنت (MCP).
ساختِ کلید#
- SETTINGS → API KEYS (owner یا admin).
- یک نام بدهید — مثلاً
ci-deploy. - انقضا را انتخاب کنید: ۳۰، ۹۰ (پیشفرض) یا ۳۶۵ روز، یا بدونِ انقضا.
- دسترسیها (scopes) را انتخاب کنید. فقط همان چیزی را بدهید که کلید لازم دارد:
| scope | اجازه |
|---|---|
read | خواندنِ منابع، دیپلویها و لاگها. همهی کلیدها این را دارند |
deploy | دیپلوی، روشن، خاموش و ریاستارت |
write | ساختِ منبع و تغییرِ env |
admin | همهچیز، از جمله حذف |
- سقفِ ساخت در روز: هر کلید روزانه حداکثر همین تعداد منبع میسازد (پیشفرض ۵). admin فقط میتواند کمترش کند؛ بیشتر از ۵ را فقط owner تنظیم میکند. این جلوی اسکریپت یا ایجنتی را میگیرد که اشتباهی در حلقه منبع بسازد.
- کلید فقط همین یک بار نمایش داده میشود؛ همان لحظه در جای امن ذخیرهاش کنید.
کلیدهایی که پیش از اضافه شدنِ دسترسیها ساخته شدهاند فقط read دارند و منقضی نمیشوند. در فهرستِ کلیدها، آخرین زمانِ استفاده هم دیده میشود (owner آیپی را هم میبیند).
برای باطلکردن، کنارِ کلید REVOKE را بزنید؛ اسکریپتهایی که از آن استفاده میکنند فوراً قطع میشوند.
فراخوانی#
curl -s https://console.weblines.ir/api/v1/resources \
-H "Authorization: Bearer $WEBLINES_API_KEY"
پاسخِ نمونه:
{
"ok": true,
"resources": [
{
"id": "cm…",
"type": "app",
"name": "api",
"status": "running",
"catalogKey": "custom-app",
"cpuMillicores": 500,
"memoryMb": 1024,
"diskGb": 5,
"createdAt": "2026-09-30T08:00:00.000Z"
}
]
}
| فیلد | توضیح |
|---|---|
type | app، worker، database یا service |
status | همان وضعیتِ کارت با حروفِ کوچک — فهرستِ وضعیتها |
cpuMillicores | ۱۰۰۰ = یک vCPU |
خطاها#
همهی خطاها به یک شکلاند:
{ "ok": false, "error": { "code": "unauthorized", "message": "Missing, invalid or expired API key" } }
| کد HTTP | code | یعنی |
|---|---|---|
401 | unauthorized | کلید نیست، نامعتبر است، باطل شده یا منقضی شده |
400 | invalid | بدنهی درخواست نادرست است؛ message میگوید کجا |
403 | forbidden | کلید scopeِ لازم را ندارد |
403 | phone_required | سازندهی کلید شمارهی موبایلِ تأییدشده ندارد (برای ساخت) |
403 | key_owner_gone | سازندهی کلید دیگر عضوِ سازمان نیست؛ کلیدِ تازه بسازید |
409 | busy / duplicate | منبع مشغولِ کارِ دیگری است / همین Idempotency-Key قبلاً آمده |
429 | rate_limited | بیشتر از ۱۲۰ درخواست در دقیقه با یک کلید |
429 | create_limit | سقفِ ساختِ روزانهی کلید پر شده |
امنیت#
- کلید را در گیت commit نکنید؛ در secretِ CI نگه دارید.
- برای هر کاربرد یک کلیدِ جدا بسازید تا بتوانید تکتک باطلشان کنید.
- کمترین scope و کوتاهترین انقضای ممکن را انتخاب کنید.
- کارهایی که با کلید چیزی را تغییر میدهند (دیپلوی، ساخت، حذف) در SETTINGS → ACTIVITY با نامِ کلید دیده میشوند. خواندن ثبت نمیشود؛ آخرین زمانِ استفاده در فهرستِ کلیدهاست.
