Scoped AI Traffic aggregate widgets.
const url = 'https://sitechecker.pro/api/v1/ai-visibility/ai-traffic/summary?project_id=12345&date_from=2026-02-19&date_to=2026-05-19&scope=overview&include_comparison=true';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://sitechecker.pro/api/v1/ai-visibility/ai-traffic/summary?project_id=12345&date_from=2026-02-19&date_to=2026-05-19&scope=overview&include_comparison=true' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Example
12345Project ID.
Example
2026-02-19Start of the monitoring period (inclusive), ISO date (UTC).
Example
2026-05-19End of the monitoring period (inclusive), ISO date (UTC).
Responses
Section titled “Responses”AI Traffic summary widgets
object
Summary data payload for scope=overview: the Channel Performance widgets from the live GA4 channel computation. ai_traffic mirrors the AI Chats channel figures.
object
Shared AI Traffic metric block. engagement_rate is the exact GA4 complement of bounce_rate (1 - bounce_rate). The *_change fields (percentage deltas vs the previous period) are present only when include_comparison=true and may be null when the previous value is zero.
object
OpenAPI response schemas for the AI Traffic block of the AI Visibility Public API (summary / history / pages / filter-values). Property names are string literals that mirror the exact keys produced by the AI Traffic services, so the documented contract and the runtime response shapes stay in lock-step. The generic envelope schemas (PaginationMeta, ErrorEnvelope) live in PublicApiSchemas and are referenced by ref here.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Shared AI Traffic metric block. engagement_rate is the exact GA4 complement of bounce_rate (1 - bounce_rate). The *_change fields (percentage deltas vs the previous period) are present only when include_comparison=true and may be null when the previous value is zero.
object
OpenAPI response schemas for the AI Traffic block of the AI Visibility Public API (summary / history / pages / filter-values). Property names are string literals that mirror the exact keys produced by the AI Traffic services, so the documented contract and the runtime response shapes stay in lock-step. The generic envelope schemas (PaginationMeta, ErrorEnvelope) live in PublicApiSchemas and are referenced by ref here.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
One Channel Performance row (scope=overview). Extends the shared metric block with the channel group and its share of the Total row.
object
OpenAPI response schemas for the AI Traffic block of the AI Visibility Public API (summary / history / pages / filter-values). Property names are string literals that mirror the exact keys produced by the AI Traffic services, so the documented contract and the runtime response shapes stay in lock-step. The generic envelope schemas (PaginationMeta, ErrorEnvelope) live in PublicApiSchemas and are referenced by ref here.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Percentage of Total sessions.
Percentage of Total key events.
Summary data payload for scope=ai_sources: the AI-source performance aggregate plus a per-source breakdown from stored ClickHouse data (or live GA4 when a page filter is set).
object
Shared AI Traffic metric block. engagement_rate is the exact GA4 complement of bounce_rate (1 - bounce_rate). The *_change fields (percentage deltas vs the previous period) are present only when include_comparison=true and may be null when the previous value is zero.
object
OpenAPI response schemas for the AI Traffic block of the AI Visibility Public API (summary / history / pages / filter-values). Property names are string literals that mirror the exact keys produced by the AI Traffic services, so the documented contract and the runtime response shapes stay in lock-step. The generic envelope schemas (PaginationMeta, ErrorEnvelope) live in PublicApiSchemas and are referenced by ref here.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
One AI-source performance row (scope=ai_sources). Extends the shared metric block with the normalized AI source and its share of the aggregate.
object
OpenAPI response schemas for the AI Traffic block of the AI Visibility Public API (summary / history / pages / filter-values). Property names are string literals that mirror the exact keys produced by the AI Traffic services, so the documented contract and the runtime response shapes stay in lock-step. The generic envelope schemas (PaginationMeta, ErrorEnvelope) live in PublicApiSchemas and are referenced by ref here.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
object
Example
{ "data": { "ai_traffic": { "sessions": 1240, "key_events": 87, "session_key_event_rate": 7.02, "bounce_rate": 0.4213, "engagement_rate": 0.5787, "average_session_duration_seconds": 92.4, "sessions_change": 12.5, "key_events_change": -3.1, "session_key_event_rate_change": 1.4, "bounce_rate_change": -2, "engagement_rate_change": 2, "average_session_duration_change": 5.7 }, "total_metrics": { "sessions": 1240, "key_events": 87, "session_key_event_rate": 7.02, "bounce_rate": 0.4213, "engagement_rate": 0.5787, "average_session_duration_seconds": 92.4, "sessions_change": 12.5, "key_events_change": -3.1, "session_key_event_rate_change": 1.4, "bounce_rate_change": -2, "engagement_rate_change": 2, "average_session_duration_change": 5.7 }, "channel_breakdown": [ { "channel_group": "organic_search", "sessions": 1240, "key_events": 87, "session_key_event_rate": 7.02, "bounce_rate": 0.4213, "engagement_rate": 0.5787, "average_session_duration_seconds": 92.4, "sessions_change": 12.5, "key_events_change": -3.1, "session_key_event_rate_change": 1.4, "bounce_rate_change": -2, "engagement_rate_change": 2, "average_session_duration_change": 5.7, "sessions_share": 12.34, "key_event_share": 9.87 } ] }}Missing or invalid API key
object
object
Example
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key." }}No active API entitlement for the account, or the project belongs to another account
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
object
Example
{ "error": { "code": "api_access_denied", "message": "API access is not available: the account has no active API entitlement." }}Project not found
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
object
Example
{ "error": { "code": "project_not_found", "message": "Project not found." }}GA4 is not connected
object
object
Example
{ "error": { "code": "ga4_not_connected", "message": "Google Analytics 4 is not connected for this project." }}Validation error, unsupported scope or filter
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
object
Example
{ "error": { "code": "validation_error", "message": "project_id is required." }}Rate limit exceeded — retry after the interval in the Retry-After header
object
object
Example
{ "error": { "code": "rate_limit_exceeded", "message": "Rate limit exceeded. Try again later." }}Internal server error
object
object
Example
{ "error": { "code": "internal_error", "message": "Internal server error." }}