API

Reference

This page lists every enum, shared filter convention, and error code used across the SE Visible API. Other pages link here instead of repeating values.

All endpoints are served from the base URL https://api.seranking.com/v1/se-visible.

AI models

Values accepted by model_type, model_types, and model.

ValueModel
chatgptChatGPT
google_geminiGoogle Gemini
google_ai_modeGoogle AI Mode
google_ai_overviewGoogle AI Overview

Sentiment

Values returned by sentiment in results and accepted by the sentiments filter.

ValueMeaning
positivePositive sentiment toward the brand.
neutralNeutral or factual mention.
negativeNegative sentiment toward the brand.

Project status

Values returned by status on a project. A new project is processed asynchronously, so poll the project until it reaches success or error.

ValueMeaning
queuedWaiting to be processed.
processingGeneration in progress.
successCompleted.
errorProcessing failed.

Country codes

ISO 3166-1 alpha-2 codes accepted by country_code (project creation) and the country_codes filter.

US, UK, CA, FR, DE, NL, ES, AT, BE, AU, NZ, IT, JP, KR, SG, IN, AE, BR, MX, CH, DK, SE, NO, FI, IE, IS, LU, PT, HK, TH, MY, ID, PH, IL, AR, CL, CO, ZA, CZ, GR, TR, PL

Language codes

ISO 639-1 codes accepted by lang_code.

en, fr, de, nl, es, it, ja, ko, hi, ar, pt, da, sv, nb, fi, ga, is, lb, zh, th, ms, id, tl, he, af, cs, el, tr, pl

Source type

Values accepted by source_type on the Sources endpoint. The chosen value changes the shape of each Sources response row.

ValueMeaning
domainOne row per registrable domain; its subdomains are aggregated into the row, and subdomains_count reports how many appeared as a source. Default.
subdomainOne row per host exactly as collected, so each subdomain is a row of its own.
urlOne row per cited source page.

URL category types

Values accepted by the types filter, used to filter sources by the kind of page cited. The detailed subtypes detected from page content come first, followed by the base types detected from the URL.

ValueDetected from
listiclePage content (detailed subtype)
alternativePage content (detailed subtype)
comparisonPage content (detailed subtype)
reviewPage content (detailed subtype)
how_to_guidePage content (detailed subtype)
faq_pagePage content (detailed subtype)
articlePage content (detailed subtype)
fileURL (base type)
videoURL (base type)
socialURL (base type)
forumURL (base type)
q&aURL (base type)
documentationURL (base type)
wikiURL (base type)
newsURL (base type)
blogURL (base type)
productURL (base type)
jobURL (base type)
educationalURL (base type)
localURL (base type)
appURL (base type)
searchURL (base type)
homepageURL (base type)
otherURL (base type)

Brand match mode

Values accepted by brand_match_mode, used together with the brand_ids filter on Sources.

ValueMeaning
anyMatch sources mentioning any of the given brands. Default.
allMatch only sources mentioning all of the given brands.

Prompt list grouping

Values accepted by group_mode on List prompts or topics.

ValueMeaning
promptReturn one row per prompt. Default.
topicGroup prompts by topic.

Brand metrics dimensions and metrics

The brand metrics endpoint takes dimensions[] (how rows are grouped) and metrics[] (which values to return). The last dimension is always the pivot.

Dimensions (dimensions[], 1 to 3, last is the pivot)

ValueDescription
topic_idGroup by topic.
brand_idGroup by brand.
prompt_idGroup by prompt.
model_typeGroup by AI model (see AI models).
location_idGroup by location.
check_idOne row per check.
check_dateOne row per check, labelled by its date.
check_weekOne row per calendar week, its checks aggregated and labelled by the week start (YYYY-MM-DD). The week starts on week_start.
check_monthOne row per calendar month, its checks aggregated and labelled by the month start (YYYY-MM-DD).

check_week and check_month cannot be combined with another date dimension (check_id, check_date, check_week, check_month); doing so returns a 422.

Metrics (metrics[], 17 metrics, max 15 per request)

