Start 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.001 / 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 Rate limit exceeded (fixed-window default: 30 requests / 3 seconds).
 

Other endpoints

Explore the rest of the SEO API.

 

API Balance

Add funds once and use them anytime. Your balance never expires. New accounts start with $1 free.

Starter

$10 to spend

$ 10 one-time

 
Balance never expires.

A first top-up to kick the tires.

Most popular

Pro

$115 to spend

$ 100 one-time

+15% bonus
$100 + $15 free

The sweet spot for steady production traffic.

Scale

$1,300 to spend

$ 1,000 one-time

+30% bonus
$1,000 + $300 free

Best rate per dollar for high-volume workloads.

 

FAQ

Simple answers for developers using the API.

Pricing & Balance

Every API endpoint has a fixed price in USD. Your requests are charged directly against your API balance, so you always know what each call costs.
No. Seonio does not use abstract credits for API pricing. You add dollars to your account and spend that balance directly on API usage.
No. Your API balance never expires, so you can use it whenever your workflows need it.
Paid API requests stop until you add more balance. This keeps spend predictable and prevents unexpected charges.

API & Integration

You can create and manage API keys from your account. Use your key to authenticate requests from your app, scripts, or internal tools.
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
Our support team responds to email inquiries within 1 business day. We can help with account, billing, and API integration questions.
We enforce a global rate limit per API-Key of 10 requests per second across all endpoints to ensure system stability. If you exceed this, our servers will return an HTTP 429 Too Many Requests status code. To handle this seamlessly in production, we recommend building rate-limiting logic or an exponential backoff (briefly pausing before retrying) directly into your application code.
 
blurry shape
shape line circles

Start Researching for Free

$1 free balance included • No credit card required • Access all features