نتایج گوگل

مصرف

اندپوینت مصرف برای شمارش پرس‌وجوها، اجراها و هدف‌ها در یک دورهٔ ماهانه، و فرق شکست با بلاک.

GET /usage می‌گوید در یک دوره چه کرده‌اید. برای داشبورد مصرف، گزارش دوره‌ای، و — مهم‌تر از همه — دیدن نرخ شکست پیش از اینکه خودش را در گزارش‌هایتان نشان دهد.

مصرف یک دوره

GET /usage?period=YYYY-MM — نیازمند usage:read.

شمارنده‌های یک دورهٔ ماهانه. پیش‌فرض دورهٔ جاری است.

نمونهٔ درخواست:

curl -s -H "X-API-Key: $KEY" \
  "https://serp.rasaad.ir/api/v1/operator/usage?period=2026-10"

نمونهٔ پاسخ:

{
  "ok": true,
  "period": "2026-10",
  "queries": 120,
  "completed": 118,
  "failed": 2,
  "blocked": 5,
  "queued": 3,
  "targets": 4,
  "runs": 115,
  "quota": null,
  "remaining": null
}

معنای هر شمارنده

فیلدیعنی چه
queriesتسک‌هایی که در این دوره ساخته شده‌اند
completedآن‌هایی که status = done دارند
failedfailed + expired
blockedاجراهایی که جزئیاتشان کپچا ذکر می‌کند
queuedqueued + claimed
targetsهدف‌های فعالی که دارید
runsاجراهای تمام‌شده‌ای که نتیجه‌شان سند شده
quota, remainingهمیشه null

چهار فرقی که نباید قاطی کنید

این چهار عدد از هم جدا هستند و قاطی کردنشان باعث گزارش غلط می‌شود:

فرقچرا مهم است
queries ≠ completedشامل کارهایی است که هنوز در صف‌اند
failed ≠ blockedتایم‌اوت و نتیجهٔ خالی، بلاک نیستند
completed ≠ runsیک اجرای کامل می‌تواند هیچ سندی نسازد
targets خارج از دوره استتعداد فعلی، نه تعداد ساخته‌شده در آن ماه
blocked فقط اجراهایی است که دلیلشان کپچا اعلام شده — نه هر شکستی. یک تایم‌اوت یا یک اجرای بدون نتیجه، بلاک نیست. اگر این دو را یکی بگیرید، مشکلی را که قابل حل نیست (کپچا) با مشکلی که قابل حل است (تایم‌اوت) اشتباه می‌گیرید.

نرخ شکست را خودتان حساب کنید

failed بر queries تقسیم می‌شود، ولی حواستان باشد صورت و مخرج چیست:

نسبتیعنی چهچه چیزی می‌گوید
completed / queriesوضعیت کلی صفآیا کارها به‌جای می‌رسند
blocked / completedنرخ کپچاآیا جستجوهای شما سالم مانده‌اند
completed / queries را تنها سنجهٔ سلامت نگیرید. اگر تقریباً همه‌چیز کپچا بخورد، وضعیت کلی خوب به نظر می‌رسد در حالی که عملاً هیچ دادهٔ قابل استفاده‌ای ندارید. عدد blocked را هم نگاه کنید — در نتایج، فلگ flags.blocked همین را در هر اجرا نشان می‌دهد.

چرا quota و remaining همیشه null هستند

این دو همیشه null هستند. نه به‌خاطر نبودن پیاده‌سازی، بلکه چون این سرویس صورت‌حساب و سقف عددی وجود ندارد.

مقدار 0 هم نگذارید. عدد 0 ادعایی دربارهٔ یک حد است که وجود ندارد — و کلاینتی که آن را می‌بیند، سخت‌افزار هشدار «رسیدیم به سقف» را روشن می‌کند. null یعنی «سقفی در کار نیست»، که صادقانه است.

تنها محدودیت عملی شما، محدودیت نرخ است، نه سقف ماهانه. سطل توکن را در کلاینت خودتان نگه دارید و برای 429 آماده باشید.

دوره‌ها را مقایسه کنید

period اجازه می‌دهد دوره‌های گذشته را هم بخوانید، پس می‌توانید روند ببینید:

for p in 2026-08 2026-09 2026-10; do
  printf '%s ' "$p"
  curl -s -H "X-API-Key: $KEY" \
    "https://serp.rasaad.ir/api/v1/operator/usage?period=$p" \
    | jq -c '{queries, completed, failed, blocked, runs}'
done
دنبال چه باشیدچه معنایی دارد
رشد blockedجستجوهای شما دارند به سمت کپچا می‌روند
اختلاف queries و runsاجراهایی که به سند نمی‌رسند
رشد targets بدون رشد runsهدف‌ها ساخته شده ولی اجرا نمی‌شوند
queued بالای ماندگاریا پردازش کند شده یا شما بیش از توان سرویس می‌خواهید
قدم بعدی:محدودیت نرخ. queued بالا معمولاً یعنی به سقف نرخ خورده‌اید — و نحوهٔ رفتار درست با 429 آنجا توضیح داده شده است.