Start Free
SEO API · Keyword Clustering

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.

POST /api/v1/keywords/clustering $0.25 / request
Get API Key

Use your Seonio API key instantly.

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

sample mode

        
 

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.

 

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