Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: SE Ranking Data Keyword Research API
description: SEO data API for keywords, domains, backlinks, AI Search, SERP, and site audit.
version: 1.0.0
contact:
name: SE Ranking API Support
url: https://seranking.com/api
servers:
- url: https://api.seranking.com
description: Production
security:
- apikeyAuth: []
tags:
- name: Keyword Research
description: This collection of endpoints is designed for comprehensive keyword analysis and discovery.
paths:
/v1/keywords/export:
post:
operationId: createKeywordsExport
tags:
- Keyword Research
summary: Export Keywords Metrics
description: Retrieves bulk performance metrics like search volume, CPC, and difficulty for a submitted list of up to 5,000 keywords.
requestBody:
content:
multipart/form-data:
schema:
type: object
required:
- keywords[]
properties:
keywords[]:
type: array
items:
type: string
description: List of keywords (max 5,000).
maxItems: 5000
sort:
type: string
enum:
- volume
- cpc
- difficulty
- competition
- history_trend
sort_order:
type: string
enum:
- asc
- desc
cols:
type: string
description: Comma-separated list of columns to include.
parameters:
- name: apikey
in: query
schema:
type: string
example: '{{secret_key_data}}'
- name: source
in: query
required: true
schema:
type: string
example: us
responses:
'200':
description: Successful response
content:
application/json: {}
/v1/keywords/similar:
get:
operationId: getKeywordsSimilar
tags:
- Keyword Research
summary: Get similar keywords
description: Discovers semantically similar keywords, including synonyms and close variations, for a given seed term.
parameters:
- name: apikey
in: query
schema:
type: string
example: '{{secret_key_data}}'
- name: source
in: query
schema:
type: string
example: us
- name: keyword
in: query
schema:
type: string
example: seo
- name: limit
in: query
schema:
type: integer
example: 100
- name: offset
in: query
schema:
type: integer
example: 0
- name: sort
in: query
schema:
type: string
example: keyword
- name: sort_order
in: query
schema:
type: string
example: asc
- name: history_trend
in: query
schema:
type: boolean
example: true
- name: filter[volume][from]
in: query
schema:
type: integer
example: 100
- name: filter[volume][to]
in: query
schema:
type: integer
example: 100000
- name: filter[difficulty][from]
in: query
schema:
type: integer
example: 0
- name: filter[difficulty][to]
in: query
schema:
type: integer
example: 30
- name: filter[cpc][from]
in: query
schema:
type: integer
example: 0
- name: filter[cpc][to]
in: query
schema:
type: integer
example: 100
- name: filter[competition][from]
in: query
schema:
type: integer
example: 0
- name: filter[competition][to]
in: query
schema:
type: number
example: 0.1
- name: filter[keyword_count][from]
in: query
schema:
type: integer
example: 3
- name: filter[keyword_count][to]
in: query
schema:
type: integer
example: 8
- name: filter[characters_count][from]
in: query
schema:
type: integer
example: 15
- name: filter[characters_count][to]
in: query
schema:
type: integer
example: 50
- name: filter[serp_features]
in: query
schema:
type: string
example: sge,images
- name: filter[intents]
in: query
schema:
type: string
example: I,C,T,L
- name: filter[multi_keyword_included]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
- name: filter[multi_keyword_excluded]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"contains\", \"value\": \"seo\" },\n { \"type\": \"contains\", \"value\": \"tools\" }\n ],\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
responses:
'200':
description: Successful response
content:
application/json: {}
/v1/keywords/related:
get:
operationId: getKeywordsRelated
tags:
- Keyword Research
summary: Get related keywords
description: Finds topically related keywords that share a high number of overlapping URLs in the search results for a given seed term.
parameters:
- name: apikey
in: query
schema:
type: string
example: '{{secret_key_data}}'
- name: source
in: query
schema:
type: string
example: us
- name: keyword
in: query
schema:
type: string
example: avocado
- name: limit
in: query
schema:
type: integer
example: 10
- name: offset
in: query
schema:
type: integer
example: 0
- name: sort
in: query
schema:
type: string
example: keyword
- name: sort_order
in: query
schema:
type: string
example: asc
- name: history_trend
in: query
schema:
type: boolean
example: true
- name: filter[volume][from]
in: query
schema:
type: integer
example: 100
- name: filter[volume][to]
in: query
schema:
type: integer
example: 100000
- name: filter[difficulty][from]
in: query
schema:
type: integer
example: 0
- name: filter[difficulty][to]
in: query
schema:
type: integer
example: 30
- name: filter[cpc][from]
in: query
schema:
type: integer
example: 0
- name: filter[cpc][to]
in: query
schema:
type: integer
example: 100
- name: filter[competition][from]
in: query
schema:
type: integer
example: 0
- name: filter[competition][to]
in: query
schema:
type: number
example: 0.1
- name: filter[keyword_count][from]
in: query
schema:
type: integer
example: 3
- name: filter[keyword_count][to]
in: query
schema:
type: integer
example: 8
- name: filter[characters_count][from]
in: query
schema:
type: integer
example: 15
- name: filter[characters_count][to]
in: query
schema:
type: integer
example: 50
- name: filter[serp_features]
in: query
schema:
type: string
example: sge,images
- name: filter[intents]
in: query
schema:
type: string
example: I,C,T,L
- name: filter[multi_keyword_included]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
- name: filter[multi_keyword_excluded]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"contains\", \"value\": \"seo\" },\n { \"type\": \"contains\", \"value\": \"tools\" }\n ],\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
responses:
'200':
description: Successful response
content:
application/json: {}
/v1/keywords/questions:
get:
operationId: getKeywordsQuestions
tags:
- Keyword Research
summary: Get question keywords
description: Generates a list of keywords phrased as common user questions that are relevant to a given seed term.
parameters:
- name: apikey
in: query
schema:
type: string
example: '{{secret_key_data}}'
- name: source
in: query
schema:
type: string
example: us
- name: keyword
in: query
schema:
type: string
example: avocado
- name: limit
in: query
schema:
type: integer
example: 10
- name: offset
in: query
schema:
type: integer
example: 0
- name: sort
in: query
schema:
type: string
example: keyword
- name: sort_order
in: query
schema:
type: string
example: asc
- name: history_trend
in: query
schema:
type: boolean
example: true
- name: filter[volume][from]
in: query
schema:
type: integer
example: 100
- name: filter[volume][to]
in: query
schema:
type: integer
example: 100000
- name: filter[difficulty][from]
in: query
schema:
type: integer
example: 0
- name: filter[difficulty][to]
in: query
schema:
type: integer
example: 30
- name: filter[cpc][from]
in: query
schema:
type: integer
example: 0
- name: filter[cpc][to]
in: query
schema:
type: integer
example: 100
- name: filter[competition][from]
in: query
schema:
type: integer
example: 0
- name: filter[competition][to]
in: query
schema:
type: number
example: 0.1
- name: filter[keyword_count][from]
in: query
schema:
type: integer
example: 3
- name: filter[keyword_count][to]
in: query
schema:
type: integer
example: 8
- name: filter[characters_count][from]
in: query
schema:
type: integer
example: 15
- name: filter[characters_count][to]
in: query
schema:
type: integer
example: 50
- name: filter[serp_features]
in: query
schema:
type: string
example: sge,images
- name: filter[intents]
in: query
schema:
type: string
example: I,C,T,L
- name: filter[multi_keyword_included]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
- name: filter[multi_keyword_excluded]
in: query
schema:
type: string
example: "[\n [\n { \"type\": \"contains\", \"value\": \"seo\" },\n { \"type\": \"contains\", \"value\": \"tools\" }\n ],\n [\n { \"type\": \"begins\", \"value\": \"find\" },\n { \"type\": \"contains\", \"value\": \"link\" }\n ],\n [\n { \"type\": \"contains\", \"value\": \"backlink\" },\n { \"type\": \"ends\", \"value\": \"checker\" }\n ],\n [\n { \"type\": \"exact\", \"value\": \"serankings\" }\n ]\n]"
responses:
'200':
description: Successful response
content:
application/json: {}
/v1/keywords/longtail:
get:
operationId: getKeywordsLongtail
tags:
- Keyword Research
summary: Get longtail keywords
description: Provides a list of longer, more specific long-tail keyword variations related to a given seed term.
parameters:
- name: apikey
in: query
schema:
type: string
example: '{{secret_key_data}}'
- name: source
in: query
schema:
type: string
example: us
- name: keyword
in: query
schema:
type: string
example: avocado
- name: limit
in: query
schema:
type: integer
example: 10
- name: offset
in: query
schema:
type: integer
example: 0
- name: sort
in: query
schema:
type: string
enum:
- keyword
- volume
- cpc
- difficulty
- competition
example: volume
- name: sort_order
in: query
schema:
type: string
enum:
- asc
- desc
example: desc
- name: filter[volume][from]
in: query
schema:
type: integer
- name: filter[volume][to]
in: query
schema:
type: integer
- name: filter[difficulty][from]
in: query
schema:
type: integer
- name: filter[difficulty][to]
in: query
schema:
type: integer
- name: filter[cpc][from]
in: query
schema:
type: number
- name: filter[cpc][to]
in: query
schema:
type: number
- name: filter[competition][from]
in: query
schema:
type: number
- name: filter[competition][to]
in: query
schema:
type: number
- name: filter[keyword_count][from]
in: query
schema:
type: integer
- name: filter[keyword_count][to]
in: query
schema:
type: integer
- name: filter[characters_count][from]
in: query
schema:
type: integer
- name: filter[characters_count][to]
in: query
schema:
type: integer
- name: filter[serp_features]
in: query
schema:
type: string
- name: filter[intents]
in: query
schema:
type: string
- name: filter[multi_keyword_included]
in: query
schema:
type: string
- name: filter[multi_keyword_excluded]
in: query
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json: {}
components:
securitySchemes:
apikeyAuth:
type: apiKey
in: query
name: apikey