Skip to content
SpideyData

Keyword lists

Batch SERP API

Batching, done client-side.

Google: live · not GA

Run a keyword list through Google SERP tasks: fan out task creation, poll in rounds, collect results. There is no server-side batch object, no queue priority tiers, and every task costs the same.

Python · fan out a keyword file
keywords = open("keywords.txt").read().split()
tasks = {kw: requests.post(f"{API}/v1/serp/google/organic/tasks", headers={**H,
         "Idempotency-Key": f"batch7-{i}"}, json={"q": kw, "country": "GB"}).json()["job"]["id"]
         for i, kw in enumerate(keywords)}
# collect: for each id → GET /v1/serp/tasks/{id}; keep job.result when status=="completed"

Fan-out / collect pattern

  1. Split the keyword list into chunks.
  2. Create one task per keyword with an Idempotency-Key such as batch7-{i}, so a re-run of the same chunk does not create duplicates.
  3. Store keyword → task_id.
  4. Collect in rounds: GET each pending id, keep job.result for completed, note failed ones.
  5. Repeat rounds until every id has a final status.

No pricing tiers

There is no standard or priority queue. Every completed search costs 2 Credits (display rate), whether sync or task.

Launch status for this page

Check engine availability before choosing an endpoint. Google also supports News, Images and asynchronous tasks.

  • GoogleLiveGoogle 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 batch object or batch ID.
  • No completion-time promise.
  • No webhook.
  • Non-Google engines are sync only.

Frequently asked questions

Is there a batch endpoint?

No. Create tasks one by one.

Priority queue?

No queue tiers.

Non-Google keywords?

Call the sync endpoint for each query.

Run your keyword list

Get an API key and fan it out as tasks.