ValueDescription
visibility_scoreShare of the answers that mention the brand, weighted by its place among the brands an answer names (first place counts in full, later places less), 0–100.
avg_positionThe brand’s average place among the brands an answer names (1 = first), over the answers that mention it, one decimal. null when the brand is not mentioned.
sentiment_score(positive − negative mentions) / all the brand’s mentions × 100, from −100 to 100. null when the brand is not mentioned.
total_mentionsAnswers that mention the brand, each answer counted once.
rankThe brand’s place by visibility_score, then avg_position. null when the brand is not mentioned.
total_response_countThe answers of the row; the same for every brand of the row.
positive_countThe brand’s mentions with positive sentiment. One answer can hold several.
neutral_countThe brand’s mentions with neutral sentiment. One answer can hold several.
negative_countThe brand’s mentions with negative sentiment. One answer can hold several.
positive_pctPositive sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned.
neutral_pctNeutral sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned.
negative_pctNegative sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned.
total_all_mentionstotal_mentions summed over every brand the answers name, tracked or not.
unique_brands_countDistinct brands the answers name, tracked or not.
share_of_voicetotal_mentions / total_all_mentions × 100, 0–100.
aio_overlapAverage overlap between organic links and AI Overview links, over queries where the AI Overview block was shown. Percentage (0–100).
aio_presenceShare of queries whose AI Overview block was shown, among queries with a known AI Overview status. Percentage (0–100).

In these metrics, “answers” are the answers of the row that name at least one brand.

aio_overlap and aio_presence are brand-agnostic: they are aggregated over all prompt results of the group, not only the responses that mention a tracked brand, so they stay constant across the brand pivot. Sorting by these metrics is not supported.

Sort fields

Prompt list (sort_field)

ValueDescription
idPrompt (or topic) ID.
visibilityPrimary brand’s visibility score, 0–100: the share of answers that mention it, weighted by its place (first place counts in full, later places less). Default.
avg_positionPrimary brand’s average place among the brands an answer names (1 = first), over the answers that mention it; 0 when none does. Sorts inverted: desc puts the best position first.
mentionsNumber of the prompt’s answers that mention the primary brand.
sentimentsPrimary brand’s sentiment score, from −100 to 100: (positive − negative mentions) / all its mentions × 100.
sovPrimary brand’s share of voice, 0–100: answers mentioning it as a percentage of all brands’ answer mentions.
rankAccepted, but currently falls back to the default visibility ordering.
visibility_deltaAbsolute change in visibility between periods. Requires a compare period (date_range[1]) that contains checks.
avg_position_deltaAbsolute change in average position between periods. Sorts inverted: desc puts the biggest improvement first. Requires a compare period (date_range[1]) that contains checks.
sentiments_deltaAbsolute change in sentiment between periods. Requires a compare period (date_range[1]) that contains checks.
sov_deltaAbsolute change in share of voice between periods. Requires a compare period (date_range[1]) that contains checks.
citations_countThe prompt’s answers that cited the cited_source. Requires cited_source; without it the request returns a 422.
citations_sharecitations_count as a percentage of the prompt’s answers in the period that name at least one brand, one decimal. Requires cited_source; without it the request returns a 422.
source_presenceShare of the prompt’s answers in the period that cite at least one source page.
source_presence_deltaAbsolute change in source presence between periods. Requires a compare period (date_range[1]) that contains checks.
organic_overlapShare of the organic top-20 links that also appear in the AI Overview block, as a percentage.
organic_overlap_deltaAbsolute change in organic overlap between periods. Requires a compare period (date_range[1]) that contains checks.

A prompt or topic with no source_presence or organic_overlap value in the period (no answers, no AI Overview) stays last in either sort direction, as it does under their _delta variants.

Source (source_sort_field)

The accepted values depend on source_type; a value outside the set for the current source_type returns a 422 validation error. Delta variants (<metric>_delta) sort by the absolute change between periods (period 0 minus period 1) and require date_range[1]; without it the request is rejected with a 422.

For source_type=domain and source_type=subdomain:

ValueDescription
ai_answers_countDistinct answers in the period that cite at least one page of this source.
pagesDistinct pages of this domain cited in the period’s answers.
coverageai_answers_count as a percentage of responses_count, one decimal; null when responses_count is 0.
prompts_countDistinct prompts whose answers cited this source in the period.
mention_ratePercentage of this domain’s pages in the period whose content mentions the primary brand (my_brand_mentions_count / pages * 100), whole number; null in a period where the domain has no pages.
my_brand_mentions_countURLs on this domain that mention the primary brand and appeared as a source within the period.
competitors_countDistinct non-primary brands attached to URLs of this domain that appeared as a source in the period.
first_seenFirst time this domain appeared in results within the requested date_range.
last_seenLast time this domain appeared in results within the requested date_range.
dtDomain trust (0–100).
backlinksTotal backlinks to the domain.
referring_domainsTotal referring domains.
domain_trafficEstimated monthly organic search traffic of the whole domain.
ai_answers_count_deltaAbsolute change in ai_answers_count between periods. Requires date_range[1].
pages_deltaAbsolute change in pages between periods. Requires date_range[1].
coverage_deltaAbsolute change in coverage between periods. Requires date_range[1].
prompts_count_deltaAbsolute change in prompts_count between periods. Requires date_range[1].
mention_rate_deltaAbsolute change in mention_rate between periods. Requires date_range[1].
my_brand_mentions_count_deltaAbsolute change in my_brand_mentions_count between periods. Requires date_range[1].
competitors_count_deltaAbsolute change in competitors_count between periods. Requires date_range[1].
responses_count_deltaAbsolute change in responses_count (answers in the period that name at least one brand, after the request’s filters) between periods. Requires date_range[1].

