Try It Free
SEO API for developers

Build SEO data into your product.

Query keyword metrics, organic traffic, rankings, and authority data through a simple JSON API.

Simple JSON endpoints with published dollar prices and formulas—no unit conversion.

Start free

$1 testing balance · No card required.

curl
curl -X POST https://seonio.com/api/v1/seo-stats \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $SEONIO_API_KEY" \
  -d '{"target":"moz.com"}'

Response

{
  "status": 200,
  "ok": true,
  "data": {
    "target": "moz.com",
    "seo_metrics": {
      "page_authority": 75,
      "domain_authority": 91,
      "spam_score": 1,
      "linking_domains": 46982,
      "linking_pages": 11740244,
      "nofollow_pages": 5718502
    }
  }
}
 

22 SEO tools, one API

Scan the full catalog, then open any tool's documentation and playground.

$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.001 / request + $0.002 / scraped URL

SERP Scraper

/api/v1/serp/scraper

Run a Google search and get the top results scraped to clean markdown in one call.

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
 

API endpoints

Pick the endpoint by the question your product needs to answer.

22 endpoints

POST keywords $0.001 / keyword

/api/v1/keywords/global

Send a list of keywords and get back the core metrics most SEO and PPC tools are built on. Ideal for keyword explorers, content planners and bulk research jobs.

View docs & playground
Request & response

Request body

{"keywords": ["keyword research", "seo tools", "domain authority checker"]}

Returns

keywords[].text, keywords[].volume, keywords[].cpc, keywords[].competition, keywords[].monthly_trend

POST keywords $0.01 / request

/api/v1/keywords/countries

Compare global demand across supported countries.

View docs & playground
Request & response

Request body

{"keyword": "seo tools"}

Returns

countries

POST keywords $0.005 / request

/api/v1/keywords/difficulty

Estimate organic ranking difficulty for one keyword and country.

View docs & playground
Request & response

Request body

{"country": "us", "keyword": "seo tools"}

Returns

difficulty

POST keywords $0.001 / request

/api/v1/keywords/intent

Classify a keyword as informational, commercial, transactional or navigational.

View docs & playground
Request & response

Request body

{"keyword": "buy seo software"}

Returns

intent

POST keywords $0.01 / request

/api/v1/keywords/demographics

Return demographic distributions for one keyword.

View docs & playground
Request & response

Request body

{"keyword": "seo tools"}

Returns

data

POST keywords $0.25 / request

/api/v1/keywords/clustering

Give a seed keyword and get back topic clusters: we expand it into its suggestion universe, fetch the Google SERP used for each, and group keywords that share ranking pages. Ideal for content planning, silo/hub-and-spoke architecture and pillar pages.

View docs & playground
Request & response

Request body

{"country": "us", "keyword": "keyword research"}

Returns

keyword, country, clusters[], clusters[].name, clusters[].volume, clusters[].size, clusters[].keywords[], clusters[].shared_urls[]

POST keywords $0.02 / request

/api/v1/keywords/suggestions

Give a seed keyword and get back up to 100 related suggestions, each with search volume, CPC range, competition, difficulty, intent and a 12-month trend. Ideal for keyword expansion, content ideation and building topic lists.

View docs & playground
Request & response

Request body

{"country": "us", "keyword": "keyword research"}

Returns

keyword, country, keywords[].text, keywords[].volume, keywords[].cpc, keywords[].low_cpc, keywords[].high_cpc, keywords[].competition, keywords[].difficulty, keywords[].intent, keywords[].monthly_trend

POST keywords $0.01 / request + $0.001 / started 10 keywords

/api/v1/keywords/country

Send a list of keywords and a country and get back each keyword's search volume, CPC range, competition, difficulty, intent and 12-month trend for that specific market. The language is derived from the country automatically.

View docs & playground
Request & response

Request body

{"country": "de", "keywords": ["seo tools", "keyword research"]}

Returns

country, keywords[].text, keywords[].volume, keywords[].cpc, keywords[].low_cpc, keywords[].high_cpc, keywords[].competition, keywords[].difficulty, keywords[].intent, keywords[].monthly_trend

POST serp $0.001 / request

/api/v1/serp/country

Send a keyword and country code and get back the Google results page: ranked organic listings with title, link and snippet, plus People Also Ask and related searches. Ideal for rank tracking, SERP analysis and competitor monitoring.

