Query search engines programmatically and get parsed JSON back: organic results, rank, title, link, snippet, related searches. No CAPTCHA farms, no HTML parsing, one consistent schema across engines.
import requests
resp = requests.post(
"https://app.quantumproxies.io/api/v1/scraper/serp",
headers={"Authorization": "Bearer qp_live_YOUR_KEY"},
json={"query": "best wireless headphones", "engine": "google", "country": "us", "num": 10},
)
for r in resp.json()["organic"]:
print(r["rank"], r["title"], r["link"])Response shape:
{
"general": { "engine": "google", "query": "best wireless headphones" },
"organic": [
{ "rank": 1, "title": "The 8 Best Wireless Headphones of 2026",
"link": "https://...", "description": "After testing 42 models..." }
],
"related": ["best wireless headphones under 100"]
}country controls the exit geo and the localized result set — "country": "de" returns what a user in Germany sees, which is routinely a different top-10 than the US one:
json={"query": "kaffeemaschine test", "engine": "google", "country": "de", "num": 10}curl -X POST https://app.quantumproxies.io/api/v1/scraper/serp \
-H "Authorization: Bearer qp_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "web scraping api", "engine": "google", "country": "us", "num": 10}'Google serves plain HTTP clients a JS challenge, soft-throttles datacenter IPs after a handful of requests, and changes markup constantly. A SERP API absorbs all of that — you get JSON or a refund on failed pages.
Full demo comparing US vs DE top-10 side by side: serp.py.
Powered by the QuantumProxies SERP API — Google, Bing & DuckDuckGo, priced per search. Docs at quantumproxies.io/serp-api/docs, keys at app.quantumproxies.io/api-keys.