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.001 / 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 |
Rate limit exceeded (fixed-window default: 30 requests / 3 seconds). |
Other endpoints
Explore the rest of the SEO API.
Keyword Research
/api/v1/keywords/global
Keyword Clustering
/api/v1/keywords/clustering
Keyword Suggestions
/api/v1/keywords/suggestions
Keyword Metrics by Country
/api/v1/keywords/country
SERP
/api/v1/serp/country
Scraper
/api/v1/scraper
Website Traffic
/api/v1/website/traffic
Website Ranking
/api/v1/website/ranking
URL Stats
/api/v1/url/stats
Website Stats
/api/v1/website/stats
Website Backlinks
/api/v1/backlink/website
URL Backlinks
/api/v1/backlink/url
API Balance
Add funds once and use them anytime. Your balance never expires. New accounts start with $1 free.
Starter
$10 to spend
Balance never expires.
A first top-up to kick the tires.
Pro
$115 to spend
+15% bonus
$100 + $15 free
The sweet spot for steady production traffic.
Scale
$1,300 to spend
+30% bonus
$1,000 + $300 free
Best rate per dollar for high-volume workloads.
FAQ
Simple answers for developers using the API.
Pricing & Balance
API & Integration
Start Researching for Free
$1 free balance included • No credit card required • Access all features