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.
| Value | Model |
|---|---|
chatgpt | ChatGPT |
google_gemini | Google Gemini |
google_ai_mode | Google AI Mode |
google_ai_overview | Google AI Overview |
Sentiment
Values returned by sentiment in results and accepted by the sentiments filter.
| Value | Meaning |
|---|---|
positive | Positive sentiment toward the brand. |
neutral | Neutral or factual mention. |
negative | Negative 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.
| Value | Meaning |
|---|---|
queued | Waiting to be processed. |
processing | Generation in progress. |
success | Completed. |
error | Processing 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.
| Value | Meaning |
|---|---|
domain | One row per registrable domain; its subdomains are aggregated into the row, and subdomains_count reports how many appeared as a source. Default. |
subdomain | One row per host exactly as collected, so each subdomain is a row of its own. |
url | One 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.
| Value | Detected from |
|---|---|
listicle | Page content (detailed subtype) |
alternative | Page content (detailed subtype) |
comparison | Page content (detailed subtype) |
review | Page content (detailed subtype) |
how_to_guide | Page content (detailed subtype) |
faq_page | Page content (detailed subtype) |
article | Page content (detailed subtype) |
file | URL (base type) |
video | URL (base type) |
social | URL (base type) |
forum | URL (base type) |
q&a | URL (base type) |
documentation | URL (base type) |
wiki | URL (base type) |
news | URL (base type) |
blog | URL (base type) |
product | URL (base type) |
job | URL (base type) |
educational | URL (base type) |
local | URL (base type) |
app | URL (base type) |
search | URL (base type) |
homepage | URL (base type) |
other | URL (base type) |
Brand match mode
Values accepted by brand_match_mode, used together with the brand_ids filter on Sources.
| Value | Meaning |
|---|---|
any | Match sources mentioning any of the given brands. Default. |
all | Match only sources mentioning all of the given brands. |
Prompt list grouping
Values accepted by group_mode on List prompts or topics.
| Value | Meaning |
|---|---|
prompt | Return one row per prompt. Default. |
topic | Group 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)
| Value | Description |
|---|---|
topic_id | Group by topic. |
brand_id | Group by brand. |
prompt_id | Group by prompt. |
model_type | Group by AI model (see AI models). |
location_id | Group by location. |
check_id | One row per check. |
check_date | One row per check, labelled by its date. |
check_week | One row per calendar week, its checks aggregated and labelled by the week start (YYYY-MM-DD). The week starts on week_start. |
check_month | One 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)
| Value | Description |
|---|---|
visibility_score | Share 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_position | The 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_mentions | Answers that mention the brand, each answer counted once. |
rank | The brand’s place by visibility_score, then avg_position. null when the brand is not mentioned. |
total_response_count | The answers of the row; the same for every brand of the row. |
positive_count | The brand’s mentions with positive sentiment. One answer can hold several. |
neutral_count | The brand’s mentions with neutral sentiment. One answer can hold several. |
negative_count | The brand’s mentions with negative sentiment. One answer can hold several. |
positive_pct | Positive sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned. |
neutral_pct | Neutral sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned. |
negative_pct | Negative sentiment’s share of the brand’s mentions, two decimals. null when the brand is not mentioned. |
total_all_mentions | total_mentions summed over every brand the answers name, tracked or not. |
unique_brands_count | Distinct brands the answers name, tracked or not. |
share_of_voice | total_mentions / total_all_mentions × 100, 0–100. |
aio_overlap | Average overlap between organic links and AI Overview links, over queries where the AI Overview block was shown. Percentage (0–100). |
aio_presence | Share 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)
| Value | Description |
|---|---|
id | Prompt (or topic) ID. |
visibility | Primary 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_position | Primary 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. |
mentions | Number of the prompt’s answers that mention the primary brand. |
sentiments | Primary brand’s sentiment score, from −100 to 100: (positive − negative mentions) / all its mentions × 100. |
sov | Primary brand’s share of voice, 0–100: answers mentioning it as a percentage of all brands’ answer mentions. |
rank | Accepted, but currently falls back to the default visibility ordering. |
visibility_delta | Absolute change in visibility between periods. Requires a compare period (date_range[1]) that contains checks. |
avg_position_delta | Absolute 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_delta | Absolute change in sentiment between periods. Requires a compare period (date_range[1]) that contains checks. |
sov_delta | Absolute change in share of voice between periods. Requires a compare period (date_range[1]) that contains checks. |
citations_count | The prompt’s answers that cited the cited_source. Requires cited_source; without it the request returns a 422. |
citations_share | citations_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_presence | Share of the prompt’s answers in the period that cite at least one source page. |
source_presence_delta | Absolute change in source presence between periods. Requires a compare period (date_range[1]) that contains checks. |
organic_overlap | Share of the organic top-20 links that also appear in the AI Overview block, as a percentage. |
organic_overlap_delta | Absolute 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:
| Value | Description |
|---|---|
ai_answers_count | Distinct answers in the period that cite at least one page of this source. |
pages | Distinct pages of this domain cited in the period’s answers. |
coverage | ai_answers_count as a percentage of responses_count, one decimal; null when responses_count is 0. |
prompts_count | Distinct prompts whose answers cited this source in the period. |
mention_rate | Percentage 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_count | URLs on this domain that mention the primary brand and appeared as a source within the period. |
competitors_count | Distinct non-primary brands attached to URLs of this domain that appeared as a source in the period. |
first_seen | First time this domain appeared in results within the requested date_range. |
last_seen | Last time this domain appeared in results within the requested date_range. |
dt | Domain trust (0–100). |
backlinks | Total backlinks to the domain. |
referring_domains | Total referring domains. |
domain_traffic | Estimated monthly organic search traffic of the whole domain. |
ai_answers_count_delta | Absolute change in ai_answers_count between periods. Requires date_range[1]. |
pages_delta | Absolute change in pages between periods. Requires date_range[1]. |
coverage_delta | Absolute change in coverage between periods. Requires date_range[1]. |
prompts_count_delta | Absolute change in prompts_count between periods. Requires date_range[1]. |
mention_rate_delta | Absolute change in mention_rate between periods. Requires date_range[1]. |
my_brand_mentions_count_delta | Absolute change in my_brand_mentions_count between periods. Requires date_range[1]. |
competitors_count_delta | Absolute change in competitors_count between periods. Requires date_range[1]. |
responses_count_delta | Absolute 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:
| Value | Description |
|---|---|
ai_answers_count | Distinct answers in the period that cite at least one page of this source. |
coverage | ai_answers_count as a percentage of responses_count, one decimal; null when responses_count is 0. |
prompts_count | Distinct prompts whose answers cited this source in the period. |
competitors_count | Competitor brand count for this URL. |
my_brand_mentions | Brand 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_score | Base-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_seen | First time this URL appeared in results within the requested date_range. |
last_seen | Last time this URL appeared in results within the requested date_range. |
last_check_date | When this URL was last parsed for brand mentions. |
dt | Domain trust (0–100). |
traffic | Estimated monthly organic search traffic of the page itself. |
domain_traffic | Estimated monthly organic search traffic of the whole domain. |
ai_answers_count_delta | Absolute change in ai_answers_count between periods. Requires date_range[1]. |
prompts_count_delta | Absolute change in prompts_count between periods. Requires date_range[1]. |
coverage_delta | Absolute change in coverage between periods. Requires date_range[1]. |
responses_count_delta | Absolute 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)
| Value | Meaning |
|---|---|
asc | Ascending. |
desc | Descending. |
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.
# 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-30When 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:
?model_types=chatgpt&model_types=google_ai_overviewThe brand metrics endpoint uses the bracketed array form for dimensions[] and metrics[]:
?dimensions[]=topic_id&metrics[]=visibility_scoreNote:
- When a URL contains brackets (
[]), pass--globoffto 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | Integer | 1000 | Maximum number of items to return. Some endpoints cap this lower; see each endpoint. |
| offset | Integer | 0 | Number 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.
| Status | Meaning | Body |
|---|---|---|
| 400 | Bad request | { "message": "..." } |
| 401 | Unauthenticated (missing or invalid key) | { "message": "Unauthenticated.", "error_code": "unauthenticated" } |
| 403 | Forbidden (key valid, action not allowed) | { "message": "This action is unauthorized.", "error_code": "this_action_is_unauthorized" } |
| 404 | Resource not found | { "message": "..." } |
| 422 | Validation 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
