serp·base API Documentation

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

FieldTypeRequiredDescriptionExample
querystringrequiredWhat to findrestaurants
coordsstringrequiredLatitude,longitude37.7749,-122.4194
zoomintoptionalMap 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.

No payment is taken when a service fails. We run the work first and settle afterwards.

Errors

CodeMeaningAction
402Payment requiredSign the payment and retry with X-PAYMENT
400Bad parametersCheck required fields above
422Data could not be producedNothing charged — retry later
429Rate limitedBack off and retry
503Tool temporarily unavailableRetry later — nothing charged

Related tools

Google organic results · Yandex organic results · Google images · Yandex images · News · Shopping

Pay-per-request data APIs. Built for agents and developers.