Scrape Google search results at scale — every ranked listing on the real SERP as structured JSON: position, title, link, snippet, sitelinks, and page number. Sample desktop and mobile separately, target any country or city, and paginate up to 10 pages in a single call.
4.8 · 42 reviewsThe result.organicResults array preserves true SERP order — including page number when you paginate — so you can compute rank deltas without any DOM parsing.
from cloro import Cloro
client = Cloro(api_key="sk_live_your_api_key_here")
response = client.monitor.google(
query="best crm for startups",
country="US",
device="desktop",
pages=2,
)
print(response["result"]["organicResults"]){
"success": true,
"result": {
"organicResults": [
{
"position": 1,
"title": "The 10 Best CRMs for Startups in 2026",
"link": "https://example.com/best-crm-startups",
"displayedLink": "https://example.com › blog › best-crm-startups",
"snippet": "We tested 24 CRMs on pricing, onboarding speed, and integrations. Here are the ten that actually fit early-stage teams...",
"page": 1,
"sitelinks": {
"inline": [
{
"title": "Pricing comparison",
"link": "https://example.com/best-crm-startups#pricing"
}
]
}
},
{
"position": 11,
"title": "CRM Buying Guide for Seed-Stage Companies",
"link": "https://example.org/crm-buying-guide",
"displayedLink": "https://example.org › guides",
"snippet": "A practical framework for picking a CRM before you have a sales team...",
"page": 2
}
]
}
}Field names match the OpenAPI spec exactly — what you see here is what deserializes.
| Field | Type | Description |
|---|---|---|
| position | number | Position in search results (1-indexed), preserving true SERP order. |
| title | string | Title of the search result. |
| link | string | URL of the search result. |
| displayedLink | string | Formatted URL as displayed in search results. |
| snippet | string | Text snippet describing the page content. |
| date | string | Publication date, when Google renders one next to the snippet. |
| page | number | SERP page this result appeared on (1-indexed) — set when you request multiple pages. |
| sitelinks.inline | object[] | Inline sitelinks under the main result, each with title and link. |
Pick a plan that fits your volume. Price per credit drops as you scale.
| Plan | Price / mo | Credits | Per 1k | Concurrency | Seats | Support |
|---|---|---|---|---|---|---|
| Free | $0 | 500 | — | 1 | 1 | Community |
| Lite | $30 | 37,500 | $0.80 | 10 | Unlimited | |
| Hobby | $100 | 250,000 | $0.40 | 20 | Unlimited | |
| Starter | $250 | 650,000 | $0.39 | 50 | Unlimited | |
| GrowthPopular | $500 | 1,350,000 | $0.37 | 75 | Unlimited | Priority email |
| Business | $1,000 | 2,800,000 | $0.36 | 100 | Unlimited | Priority email |
| Enterprise 2K | $2,000 | 5,871,025 | $0.34 | 135 | Unlimited | Slack |
| Enterprise 3K | $3,000 | 9,306,606 | $0.32 | 175 | Unlimited | Slack |
| Enterprise 4K | $4,000 | 12,756,261 | $0.31 | 215 | Unlimited | Slack |
| Enterprise 5K | $5,000 | 16,391,783 | $0.31 | 255 | Unlimited | Slack |
| Enterprise | $5,000+ | Increased concurrency, overages on credits and credit discounts for annual contracts.Know more | ||||
Credit cost per request varies by provider. The figures below are for async/batch requests; sync requests add a +2 credit surcharge.
ChatGPT full response includes query fan-out, ads, and shopping data. Google News uses the same pricing as Google Search.
Positions are 1-indexed and continue across pages — result 11 is the first listing of page 2 with `page: 2` set. Pass `pages: N` (1–10) to fetch several SERP pages in one call; each additional page adds +2 credits.
Frequently, yes. Google ranks and lays out mobile SERPs differently, and ads/PAA placement pushes organic results around. Pass `device: "mobile"` or `"desktop"` to sample each separately — rank trackers typically run both.
Yes. Use `country` for ISO country targeting, or `location` with Google's canonical location name (e.g. "Austin,Texas,United States") / a pre-encoded `uule` for city-level sampling. Local intent queries re-rank heavily by city.
Yes. The response carries sponsored ads, People Also Ask, related searches, knowledge graph, and shopping results alongside organic — one call, one credit price.
Custom Search queries a curated index that diverges from the live SERP, caps at 100 free queries/day, and strips position context (no ads, no SERP features around your listings). For rank tracking you need the rendered google.com order, which is what this endpoint returns.
A base Google SERP request is 3 credits, and credits run from $0.40 per 1,000 on Hobby down to $0.31 at the largest self-serve tier — organic results are always included, no add-on flags. See pricing for the full credit table.