الاستخدام
نقطتا نهاية لرؤية ما استهلكه متجرك وللتنبؤ بحاجة الشهر القادم.
GET /v1/usage
الشهر الميلادي الحالي مجموعًا حسب نوع نقطة النهاية.
المصادقة: مفتاح منصة بصلاحية usage:read.
الاستجابة 200
{
"data": {
"period": "2026-04",
"tier": "pro_plus",
"usage": {
"request": { "total": 31, "billable": 0 },
"signup": { "total": 3, "billable": 2 },
"event": { "total": 0, "billable": 0 },
"webhook": { "total": 0, "billable": 0 }
},
"limits": {
"requests_per_month": 5000000,
"signups_per_month": 50000,
"webhooks_per_month": 500000,
"requests_per_minute": 1200
}
}
}
مرجع الحقول
| الحقل | المعنى |
|---|---|
period | دائمًا YYYY-MM. يُعاد تعيينه أول كل شهر في 00:00 UTC. |
tier | خطتك الحالية. |
usage.<group>.total | كل الطلبات في تلك المجموعة، بما فيها المكررة/المرفوضة. |
usage.<group>.billable | الطلبات المحسوبة فعلًا (مثلًا الاشتراكات المكررة لا تُحاسَب). |
limits | الحدود الفعلية — tier_limits يطغى عليها أي تجاوز خاص بالمتجر. -1 تعني غير محدود. |
مجموعات نقاط النهاية
| المجموعة | ماذا يُحسب |
|---|---|
request | كل نداء واجهة تم توثيقه بنجاح. |
signup | كل نداء /v1/signups. المكررات تُحسب في total وليس في billable. |
event | كل نداء /v1/events. |
webhook | كل محاولة تسليم webhook صادر (نجاح أو 4xx؛ كل إعادة 5xx تُحسب). |
GET /v1/usage/history
تجميعات ساعية على مدى زمني — مفيد للرسوم البيانية وتحليل الاتجاهات.
المصادقة: مفتاح منصة بصلاحية usage:read.
معاملات الاستعلام
| المعامل | النوع | الافتراضي | ملاحظات |
|---|---|---|---|
from | ISO date | قبل 7 أيام | شامل |
to | ISO date | الآن | غير شامل |
السقف الأقصى للمدى: 90 يومًا.
الطلب
curl 'https://api.dzbuild.app/v1/usage/history?from=2026-04-01&to=2026-05-01' \
-H "Authorization: Bearer $DZ_KEY"
الاستجابة 200
{
"data": {
"from": "2026-04-01T00:00:00+00:00",
"to": "2026-05-01T00:00:00+00:00",
"rows": [
{ "period_hour": "2026-04-30 19:00:00", "endpoint_group": "request", "count": 26, "billable_count": 0 },
{ "period_hour": "2026-04-30 20:00:00", "endpoint_group": "request", "count": 5, "billable_count": 0 },
{ "period_hour": "2026-04-30 20:00:00", "endpoint_group": "signup", "count": 3, "billable_count": 2 }
]
}
}
الصفوف مرتبة تصاعديًا حسب period_hour. الساعات ذات الاستخدام الصفري في أي مجموعة تُحذف (sparse).
نصائح للرسم
- التجميع اليومي: اجمع الصفوف حسب
LEFT(period_hour, 10)(بادئة التاريخ). - مساحة مكدّسة: جمّع حسب
endpoint_groupثم الساعة على المحور الأفقي. - معدل استنزاف الحصة: اقسم
signup.billable_countالتراكمي على نسبة الشهر المنقضية، وتوقّع نهاية الشهر.
مثال Python بسيط:
import collections, datetime, requests, os
r = requests.get('https://api.dzbuild.app/v1/usage/history',
params={'from': '2026-04-01', 'to': '2026-05-01'},
headers={'Authorization': f"Bearer {os.environ['DZ_KEY']}"})
rows = r.json()['data']['rows']
by_day = collections.defaultdict(lambda: collections.Counter())
for row in rows:
day = row['period_hour'][:10]
by_day[day][row['endpoint_group']] += row['count']
for day, counts in sorted(by_day.items()):
print(day, dict(counts))