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.
$1 testing balance · No card required.
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.
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.
SERP Scraper
/api/v1/serp/scraper
Run a Google search and get the top results scraped to clean markdown in one call.
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.
API endpoints
Pick the endpoint by the question your product needs to answer.
22 endpoints
/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.
Request & response
Request body
{"keywords": ["keyword research", "seo tools", "domain authority checker"]}
Returns
keywords[].text, keywords[].volume, keywords[].cpc, keywords[].competition, keywords[].monthly_trend
/api/v1/keywords/countries
Compare global demand across supported countries.
Request & response
Request body
{"keyword": "seo tools"}
Returns
countries
/api/v1/keywords/difficulty
Estimate organic ranking difficulty for one keyword and country.
Request & response
Request body
{"country": "us", "keyword": "seo tools"}
Returns
difficulty
/api/v1/keywords/intent
Classify a keyword as informational, commercial, transactional or navigational.
Request & response
Request body
{"keyword": "buy seo software"}
Returns
intent
/api/v1/keywords/demographics
Return demographic distributions for one keyword.
Request & response
Request body
{"keyword": "seo tools"}
Returns
data
/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.
Request & response
Request body
{"country": "us", "keyword": "keyword research"}
Returns
keyword, country, clusters[], clusters[].name, clusters[].volume, clusters[].size, clusters[].keywords[], clusters[].shared_urls[]
/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.
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
/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.
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
/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.
Request & response
Request body
{"country": "us", "keyword": "seo tools"}
Returns
keyword, country, organic[], organic[].position, people_also_ask[], related_searches[]
/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.
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
/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.
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
/api/v1/website/traffic
Get a clean monthly organic-traffic series for a domain — perfect for trend charts, competitor tracking and growth/decline detection.
Request & response
Request body
{"domain_name": "moz.com"}
Returns
domain_name, organic_monthly[]
/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.
Request & response
Request body
{"domain_name": "moz.com"}
Returns
total_volume, total_value, top_country, country_distribution, keyword_distribution, movers, top_keywords[], top_pages[]
/api/v1/website/category
Classify a domain into the Seonio category taxonomy.
Request & response
Request body
{"domain_name": "example.com"}
Returns
category
/api/v1/website/competitors
Find domains competing for the same organic keywords.
Request & response
Request body
{"domain_name": "example.com"}
Returns
competitors
/api/v1/website/similar
Classify a domain and return similar sites from that category.
Request & response
Request body
{"domain_name": "example.com", "limit": 7}
Returns
sites
/api/v1/url/stats
Authority metrics for a single URL: page authority, domain authority, spam score and the backlink footprint behind the page.
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
/api/v1/url/keywords
Return ranked keywords, volume and position for a full page URL.
Request & response
Request body
{"limit": 25, "url": "https://example.com/page"}
Returns
keywords
/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.
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
/api/v1/backlink/history
Return the stored DataForSEO backlink history series.
Request & response
Request body
{"target": "example.com"}
Returns
history
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.
$1 testing balance. No card required.
FAQ
Simple answers for developers using the API.
Pricing & Balance
API & Integration
Start free
$1 testing balance • No card required • Subscribe when ready