openapi: 3.0.0 info: title: SE Ranking Data Account & system 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. Use these requests to retrieve performance metrics for large lists of keywords or to generate new keyword ideas based on a seed term.\n\nThis folder is divided into two main categories:\n\n### Bulk Keyword Metrics\n\n- **Export Keywords Metrics**: Submit a list of up to 5,000 keywords to get detailed data points for each, including search volume, CPC, competition score, keyword difficulty, and historical search volume trends. This is ideal for bulk analysis and data enrichment.\n \n\n### Keyword Discovery\n\nUse these endpoints to expand your keyword lists and uncover new ranking opportunities.\n\n- **Get Similar Keywords**: Find keywords that are semantically similar to your seed keyword, including synonyms and close variations.\n \n- **Get Related Keywords**: Discover keywords that are topically related, based on having a high number of overlapping URLs in their search results.\n \n- **Get Question Keywords**: Generate a list of keywords phrased as common user questions, perfect for content marketing and FAQ creation.\n \n- **Get Longtail Keywords**: Find longer, more specific keyword phrases that often have lower competition and higher conversion rates." 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