serpapi_google_serp_organic $0.01875 per call
Google organic search results for a query. Live Google organic results for a keyword — position, title, URL, snippet, by location (SerpApi · Google Keyword Data)
For AI agents: call serpapi_google_serp_organic
POST https://toll402.dev/v1/p/serpapi.google.serp.organic
{
"engine": "google",
"q": "coffee",
"gl": "us",
"hl": "en",
"start": 0
}Answers 402 with x402 payment requirements; pay with any x402 client (@x402/fetch, x402 for Python, toll402-client, toll402-mcp) or send a prepaid-credits key as x-toll402-key (https://toll402.dev/credits). Paid per call via x402 (USDC on Base) or with a prepaid-credits key (x-toll402-key, card at /credits); charged only on success. Start at /llms.txt or connect the MCP server:
npx -y toll402-mcp · remote https://toll402.dev/mcp.Input schema
{
"type": "object",
"properties": {
"engine": {
"type": "string",
"description": "the engine selector — must be this literal string",
"examples": [
"google"
]
},
"q": {
"type": "string",
"description": "the search query; Google search operators work here",
"examples": [
"coffee"
]
},
"location": {
"type": "string",
"description": "city-level origin of the search, e.g. \"Austin, Texas, United States\". Mutually exclusive with uule and with lat/lon"
},
"uule": {
"type": "string",
"description": "Google's encoded location, as an alternative to `location`"
},
"lat": {
"type": "number",
"description": "latitude; requires lon and a matching gl"
},
"lon": {
"type": "number",
"description": "longitude; requires lat"
},
"radius": {
"type": "integer",
"description": "metres around lat/lon; 1-199 on desktop, 1-1000 on mobile"
},
"google_domain": {
"type": "string",
"description": "default google.com; e.g. google.co.uk"
},
"gl": {
"type": "string",
"description": "country code for the search, e.g. us, uk",
"examples": [
"us"
]
},
"hl": {
"type": "string",
"description": "interface language code, e.g. en",
"examples": [
"en"
]
},
"cr": {
"type": "string",
"description": "restrict to countries, e.g. countryUS; multiple joined by |"
},
"lr": {
"type": "string",
"description": "restrict to languages, e.g. lang_en; multiple joined by |"
},
"device": {
"type": "string",
"description": "desktop (default) | tablet | mobile"
},
"start": {
"type": "integer",
"description": "result offset for pagination — 0, 10, 20 … This is how you page; see the note about `num`",
"examples": [
0
]
},
"tbm": {
"type": "string",
"description": "switches the Google vertical: isch (images), vid, nws, shop, lcl, pts"
},
"tbs": {
"type": "string",
"description": "advanced Google filters, e.g. date range"
},
"safe": {
"type": "string",
"description": "active | off"
},
"nfpr": {
"type": "string",
"description": "1 disables Google's auto-correction to a different spelling"
},
"filter": {
"type": "string",
"description": "0 turns off Google's similar-results and omitted-results filters"
}
},
"additionalProperties": true,
"required": [
"engine",
"q"
],
"description": "Answers arrive in `organic_results`; the same response may also carry `knowledge_graph`, `local_results`, `related_questions`, `related_searches` and `pagination`. `num` IS NOT DOCUMENTED for this engine — Google dropped it upstream and SerpApi's google parameter list does not include it. Page with `start`, not `num`; sending `num` is not a supported way to widen a page."
}
MCP
{"mcpServers":{"toll402":{"command":"npx","args":["-y","toll402-mcp"],"env":{"TOLL402_WALLET_KEY":"0x..."}}}}