Use the Batch API to submit multiple search queries in a single request. Each query runs independently and returns structured results just like the standard SERP API.

This is useful when you need to check multiple keywords at once — for rank tracking, content monitoring, or search comparison tools.

Submit a Batch API Job

Each object in queries uses the same parameters as the single-query SERP API.

curl --request POST \
  --url 'https://api.hasdata.com/scrape/batch/google/serp' \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <your-api-key>' \
  --data '{
      {
        "queries": [
          { "q": "best vpn 2025", "gl": "us", "hl": "en" },
          { "q": "cheap flights to berlin", "gl": "de", "hl": "de" },
          { "q": "ai content detection tools", "gl": "us", "hl": "en" }
        ]
      }
  }'

Response

{
  "jobId": "9a35f32e-4f9c-4d49-9c6e-7c4de4a091e0",
  "status": "ok"
}

This means the batch job was accepted and is being processed asynchronously.

Get Job Status & Results

To check the status of your batch job:

curl --request GET \
  --url 'https://api.hasdata.com/scrape/batch/google/serp/9a35f32e-4f9c-4d49-9c6e-7c4de4a091e0' \
  --header 'x-api-key: <your-api-key>'

To retrieve results once ready (supports pagination):

curl --request GET \
  --url 'https://api.hasdata.com/scrape/batch/google/serp/9a35f32e-4f9c-4d49-9c6e-7c4de4a091e0/results?page=1&limit=100' \
  --header 'x-api-key: <your-api-key>'

Each result matches the format of a regular Google SERP API response, except it’s returned as part of an array.

Notes

  • Maximum batch size: 10,000 queries
  • Failed queries do not consume credits
  • All outputs are returned as an array of Google SERP API-style results