Skip to content

SERP API overview

The native SERP API returns real-time Google Search results as clean JSON. It runs live (synchronous) or async (task-based) over the same engine.

MethodPathPurpose
POST/v1/serp/searchLive SERP — one request, one result, inline
POST/v1/serp/tasksEnqueue an async task
GET/v1/serp/tasksList your completed (ready) tasks
GET/v1/serp/tasks/{id}Fetch a task’s result
GET/v1/serp/trackRank-over-time for a tracked target
GET/v1/locationsSupported locations
GET/v1/locations/{country}Locations for one ISO country
GET/v1/languagesSupported languages

All endpoints require authentication.

POST /v1/serp/search and POST /v1/serp/tasks share the same request body:

FieldTypeRequiredDefaultNotes
keywordstringyes1–700 chars. The search query.
locationobjectyesOne of code, name, or coordinate.
languageobjectyesOne of code or name.
devicedesktop | mobilenodesktop
oswindows | macos | android | iosnowindows
depthintegerno100Results to return, 10–700.
formatstandard | advanced | htmlnoadvancedResponse detail.
search_engine_domainstringnogoogle.come.g. google.co.uk.
urlstringnoPre-built Google URL; overrides keyword/location/device.
stop_on_matcharraynoStop crawling once a target is matched.
trackobjectnoRank tracking{ target, label? }.
webhookobjectnoAsync webhooks (tasks only).
prioritystandard | prioritynostandardpriority jumps the queue.
tagstringnoFree-form label echoed back.
{ "code": 2840 } // by numeric code (recommended)
{ "name": "London,England,United Kingdom" } // by canonical name
{ "coordinate": "51.5074,-0.1278,10" } // lat,lng,radius(km)
{ "code": "en" } // ISO code (recommended)
{ "name": "English" } // human name

Look up valid values via /v1/locations and /v1/languages.

Every successful native response uses the same envelope:

{
"request_id": "req_…",
"status": "ok",
"meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" },
"data": { /* endpoint-specific payload */ }
}
FieldMeaning
request_idCorrelation id — echo to support.
statusok (data present) or accepted (async task still processing).
meta.timeServer processing time (seconds).
meta.costAmount drawn from your balance (USD).
dataThe result — shape depends on the endpoint and format.

Errors use a different shape — see Errors.