For source_type=url:

ValueDescription
ai_answers_countDistinct answers in the period that cite at least one page of this source.
coverageai_answers_count as a percentage of responses_count, one decimal; null when responses_count is 0.
prompts_countDistinct prompts whose answers cited this source in the period.
competitors_countCompetitor brand count for this URL.
my_brand_mentionsBrand mention status for this URL: 1 brand is mentioned, 0 the page was read and the primary brand was not found, -1 the page could not be read, null not parsed yet.
gap_scoreBase-period ai_answers_count times the number of tracked brands found on the page, so a page citing competitors in many answers scores high; 0 when the page mentions the primary brand, -1 where no tracked brand was found or the page could not be read, null while the page waits for its first parse.
first_seenFirst time this URL appeared in results within the requested date_range.
last_seenLast time this URL appeared in results within the requested date_range.
last_check_dateWhen this URL was last parsed for brand mentions.
dtDomain trust (0–100).
trafficEstimated monthly organic search traffic of the page itself.
domain_trafficEstimated monthly organic search traffic of the whole domain.
ai_answers_count_deltaAbsolute change in ai_answers_count between periods. Requires date_range[1].
prompts_count_deltaAbsolute change in prompts_count between periods. Requires date_range[1].
coverage_deltaAbsolute change in coverage between periods. Requires date_range[1].
responses_count_deltaAbsolute change in responses_count (answers in the period that name at least one brand, after the request’s filters) between periods. Requires date_range[1].

Sort order (sort_order)

ValueMeaning
ascAscending.
descDescending.

Date ranges and compare mode

Metrics, prompt results, and sources are filtered by a required date_range. It is a deep object with a base period at index 0 and an optional compare period at index 1. Each period has from and to in YYYY-MM-DD.

Copy
# Base period only
?date_range[0][from]=2026-05-01&date_range[0][to]=2026-05-31
# Base period vs compare period (compare mode)
?date_range[0][from]=2026-05-01&date_range[0][to]=2026-05-31&date_range[1][from]=2026-04-01&date_range[1][to]=2026-04-30

When a compare period is supplied and contains checks, supported metrics return both period values (period 0 first) plus a delta with absolute and percentage. The delta is present only in compare mode. Any value, including delta.absolute and delta.percentage, may be null when a period has no data and the metric has no meaningful zero baseline.

Array parameters

Most array filters repeat the parameter key, one entry per value:

Copy
?model_types=chatgpt&model_types=google_ai_overview

The brand metrics endpoint uses the bracketed array form for dimensions[] and metrics[]:

Copy
?dimensions[]=topic_id&metrics[]=visibility_score

Note:

  • When a URL contains brackets ([]), pass --globoff to curl so it does not try to interpret them as glob patterns.

Pagination

List endpoints accept limit and offset and return a total count alongside the results.

ParameterTypeDefaultDescription
limitInteger1000Maximum number of items to return. Some endpoints cap this lower; see each endpoint.
offsetInteger0Number of items to skip from the start of the list.

To page through results, increase offset by limit until offset reaches total.

Error codes

The API uses standard HTTP status codes. Only 2xx responses indicate success. Error bodies are JSON. Endpoint-specific errors are described within each endpoint’s documentation.

StatusMeaningBody
400Bad request{ "message": "..." }
401Unauthenticated (missing or invalid key){ "message": "Unauthenticated.", "error_code": "unauthenticated" }
403Forbidden (key valid, action not allowed){ "message": "This action is unauthorized.", "error_code": "this_action_is_unauthorized" }
404Resource not found{ "message": "..." }
422Validation error{ "message": "...", "errors": { "field": ["..."] } }

Authentication

Every request is authenticated with your SE Ranking API key, the same key used by the Data API and Project API. Send it one of two ways:

  • Authorization header (recommended): Authorization: Token YOUR_API_KEY
  • Query parameter: ?apikey=YOUR_API_KEY

Learn how SE Ranking’s API can boost your SEO!

Hi! Meet our product experts!

One of them will walk you through the API and show you how to get the most out of it.

  • Enjoy a tailored demo on integrating rich, structured SEO data into your stack.
  • Pin down every tech detail live—auth, endpoints, rate limits, data formats.
  • Compare usage tiers and pricing so you can unlock maximum data value.

Request a free demo to see our tools and integrations in action

By clicking this button, you agree to SE Ranking’s
Terms of Service and Privacy Statement.