Porting guide
SERP Async API
From callbacks to polling, step by step.
Coming from a callback-based async SERP API? Map each callback step to a polling loop: create a task, store task_id, poll with backoff. No callback URL is accepted.
import time, requests
job = requests.post(f"{API}/v1/serp/google/organic/tasks", headers=H,
json={"q": "vpn review"}).json()["job"]
delay = 2
while True:
j = requests.get(f"{API}/v1/serp/tasks/{job['id']}", headers=H).json()["job"]
if j["status"] in ("completed", "failed"): break
time.sleep(delay); delay = min(delay * 2, 60)Callback → poll mapping
Register a callback URL
Polling flow here: Nothing to register
Submit a job with the callback URL
Polling flow here: POST /v1/serp/google/{vertical}/tasks; store job.id
Wait for the push
Polling flow here: GET /v1/serp/tasks/{task_id} on a timer
Verify the push signature
Polling flow here: Not needed; you pull with your Bearer key
Parse the pushed body
Polling flow here: Read job.result when status is completed
Backoff poller
- Start with a short delay and double it each round, with a cap.
- Stop when status is completed or failed.
- On failed, read error.retryable: if true, create a new task; if false, log error.code and error.message.
- On 429 from GET, back off further; no poll-rate number is published.
Launch status for this page
Check engine availability before choosing an endpoint. Google also supports News, Images and asynchronous tasks.
- GoogleGoogle is callable today with a Bearer API key.
SERP searches are charged per successful search at a display rate of 2 Credits per search; failed searches are not charged. Polling task status is free. The current rate is on Pricing.
What this is not
- No callback URL or HMAC signing.
- No webhook.
- Google only.
Frequently asked questions
Can I pass a callback URL?
No. There is no callback or HMAC signing.
Is GET poll rate-limited?
The platform-wide 429 applies; no number is published.
What does create return?
202 with a SerpJobResponse.
Port your async flow
Get an API key and swap callbacks for a poller.