gsc_quota
Check Request-Indexing and URL Inspection quota budgets per property, showing free/spendable slots, next-free times, and which budget is exhausted.
Instructions
Report Request-Indexing and URL Inspection budget for every property the store currently knows about.
Local-only: reads the store and the config file, makes no Search Console API call, and needs no OAuth token — safe to call at any time, including before signing in. An empty store (nothing synced yet via gsc_list_sites or gsc_check_status) returns [].
One entry per property: {"property", "submission", "inspection", "binding"}.
THESE NUMBERS ARE AN ESTIMATE, NOT A MEASUREMENT, and the estimate is
biased in one direction. The store counts only the slots THIS TOOL
spent: a URL submitted by hand in Search Console, from a phone, or on
another machine never reaches it. So used is a lower bound and free
an upper bound — a property reported with headroom can still be refused
by Google, and that is expected behaviour rather than a defect. Do not
tell a user "you have N submissions left" without that caveat, and do
not conclude anything about Google's own rules from these counts.
counts and free_is_upper_bound restate this in the payload so it
survives being read without the docstring.
"submission" is the Request-Indexing slot budget: {"free", "spendable_free", "used", "slots", "daily_reserve", "next_free_at", "counts", "free_is_upper_bound", "last_refusal_at"}.
last_refusal_at is the last time Google actually said Quota Exceeded
for this property (ISO-8601, or None) — the only figure in the block
that came from Google rather than from local arithmetic.
free is the RAW free-slot count and ignores daily_reserve.
spendable_free is computed against the RESERVE-ADJUSTED ceiling —
max(0, (slots - daily_reserve) - used) — NOT simply free minus
daily_reserve: that arithmetic breaks at the clamp (slots=11,
daily_reserve=2, used=10 gives free=1, but spendable_free is 0, not
-1). ACT ON spendable_free, NOT free: daily_reserve exists to hold
slots back from every tool, and a caller that submits up to free
instead will be refused once spendable_free runs out. next_free_at
is an ISO-8601 string, or None when a slot is free right now — it is
already computed against the reserve-adjusted ceiling too, so it can
report a wait even while free (the raw count) is nonzero.
"inspection" is the URL Inspection API budget: {"daily_free", "minute_free", "daily_limit", "minute_limit"} (2000/day, 600/minute,
per property — the same quota gsc_check_status spends).
"binding" names whichever budget is exhausted for that property right
now — "submission" (the Request-Indexing ceiling, reserve applied),
"refused" (Google said Quota Exceeded recently and a short cooldown is
running), "inspection_daily", or "inspection_minute" — or None when
every budget has headroom. On "refused", spendable_free may be
nonzero: the local estimate is being overruled by what Google actually
answered, and next_free_at is when to ask again rather than a moment
a slot is known to exist.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |