Maps & local results
Businesses and ratings by coordinates — local pack data.
$1.36 / 1,000
POST /v1/query
x402 · USDC on Base
Overview
Single endpoint, predictable JSON. Send POST /v1/query with the
tool field set to maps.
curl -X POST https://api.serp-base.com/v1/query \
-H "Content-Type: application/json" \
-d '{"tool": "maps", "query": "restaurants"}'
Parameters
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
query | string | required | What to find | restaurants |
coords | string | required | Latitude,longitude | 37.7749,-122.4194 |
zoom | int | optional | Map zoom, 1..17 (default 12) | 14 |
Code examples
cURL
curl -X POST https://api.serp-base.com/v1/query \
-H "Content-Type: application/json" \
-d '{"tool": "maps", "query": "restaurants", "coords": "37.7749,-122.4194", "zoom": 14}'
Python
import requests
r = requests.post("https://api.serp-base.com/v1/query", json={
"tool": "maps",
"query": "restaurants",
"coords": "37.7749,-122.4194",
"zoom": 14
})
print(r.json()["data"])
JavaScript
const r = await fetch('https://api.serp-base.com/v1/query', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"tool": "maps",
"query": "restaurants",
"coords": "37.7749,-122.4194",
"zoom": 14
})
});
const { data } = await r.json();
PHP
$ch = curl_init('https://api.serp-base.com/v1/query');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"tool": "maps", "query": "restaurants", "coords": "37.7749,-122.4194", "zoom": 14}',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
Response
{
"ok": true,
"data": {
"results": [
{
"name": "...",
"rating": 4.7,
"address": "...",
"coords": "..."
}
]
}
}
Payment
Pay per request with USDC on Base via the x402 protocol. Gas is paid by the facilitator — you only need USDC in your wallet.
- Network: Base mainnet (
eip155:8453) - Asset: USDC
- Price: $1.36 per 1,000 requests — charged only when data is returned
- Test: Base Sepolia (
eip155:84532) with free USDC from Circle faucet
No payment is taken when a service fails. We run the work first and settle afterwards.
Errors
| Code | Meaning | Action |
|---|---|---|
402 | Payment required | Sign the payment and retry with X-PAYMENT |
400 | Bad parameters | Check required fields above |
422 | Data could not be produced | Nothing charged — retry later |
429 | Rate limited | Back off and retry |
503 | Tool temporarily unavailable | Retry later — nothing charged |
Related tools
Google organic results · Yandex organic results · Google images · Yandex images · News · Shopping