View docs & playground
Request & response

Request body

{"country": "us", "keyword": "seo tools"}

Returns

keyword, country, organic[], organic[].position, people_also_ask[], related_searches[]

POST serp $0.001 / request + $0.002 / scraped URL

/api/v1/serp/scraper

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.

View docs & playground
Request & response

Request body

{"count": 2, "country": "us", "keyword": "seo tools"}

Returns

keyword, country, results[], results[].url, results[].title, results[].meta_description, results[].length, results[].markdown

POST scraper $0.002 / request

/api/v1/scraper

Send a supported URL and get available page content back as clean markdown (or raw HTML), with available title and meta description. Results are cached and served from storage while fresh, so repeat lookups are fast. Ideal for content research, briefs and feeding pages into LLM pipelines.

View docs & playground
Request & response

Request body

{"format": "md", "max_age_days": 7, "url": "https://moz.com/blog"}

Returns

url, title, meta_description, length, markdown, html, scraped_at

POST website $0.01 / request

/api/v1/website/traffic

Get a clean monthly organic-traffic series for a domain — perfect for trend charts, competitor tracking and growth/decline detection.

View docs & playground
Request & response

Request body

{"domain_name": "moz.com"}

Returns

domain_name, organic_monthly[]

POST website $0.02 / request

/api/v1/website/ranking

The richest endpoint: total ranking volume and value, country split, keyword position buckets, movement counts, plus the top keywords and pages driving the domain.

View docs & playground
Request & response

Request body

{"domain_name": "moz.com"}

Returns

total_volume, total_value, top_country, country_distribution, keyword_distribution, movers, top_keywords[], top_pages[]

POST website $0.001 / request

/api/v1/website/category

Classify a domain into the Seonio category taxonomy.

View docs & playground
Request & response

Request body

{"domain_name": "example.com"}

Returns

category

POST website $0.01 / request

/api/v1/website/competitors

Find domains competing for the same organic keywords.

View docs & playground
Request & response

Request body

{"domain_name": "example.com"}

Returns

competitors

POST website $0.001 / request

/api/v1/website/similar

Classify a domain and return similar sites from that category.

View docs & playground
Request & response

Request body

{"domain_name": "example.com", "limit": 7}

Returns

sites

POST url $0.002 / request

/api/v1/url/stats

Authority metrics for a single URL: page authority, domain authority, spam score and the backlink footprint behind the page.

View docs & playground
Request & response

Request body

{"target": "https://moz.com/blog"}

Returns

target, seo_metrics, seo_metrics.page_authority, seo_metrics.domain_authority, seo_metrics.spam_score, seo_metrics.linking_domains, seo_metrics.linking_pages, seo_metrics.nofollow_pages

POST url $0.02 / request

/api/v1/url/keywords

Return ranked keywords, volume and position for a full page URL.

View docs & playground
Request & response

Request body

{"limit": 25, "url": "https://example.com/page"}

Returns

keywords

POST website $0.002 / request

/api/v1/website/stats

Authority metrics for a whole domain: domain authority, spam score and the site-wide backlink footprint. Same response shape as URL Stats.

View docs & playground
Request & response

Request body

{"target": "moz.com"}

Returns

target, seo_metrics, seo_metrics.page_authority, seo_metrics.domain_authority, seo_metrics.spam_score, seo_metrics.linking_domains, seo_metrics.linking_pages, seo_metrics.nofollow_pages

POST audit $0.005 / request

/api/v1/audit/page-checker

Fetch a page and return structured SEO findings and timing.

View docs & playground
Request & response

Request body

{"url": "https://example.com"}

Returns

report, timing

 

Integration basics

A simple API shape built for predictable production workflows.

01. Send JSON

Every endpoint accepts a POST request with Content-Type: Content-Type: application/json.

02. Handle status codes

Expect 401 for missing or invalid keys, 402 for insufficient balance, 422 for invalid request bodies, and 429 for rate limits.

03. Cache repeat lookups

SEO data changes over time. Cache successful responses when your app may request the same data again.

 

Start free, subscribe when ready

Get $1 to test Seonio with no card. Paid plans start at $15 monthly or $120 yearly.

Start free

$1 testing balance. No card required.

 

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