MOBILE SERP TRACKER
Real Google mobile search results from 4G/5G carrier IPs. $0.003/query. Pay with USDC.
$0.003 per query
13 data types
USDC Base + Solana
LIVE
WHAT IT DOES
Returns real Google mobile search results as structured JSON. Every query is executed through a real 4G/5G mobile carrier IP, so you get the same results a real mobile user would see — including mobile-specific features like AI Overviews, app carousels, and mobile ad placements.
| Feature | Description |
| Real Mobile IPs | Queries run through 4G/5G carrier connections, not datacenter proxies |
| 13 Data Types | Organic, ads, PAA, featured snippets, AI Overviews, map packs, knowledge panels, related searches, and more |
| Country + Language | Target any country and language with 2-letter ISO codes |
| Location Targeting | Optional local search targeting (e.g., "Austin TX") |
| Pagination | Navigate through result pages with start offset |
| No Account | x402 payment — no registration, no API key, no subscription |
PRICING
| Plan | Price | Payment | Note |
| Per Query (x402) | $0.003 | USDC on Base or Solana | No minimum, pay as you go |
Competitor Comparison
| Provider | Price/Query | Account Required | Real Mobile IPs | AI Overview Data |
| Proxies.sx SERP | $0.003 | No | Yes (4G/5G) | Yes |
| SerpApi | $0.01-$0.025 | Yes + API key | No | Limited |
| DataForSEO | $0.003-$0.01 | Yes + API key | No | Partial |
| Bright Data SERP | $0.003-$0.005 | Yes + contract | Optional (extra $) | No |
| ScraperAPI | $0.005-$0.01 | Yes + API key | No | No |
Proxies.sx advantage: real mobile carrier IPs by default (others use datacenter), includes AI Overviews + PAA, no account needed, pay per query with USDC.
API REFERENCE
Endpoint
GET https://api.proxies.sx/v1/x402/serp
Parameters
| Parameter | Type | Required | Description |
query | string | Yes | Search query (e.g., "best coffee shops") |
country | string | No | 2-letter country code (default: "us") |
language | string | No | 2-letter language code (default: "en") |
location | string | No | Local search location (e.g., "Austin TX") |
start | number | No | Pagination offset (default: 0, increments of 10) |
Authentication
No API key needed. Uses x402 protocol — HTTP 402 Payment Required flow:
# Step 1: Request without payment → get 402 with price + wallet
curl "https://api.proxies.sx/v1/x402/serp?query=best+coffee+shops&country=us"
# Step 2: Send $0.003 USDC to the recipient wallet on Solana or Base
# Step 3: Retry with payment signature
curl "https://api.proxies.sx/v1/x402/serp?query=best+coffee+shops&country=us" \
-H "Payment-Signature: <solana_or_base_tx_hash>"
Payment Networks
| Network | Settlement | Recipient Wallet | USDC Contract |
| Solana | ~400ms | 6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Base | ~2s | 0xF8cD900794245fc36CBE65be9afc23CDF5103042 | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 |
DATA FIELDS
Response Structure
| Field | Type | Description |
query | string | The search query used |
country | string | Country code used |
language | string | Language code used |
location | string | null | Location used |
totalResults | string | null | Approximate total result count |
organic | array | Organic search results |
ads | array | Paid ad results |
peopleAlsoAsk | array | People Also Ask questions |
featuredSnippet | object | null | Featured snippet if present |
aiOverview | object | null | Google AI Overview if present |
mapPack | array | Local map pack results |
knowledgePanel | object | null | Knowledge panel data |
relatedSearches | string[] | Related search suggestions |
proxy | object | Proxy info (country, type) |
payment | object | Payment confirmation |
Organic Result Fields
| Field | Type | Description |
position | number | Ranking position (1-based) |
title | string | Page title |
url | string | Page URL |
displayUrl | string | Display URL (domain + path) |
snippet | string | Description snippet |
sitelinks | array | Sitelinks (title, url) |
date | string | null | Published date if shown |
cached | boolean | Whether cached version is available |
Ad Result Fields
| Field | Type | Description |
position | number | Ad position |
title | string | Ad headline |
url | string | Landing page URL |
displayUrl | string | Display URL |
description | string | Ad description |
isTop | boolean | Whether ad is above organic results |
Map Pack Result Fields
| Field | Type | Description |
name | string | Business name |
address | string | null | Address |
rating | number | null | Google rating |
reviewCount | number | null | Review count |
category | string | null | Business category |
phone | string | null | Phone number |
EXAMPLES
curl
# Basic search
curl "https://api.proxies.sx/v1/x402/serp?query=best+coffee+shops&country=us"
# With location targeting
curl "https://api.proxies.sx/v1/x402/serp?query=plumbers&country=us&location=Austin+TX"
# German results in German
curl "https://api.proxies.sx/v1/x402/serp?query=beste+restaurants&country=de&language=de"
# Page 2 results
curl "https://api.proxies.sx/v1/x402/serp?query=web+scraping+tools&start=10"
Python
import requests
# Step 1: Get payment requirements
r = requests.get("https://api.proxies.sx/v1/x402/serp", params={
"query": "best coffee shops",
"country": "us",
"language": "en"
})
if r.status_code == 402:
payment_info = r.json()
# payment_info contains: price, networks, recipient wallet
print(f"Price: ${payment_info['price']['amount']} USDC")
print(f"Solana wallet: {payment_info['networks'][0]['recipient']}")
# Step 2: Send USDC payment on Solana or Base
# tx_hash = send_usdc(...)
# Step 3: Retry with payment
r = requests.get("https://api.proxies.sx/v1/x402/serp", params={
"query": "best coffee shops",
"country": "us",
}, headers={
"Payment-Signature": tx_hash
})
data = r.json()
for result in data["organic"]:
print(f"#{result['position']}: {result['title']}")
print(f" {result['url']}")
print(f" {result['snippet'][:100]}...")
Node.js
// Step 1: Get 402 payment requirements
const res = await fetch(
"https://api.proxies.sx/v1/x402/serp?query=best+coffee+shops&country=us"
);
if (res.status === 402) {
const paymentInfo = await res.json();
console.log(`Price: $${paymentInfo.price.amount} USDC`);
// Step 2: Send USDC payment
// const txHash = await sendUSDC(...)
// Step 3: Retry with payment signature
const result = await fetch(
"https://api.proxies.sx/v1/x402/serp?query=best+coffee+shops&country=us",
{ headers: { "Payment-Signature": txHash } }
);
const data = await result.json();
// Access all SERP features
console.log(`Organic results: ${data.organic.length}`);
console.log(`Ads: ${data.ads.length}`);
console.log(`PAA: ${data.peopleAlsoAsk.length}`);
if (data.aiOverview) console.log("AI Overview present");
if (data.featuredSnippet) console.log("Featured snippet present");
if (data.mapPack.length) console.log(`Map pack: ${data.mapPack.length} results`);
}
USE CASES
| Use Case | How | Cost |
| SEO Rank Tracking | Track keyword positions daily across countries | $0.003/keyword/day |
| Competitor Monitoring | Monitor competitor SERP features (snippets, PAA) | $0.003/query |
| AI Overview Research | Track which queries trigger Google AI Overviews | $0.003/query |
| Ad Intelligence | Monitor competitor ad placements and copy | $0.003/query |
| Local SEO | Track map pack rankings for local businesses | $0.003/query |
| Content Gap Analysis | Find PAA questions to create content for | $0.003/query |
At $0.003/query, tracking 1,000 keywords daily costs $3/day ($90/month) — vs $100-500/month for SerpApi or SEMrush.
WHY MOBILE SERP
| Factor | Desktop SERP | Mobile SERP (this API) |
| Search volume | 28% of searches | 72% of searches |
| Layout | Traditional 10 blue links | Cards, carousels, app installs |
| AI Overviews | Sometimes present | More frequently shown on mobile |
| Map Pack | 3 results, sidebar | Prominent, full-width display |
| Ads | Top + sidebar | Top + bottom, different format |
| CAPTCHA rate | High for datacenter IPs | Near-zero for carrier IPs |
Mobile-first indexing means Google treats mobile as the primary version. Tracking mobile results gives you the most accurate picture of what users see.
FAQ
How fast is it?
Typical response time is 5-15 seconds. The query goes through a real mobile proxy, hits Google, parses the HTML, and returns structured JSON.
What if Google serves a CAPTCHA?
CAPTCHAs are rare on real carrier IPs (under 5% of requests). If one occurs, the API returns a 502 with a hint to retry. Real mobile IPs have much better CAPTCHA rates than datacenter or residential proxies.
Can I scrape thousands of queries?
Yes. There's no rate limit on the API itself — each request costs $0.003. For high volume, use Solana for faster settlement (~400ms vs ~2s on Base).
Is pagination supported?
Yes. Use the start parameter with increments of 10 (0 = page 1, 10 = page 2, 20 = page 3, etc.).
What countries work best?
All countries work. The proxy rotates through real carrier IPs. US, UK, Germany, France, Spain, and Poland have the highest device counts.
LINKS