Skip to content

Keyword-level Google AI Overview board.

GET
/api/v1/ai-visibility/google-ai-overview/keywords
curl --request GET \
--url 'https://sitechecker.pro/api/v1/ai-visibility/google-ai-overview/keywords?project_id=12345&date_from=2026-02-19&date_to=2026-05-19&device=desktop&ai_citation=all&ai_brand_mention=all&limit=100&offset=0' \
--header 'Authorization: Bearer <token>'
project_id
required
integer
Example
12345

Project ID.

date_from
required
string format: date
Example
2026-02-19

Start of the monitoring period (inclusive), ISO date (UTC).

date_to
required
string format: date
Example
2026-05-19

End of the monitoring period (inclusive), ISO date (UTC).

country
string
device
string
Allowed values: desktop mobile tablet
language
string
volume_min
integer
volume_max
integer
ai_citation
string
Allowed values: all with without
citation_url
string
citation_position_min
integer
citation_position_max
integer
ai_brand_mention
string
Allowed values: all with without
search
string
fields

Opt-in enrichment: citation_url,volume,serp_position,changes,gsc

string
sort
string
limit
integer
default: 100 >= 1 <= 100
offset
integer
0

AIO keyword board

Media typeapplication/json
object
data
Array<object>

Keyword-level AI Overview row on the Rank Tracker keyword set. The AIO layer (has_ai_overview / has_owner_citation / has_brand_mention / avg_citation_position) is returned by default; citation_url, volume, serp_position, changes and gsc appear only when requested via the matching fields= group.

object
tracked_keyword_id
integer
keyword
string
nullable
search_engine
string
nullable
device
string
nullable
country
string
nullable
language
string
nullable
has_ai_overview
boolean
has_owner_citation
boolean
has_brand_mention
boolean
avg_citation_position
integer
nullable
citation_url

Only with fields=citation_url.

string
nullable
volume

Only with fields=volume.

integer
nullable
serp_position

Only with fields=serp_position.

integer
nullable
changes

Only with fields=changes. SERP position deltas over each window.

object
1d
integer
nullable
7d
integer
nullable
30d
integer
nullable
90d
integer
nullable
gsc

Only with fields=gsc. Latest synced GSC snapshot values.

object
impressions
integer
nullable
clicks
integer
nullable
ctr
number format: float
nullable
position
number format: float
nullable
meta
object
total

Reusable OpenAPI response schemas for the Public REST API: the error/meta envelope and one item schema per resource. Property names come from the Field registry so the documented contract and the runtime response shapes stay in lock-step.

integer
limit
integer
offset
integer
Example
{
"data": [
{
"tracked_keyword_id": 123456,
"keyword": "ai overview checker",
"search_engine": "google",
"device": "desktop",
"country": "US",
"language": "en",
"has_ai_overview": true,
"has_owner_citation": false,
"has_brand_mention": false,
"avg_citation_position": 3,
"volume": 2900,
"serp_position": 5,
"changes": {
"1d": -1,
"7d": 2,
"30d": 7,
"90d": 12
},
"gsc": {
"impressions": 3278,
"clicks": 27,
"ctr": 0.82,
"position": 12.4
}
}
],
"meta": {
"total": 137,
"limit": 50,
"offset": 0
}
}

Missing or invalid API key

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

No active API entitlement for the account, or the project belongs to another account

Media typeapplication/json

Returned as api_access_denied when the account has no active API entitlement, and as forbidden when the requested project belongs to another account.

object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "api_access_denied",
"message": "API access is not available: the account has no active API entitlement."
}
}

Project not found

Media typeapplication/json

The exact missing resource is in error.code: project_not_found, segment_not_found, crawl_not_found, keyword_not_found, opportunity_not_found, snapshot_unavailable or not_found.

object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "project_not_found",
"message": "Project not found."
}
}

Validation error or unsupported filter

Media typeapplication/json

Rejected query parameters. error.code is validation_error for parameter validation, or invalid_date_range / invalid_filter / invalid_event_type / unsupported_filter / unsupported_dimension / unsupported_scope / segment_filter_unsupported for module-specific rules.

object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "validation_error",
"message": "project_id is required."
}
}

Rate limit exceeded — retry after the interval in the Retry-After header

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again later."
}
}

Internal server error

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: validation_error bad_request project_not_found segment_not_found forbidden crawl_in_progress not_found upstream_error unauthorized rate_limit_exceeded api_access_denied internal_error crawl_not_found invalid_date_range invalid_filter invalid_event_type keyword_not_found opportunity_not_found snapshot_unavailable gsc_not_connected ga4_not_connected site_audit_data_unavailable ga4_data_unavailable unsupported_filter unsupported_dimension segment_filter_unsupported unsupported_scope ai_overview_data_unavailable prompt_data_unavailable
message
required
string
Example
{
"error": {
"code": "internal_error",
"message": "Internal server error."
}
}