SERP Scraper
Run a Google search and get the top results scraped to clean markdown in one call.
Combines a SERP lookup with a content scrape: send a keyword and country and get back the top organic results rendered as markdown, with title, meta description and content length per page. One call replaces a SERP request plus a scraper pipeline — ideal for content research, briefs and competitive analysis.
/api/v1/serp/scraper
$0.001 / request + $0.002 / scraped URL
Use your Seonio API key instantly.
curl -X POST https://seonio.com/api/v1/serp/scraper \
-H "Content-Type: application/json" \
-H "X-API-Key: $SEONIO_API_KEY" \
-d '{"count": 2, "country": "us", "keyword": "seo tools"}'
Sample response
{
"country": "us",
"keyword": "seo tools",
"results": [
{
"length": 18342,
"markdown": "# Free SEO Tools\n\nMoz\u0027s free SEO tools help you with link building, keyword research ...",
"meta_description": "Try the best free SEO tools for link building and analysis, keyword research ...",
"title": "Free SEO Tools by Moz | Try Premium SEO Checkers for Free",
"url": "https://moz.com/free-seo-tools"
},
{
"length": null,
"markdown": null,
"meta_description": null,
"title": null,
"url": "https://www.semrush.com/seo/"
}
]
}
Request and response
The full contract for /api/v1/serp/scraper — what to send and what comes back.
Request body
keyword
string
required
The search query to look up.
country
string
optional
Two-letter country code for the search locale, e.g. "us" (the default).
count
integer
optional
How many top organic results to scrape (1–10, default 1). If the SERP returns fewer organic URLs, the available maximum is scraped. Billed per URL actually scraped, plus the SERP lookup.
Response fields
keyword |
string |
The keyword that was searched. |
country |
string |
The country locale used for the search. Supported countriesin
India
vn
Vietnam
us
United States
gb
United Kingdom
de
Germany
pk
Pakistan
bd
Bangladesh
ca
Canada
tr
Turkiye
id
Indonesia
fr
France
es
Spain
nl
Netherlands
it
Italy
au
Australia
ae
United Arab Emirates
ph
Philippines
ch
Switzerland
jp
Japan
ng
Nigeria
eg
Egypt
th
Thailand
za
South Africa
mx
Mexico
sg
Singapore
ke
Kenya
at
Austria
ma
Morocco
pl
Poland
dk
Denmark
my
Malaysia
sa
Saudi Arabia
lk
Sri Lanka
ro
Romania
gh
Ghana
fi
Finland
se
Sweden
be
Belgium
br
Brazil
ie
Ireland
bg
Bulgaria
gr
Greece
nz
New Zealand
rs
Serbia
dz
Algeria
no
Norway
hu
Hungary
ar
Argentina
pt
Portugal
cz
Czechia
|
results[] |
object[] |
One entry per scraped organic result, top to bottom. Only `url` is guaranteed; the other fields are null when the page returned no scrapable content. |
results[].url |
string |
The organic result URL that was scraped. |
results[].title |
string | null |
Page title, or null if no content was scraped. |
results[].meta_description |
string | null |
Meta description, or null if no content was scraped. |
results[].length |
integer | null |
Length of the markdown body in characters, or null if no content was scraped. |
results[].markdown |
string | null |
The page content rendered as markdown, or null if no content was scraped. |
Code examples
Copy, paste, swap in your API key.
curl -X POST https://seonio.com/api/v1/serp/scraper \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"count": 2, "country": "us", "keyword": "seo tools"}'
Playground
Run a real /api/v1/serp/scraper request. No key? We show the real sample result so you can still inspect the shape.
Leave the API key empty to load the built-in sample response.
Request
POST /api/v1/serp/scraper
What developers build with it
Common ways SERP Scraper ends up in production.
Content briefs built from what already ranks for a keyword.
Feeding top-ranking pages into LLM and analysis pipelines as markdown.
Competitive content audits without running your own scraper.
Status codes
The same predictable contract on every endpoint.
200 |
Success. The lookup completed and was charged, even if the response is empty. |
401 |
Missing or unknown API key. |
402 |
Not enough balance on the account. |
422 |
Invalid request body (wrong shape or types). |
429 |
Account rate limit exceeded (20 requests per second). |
Other endpoints
Explore the rest of the SEO API.
Keyword Research
/api/v1/keywords/global
Volume, CPC, competition and a 12-month trend for up to 100 keywords in one call.
Keyword Countries
/api/v1/keywords/countries
Top five countries by keyword volume.
Keyword Difficulty
/api/v1/keywords/difficulty
Country-specific ranking difficulty.
Keyword Intent
/api/v1/keywords/intent
Search-intent classification.
Keyword Demographics
/api/v1/keywords/demographics
Age and gender demand distribution.
Keyword Clustering
/api/v1/keywords/clustering
Group a keyword's universe into topic clusters by SERP overlap.
Keyword Suggestions
/api/v1/keywords/suggestions
Up to 100 related keyword ideas — each with full metrics — from one seed keyword.
Keyword Metrics by Country
/api/v1/keywords/country
Localized metrics for up to 1000 keywords in one country.
SERP
/api/v1/serp/country
Google organic results, People Also Ask and related searches for a keyword and country.
Scraper
/api/v1/scraper
Scrape a supported URL to clean, LLM-ready markdown in one call.
Website Traffic
/api/v1/website/traffic
Monthly organic traffic history for any domain.
Website Ranking
/api/v1/website/ranking
A domain's full ranking footprint: countries, distribution, movers, top keywords and pages.
Website Category
/api/v1/website/category
Taxonomy classification for a domain.
Website Competitors
/api/v1/website/competitors
Ordered organic competitors.
Similar Websites
/api/v1/website/similar
Traffic-ranked sites in the same category.
URL Stats
/api/v1/url/stats
Page- and domain-level authority metrics for a specific URL.
URL Keywords
/api/v1/url/keywords
Top organic keywords for one URL.
Website Stats
/api/v1/website/stats
Domain-level authority metrics for a bare domain.
Backlink History
/api/v1/backlink/history
Historical backlink counts for a domain.
Backlink Table
/api/v1/backlink/table
Detailed backlinks for a domain or URL.
SEO Page Checker
/api/v1/audit/page-checker
On-page SEO report and response timing.
FAQ
Simple answers for developers using the API.
Pricing & Balance
API & Integration
Start free
$1 testing balance • No card required • Subscribe when ready