August 2026 · Quota watch series
How to get alerted before your SerpAPI quota runs out
SerpAPI meters by searches per month, and when the meter hits zero your searches start failing while everything downstream keeps running: rank trackers report stale positions, SEO dashboards quietly stop updating, and nobody finds out until someone asks why the numbers have not moved in four days. The fix is boring and reliable: read your own usage before the wall, not after. Here is the manual route with SerpAPI’s own account endpoint, then the automated route. Both work today.
The manual route: SerpAPI’s account endpoint
SerpAPI exposes your live usage on a single authenticated endpoint. No SDK needed:
The response is JSON, and the four fields that matter are plan_searches_left, this_month_usage, searches_per_month and extra_credits. Percentage used is this_month_usage divided by searches_per_month.
One trap worth knowing about: several older snippets floating around read a field called total_searches_used from this endpoint. That field does not exist in the account response. In loosely typed scripts the read comes back undefined, the math coerces it to zero, and your monitor reports 0% used forever. We know because our own first probe made exactly this mistake, and it passed every test that did not compare against the real dashboard. If you write your own checker, assert that the fields you read are actually numbers before trusting the percentage.
A complete manual monitor is a scheduled job (cron, GitHub Actions, anything that runs daily) that fetches the endpoint, computes the percentage, and posts to Slack or email when it crosses a threshold. Twenty lines of code, and 80% is a good default threshold: late enough to not nag, early enough to upgrade the plan or shed load before the wall.
One refinement worth stealing whichever route you take: alert on your budget line, not just the plan wall. If your plan carries 10,000 searches but your product only budgets 4,000 a month for this pipeline, the incident that matters happens at 4,000. Track both numbers.
The automated route: one JSON block
Datasource Pulse ships with a pre-wired SerpAPI connector that does the above, with the field pitfalls already handled. The whole check is this block:
Each run validates the key, reads the live quota, and returns a verdict with stable strings, escalating in three steps. Crossing the warning threshold (80% by default, tunable) fires a quota warning alert while state stays healthy: a heads-up, not an incident. Crossing 100% of your quotaSoftCap, the budget line from the previous section, flips state to warning, with the vendor-account percentage always reported alongside your own. And when the meter truly hits zero (plan searches plus any extra credits), state goes to failing with quota_exhausted. A revoked key surfaces separately as dead_token, so you can tell “we ran out” from “someone rotated the key” without reading logs.
Each check costs $0.02, billed per run through Apify with no subscription. Checking one key daily is about $0.61 a month. To get the verdict somewhere useful, the daily key and quota watchdog template for n8n emails you on anything unhealthy, and the Zapier and Make routes do the same with webhooks.
Which route should you take?
Honest answer: if you have one SerpAPI key, a place to run cron, and a Slack webhook, the manual script is a fine tool and you do not need us. The automated route earns its keep when the list grows: multiple keys across vendors, each with its own account endpoint, response shape, and dead-signal quirks, plus recovery notices when things come back and one alert instead of one per run while a problem persists. That is the part that stops being twenty lines.
Either way, do the thing most teams skip: trip the alarm once on purpose. Set the threshold below your current usage, watch the alert arrive, then set it back. An alert you have never seen fire is a guess, not a monitor.
Datasource Pulse watches the data sources your product depends on: credentials, quotas, and scraper output quality. One alert when something degrades, one notice when it recovers. SerpAPI is one of 35+ pre-wired vendors, and any endpoint the list is missing is one generic_http block away.