Weblines Cloudمستندات

کلیدِ API

ساختِ کلیدِ API سازمان با دسترسی، انقضا و سقفِ ساخت، و فراخوانیِ API برای فهرستِ منابع و وضعیتشان.

آخرین به‌روزرسانی:

با کلیدِ API می‌توانید از اسکریپت، CI، داشبوردِ خودتان یا یک ایجنتِ هوش مصنوعی با سازمان کار کنید. فهرستِ endpointها و نمونه‌ها در API: endpointها است. برای Claude، ChatGPT، Claude Code، Cursor، Gemini CLI و Antigravity کلید نسازید؛ آن‌ها بدونِ کلید وصل می‌شوند: اتصالِ ایجنت (MCP).

ساختِ کلید#

  1. SETTINGS → API KEYS (owner یا admin).
  2. یک نام بدهید — مثلاً ci-deploy.
  3. انقضا را انتخاب کنید: ۳۰، ۹۰ (پیش‌فرض) یا ۳۶۵ روز، یا بدونِ انقضا.
  4. دسترسی‌ها (scopes) را انتخاب کنید. فقط همان چیزی را بدهید که کلید لازم دارد:
scopeاجازه
readخواندنِ منابع، دیپلوی‌ها و لاگ‌ها. همه‌ی کلیدها این را دارند
deployدیپلوی، روشن، خاموش و ری‌استارت
writeساختِ منبع و تغییرِ env
adminهمه‌چیز، از جمله حذف
  1. سقفِ ساخت در روز: هر کلید روزانه حداکثر همین تعداد منبع می‌سازد (پیش‌فرض ۵). admin فقط می‌تواند کمترش کند؛ بیشتر از ۵ را فقط owner تنظیم می‌کند. این جلوی اسکریپت یا ایجنتی را می‌گیرد که اشتباهی در حلقه منبع بسازد.
  2. کلید فقط همین یک بار نمایش داده می‌شود؛ همان لحظه در جای امن ذخیره‌اش کنید.

کلیدهایی که پیش از اضافه شدنِ دسترسی‌ها ساخته شده‌اند فقط read دارند و منقضی نمی‌شوند. در فهرستِ کلیدها، آخرین زمانِ استفاده هم دیده می‌شود (owner آی‌پی را هم می‌بیند).

برای باطل‌کردن، کنارِ کلید REVOKE را بزنید؛ اسکریپت‌هایی که از آن استفاده می‌کنند فوراً قطع می‌شوند.

فراخوانی#

bash
curl -s https://console.weblines.ir/api/v1/resources \
  -H "Authorization: Bearer $WEBLINES_API_KEY"

پاسخِ نمونه:

json
{
  "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"
    }
  ]
}
فیلدتوضیح
typeapp، worker، database یا service
statusهمان وضعیتِ کارت با حروفِ کوچک — فهرستِ وضعیت‌ها
cpuMillicores۱۰۰۰ = یک vCPU

خطاها#

همه‌ی خطاها به یک شکل‌اند:

json
{ "ok": false, "error": { "code": "unauthorized", "message": "Missing, invalid or expired API key" } }
کد HTTPcodeیعنی
401unauthorizedکلید نیست، نامعتبر است، باطل شده یا منقضی شده
400invalidبدنه‌ی درخواست نادرست است؛ message می‌گوید کجا
403forbiddenکلید scopeِ لازم را ندارد
403phone_requiredسازنده‌ی کلید شماره‌ی موبایلِ تأییدشده ندارد (برای ساخت)
403key_owner_goneسازنده‌ی کلید دیگر عضوِ سازمان نیست؛ کلیدِ تازه بسازید
409busy / duplicateمنبع مشغولِ کارِ دیگری است / همین Idempotency-Key قبلاً آمده
429rate_limitedبیشتر از ۱۲۰ درخواست در دقیقه با یک کلید
429create_limitسقفِ ساختِ روزانه‌ی کلید پر شده

امنیت#

  • کلید را در گیت commit نکنید؛ در secretِ CI نگه دارید.
  • برای هر کاربرد یک کلیدِ جدا بسازید تا بتوانید تک‌تک باطلشان کنید.
  • کمترین scope و کوتاه‌ترین انقضای ممکن را انتخاب کنید.
  • کارهایی که با کلید چیزی را تغییر می‌دهند (دیپلوی، ساخت، حذف) در SETTINGS → ACTIVITY با نامِ کلید دیده می‌شوند. خواندن ثبت نمی‌شود؛ آخرین زمانِ استفاده در فهرستِ کلیدهاست.

جوابت را پیدا نکردی؟

تیکت از پنل یا تماس در ساعاتِ کاری: ۰۲۱-۸۸۷۱۷۴۵۱

ثبتِ تیکت