Shopping
Product offers and prices from marketplaces and shops.
$1.00 / 1,000
POST /v1/query
x402 · USDC on Base
Overview
Single endpoint, predictable JSON. Send POST /v1/query with the
tool field set to shop.
curl -X POST https://api.serp-base.com/v1/query \
-H "Content-Type: application/json" \
-d '{"tool": "shop", "query": "mechanical keyboard"}'
Parameters
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
query | string | required | Product query | mechanical keyboard |
depth | int | optional | Offers count | 10, 50 |
geo | int|string | optional | Region | us |
Regions optional
Pass either a numeric code or a name. Common examples:
| Region | Code |
|---|---|
| United States | us / 2840 |
| New York | 84 / new york |
| London | 1000000 / london |
| Berlin | 96 / berlin |
| Paris | 225 / paris |
Code examples
cURL
curl -X POST https://api.serp-base.com/v1/query \
-H "Content-Type: application/json" \
-d '{"tool": "shop", "query": "mechanical keyboard", "depth": 10}'
Python
import requests
r = requests.post("https://api.serp-base.com/v1/query", json={
"tool": "shop",
"query": "mechanical keyboard",
"depth": 10
})
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": "shop",
"query": "mechanical keyboard",
"depth": 10
})
});
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": "shop", "query": "mechanical keyboard", "depth": 10}',
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
Response
{
"ok": true,
"data": {
"results": [
{
"title": "...",
"price": "99.99",
"currency": "USD",
"shop": "..."
}
]
}
}
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.00 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 · Suggestions