Try It Free
SEO API · SERP Scraper

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.

POST /api/v1/serp/scraper $0.001 / request + $0.002 / scraped URL
Get API Key

Use your Seonio API key instantly.

curl
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 countries
in 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

sample mode

        
 

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.

$0.001 / keyword

Keyword Research

/api/v1/keywords/global

Volume, CPC, competition and a 12-month trend for up to 100 keywords in one call.

View API docs
$0.01 / request

Keyword Countries

/api/v1/keywords/countries

Top five countries by keyword volume.

View API docs
$0.005 / request

Keyword Difficulty

/api/v1/keywords/difficulty

Country-specific ranking difficulty.

View API docs
$0.001 / request

Keyword Intent

/api/v1/keywords/intent

Search-intent classification.

View API docs
$0.01 / request

Keyword Demographics

/api/v1/keywords/demographics

Age and gender demand distribution.

View API docs
$0.25 / request

Keyword Clustering

/api/v1/keywords/clustering

Group a keyword's universe into topic clusters by SERP overlap.

View API docs
$0.02 / request

Keyword Suggestions

/api/v1/keywords/suggestions

Up to 100 related keyword ideas — each with full metrics — from one seed keyword.

View API docs
$0.01 / request + $0.001 / started 10 keywords

Keyword Metrics by Country

/api/v1/keywords/country

Localized metrics for up to 1000 keywords in one country.

View API docs
$0.001 / request

SERP

/api/v1/serp/country

Google organic results, People Also Ask and related searches for a keyword and country.

View API docs
$0.002 / request

Scraper

/api/v1/scraper

Scrape a supported URL to clean, LLM-ready markdown in one call.

View API docs
$0.01 / request

Website Traffic

/api/v1/website/traffic

Monthly organic traffic history for any domain.

View API docs
$0.02 / request

Website Ranking

/api/v1/website/ranking

A domain's full ranking footprint: countries, distribution, movers, top keywords and pages.

View API docs
$0.001 / request

Website Category

/api/v1/website/category

Taxonomy classification for a domain.

View API docs
$0.01 / request

Website Competitors

/api/v1/website/competitors

Ordered organic competitors.

View API docs
$0.001 / request

Similar Websites

/api/v1/website/similar

Traffic-ranked sites in the same category.

View API docs
$0.002 / request

URL Stats

/api/v1/url/stats

Page- and domain-level authority metrics for a specific URL.

View API docs
$0.02 / request

URL Keywords

/api/v1/url/keywords

Top organic keywords for one URL.

View API docs
$0.002 / request

Website Stats

/api/v1/website/stats

Domain-level authority metrics for a bare domain.

View API docs
$0.02 / request

Backlink History

/api/v1/backlink/history

Historical backlink counts for a domain.

View API docs
$0.02 / request

Backlink Table

/api/v1/backlink/table

Detailed backlinks for a domain or URL.

View API docs
$0.005 / request

SEO Page Checker

/api/v1/audit/page-checker

On-page SEO report and response timing.

View API docs
 

FAQ

Simple answers for developers using the API.

Pricing & Balance

Every endpoint has a published USD price or formula. Requests draw from the same included and Extra Usage balance as website and MCP actions.
Testing balance is spent first. Active subscribers then use included usage and Extra Usage expiring soonest. Every amount is displayed in dollars.
New Extra Usage is valid for one year. Included usage is replaced at each subscription-month boundary based on the active tier.

API & Integration

API actions require a verified account with a testing balance or active subscription balance. Create and manage API keys from your account, then send the key in the X-API-Key header.
Yes. Your dashboard shows your API usage and remaining balance, so you can track costs while building and running automated workflows.
We currently cover 50 markets. We add new countries regularly.
Algeria Argentina Australia Austria Bangladesh Belgium Brazil Bulgaria Canada Czechia Denmark Egypt Finland France Germany Ghana Greece Hungary India Indonesia Ireland Italy Japan Kenya Malaysia Mexico Morocco Netherlands New Zealand Nigeria Norway Pakistan Philippines Poland Portugal Romania Saudi Arabia Serbia Singapore South Africa Spain Sri Lanka Sweden Switzerland Thailand Turkiye United Arab Emirates United Kingdom United States Vietnam
Email support is available for account, billing, and API integration questions at [email protected].
The account-wide limit is 20 requests per second across website, REST API, and MCP data actions. Requests above it return HTTP 429.
 
blurry shape
shape line circles

Start free

$1 testing balance • No card required • Subscribe when ready