Keyword Clustering
Group a keyword's universe into topic clusters by SERP overlap.
Give a seed keyword and get back topic clusters: we expand it into its suggestion universe, fetch the live SERP for each, and group keywords that share ranking pages. Ideal for content planning, silo/hub-and-spoke architecture and pillar pages.
/api/v1/keywords/clustering
$0.25 / request
Use your Seonio API key instantly.
curl -X POST https://seonio.com/api/v1/keywords/clustering \
-H "Content-Type: application/json" \
-H "X-API-Key: $SEONIO_API_KEY" \
-d '{"country": "us", "keyword": "keyword research"}'
Sample response
{
"clusters": [
{
"keywords": [
{
"text": "keyword research",
"volume": 550000
},
{
"text": "keyword research tool",
"volume": 90500
},
{
"text": "free keyword research",
"volume": 33100
}
],
"name": "keyword research",
"shared_urls": [
"https://ahrefs.com/keyword-generator",
"https://moz.com/explorer"
],
"size": 3,
"volume": 673000
},
{
"keywords": [
{
"text": "long tail keywords",
"volume": 27100
},
{
"text": "long tail keyword research",
"volume": 14100
}
],
"name": "long tail keywords",
"shared_urls": [
"https://backlinko.com/long-tail-keywords"
],
"size": 2,
"volume": 41200
}
],
"country": "us",
"keyword": "keyword research"
}
Request and response
The full contract for /api/v1/keywords/clustering — what to send and what comes back.
Request body
keyword
string
required
The seed keyword to cluster, e.g. "keyword research".
country
string
optional
Two-letter ISO country code for the SERPs (default "us").
Response fields
keyword |
string |
The seed keyword that was clustered. |
country |
string |
The country the SERPs were fetched for. 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
|
clusters[] |
object[] |
Topic clusters, largest by volume first. |
clusters[].name |
string |
The cluster's head keyword (its highest-volume member). |
clusters[].volume |
integer |
Combined monthly search volume of the cluster. |
clusters[].size |
integer |
Number of keywords in the cluster. |
clusters[].keywords[] |
object[] |
The member keywords, each as { text, volume }. |
clusters[].shared_urls[] |
string[] |
Pages that rank across the cluster's members (the SERP overlap that grouped them). |
Code examples
Copy, paste, swap in your API key.
curl -X POST https://seonio.com/api/v1/keywords/clustering \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"country": "us", "keyword": "keyword research"}'
Playground
Run a real /api/v1/keywords/clustering 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/keywords/clustering
What developers build with it
Common ways Keyword Clustering ends up in production.
Building topic clusters and content silos from one seed keyword.
Planning pillar pages and their supporting articles.
Mapping a keyword universe to information architecture.
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 Suggestions
/api/v1/keywords/suggestions
Keyword Metrics by Country
/api/v1/keywords/country
SERP
/api/v1/serp/country
SERP Scraper
/api/v1/serp/scraper
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