AI Traffic Summary
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>'Returns aggregate AI referral traffic metrics for the selected period, scope, and filters. AI Traffic is the one AI Visibility block with previous-period comparison; the change fields appear only when comparison is included, and are null when the previous value was zero.
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).
Which AI Traffic dataset to summarise: overview for the channel comparison, ai_sources for the AI referral breakdown.
Return previous-period values alongside the current ones.
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
Metrics for AI chat referrals alone.
object
GA4 key events recorded in these sessions.
Key events per session, as a percentage. The canonical conversion-style metric for AI Traffic.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Mean session length in seconds.
Percentage change in sessions against the previous period.
Percentage change in key events against the previous period.
Percentage change in the key event rate against the previous period.
Percentage change in bounce rate against the previous period.
Percentage change in engagement rate against the previous period.
Percentage change in average session duration against the previous period.
Metrics for all channels combined, the denominator of the share fields.
object
GA4 key events recorded in these sessions.
Key events per session, as a percentage. The canonical conversion-style metric for AI Traffic.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Mean session length in seconds.
Percentage change in sessions against the previous period.
Percentage change in key events against the previous period.
Percentage change in the key event rate against the previous period.
Percentage change in bounce rate against the previous period.
Percentage change in engagement rate against the previous period.
Percentage change in average session duration against the previous period.
One row per channel group, each with its share of the total.
One Channel Performance row (scope=overview). Extends the shared metric block with the channel group and its share of the Total row.
object
GA4 key events recorded in these sessions.
Key events per session, as a percentage. The canonical conversion-style metric for AI Traffic.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Mean session length in seconds.
Percentage change in sessions against the previous period.
Percentage change in key events against the previous period.
Percentage change in the key event rate against the previous period.
Percentage change in bounce rate against the previous period.
Percentage change in engagement rate against the previous period.
Percentage change in average session duration against the previous period.
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
Metrics for all AI referral sources combined.
object
GA4 key events recorded in these sessions.
Key events per session, as a percentage. The canonical conversion-style metric for AI Traffic.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Mean session length in seconds.
Percentage change in sessions against the previous period.
Percentage change in key events against the previous period.
Percentage change in the key event rate against the previous period.
Percentage change in bounce rate against the previous period.
Percentage change in engagement rate against the previous period.
Percentage change in average session duration against the previous period.
One row per AI referral source, each with its share of the total.
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
GA4 key events recorded in these sessions.
Key events per session, as a percentage. The canonical conversion-style metric for AI Traffic.
Fraction 0..1.
Fraction 0..1 (1 - bounce_rate).
Mean session length in seconds.
Percentage change in sessions against the previous period.
Percentage change in key events against the previous period.
Percentage change in the key event rate against the previous period.
Percentage change in bounce rate against the previous period.
Percentage change in engagement rate against the previous period.
Percentage change in average session duration against the previous period.
Standard AI Traffic meta block: the request scope echoed back, GA4 availability and data freshness. date_from / date_to are the dates actually used after clamping to the GA4 window, so they can differ from the requested ones. resolved_compare_* appear only when include_comparison=true.
object
Project the response was built for.
Start of the period the response covers.
End of the period the response covers.
The dataset that was queried, echoed back from the request.
Start of the previous period the *_change fields were computed against. Present only when comparison was included.
End of the previous period the *_change fields were computed against. Present only when comparison was included.
Whether GA4 is connected and usable for this project.
object
Latest GA4 data date available for this project, null when there is none.
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 } ] }, "meta": { "project_id": 12345, "date_from": "2026-05-01", "date_to": "2026-05-31", "scope": "overview", "resolved_compare_from": "2026-04-01", "resolved_compare_to": "2026-04-30", "source_status": { "ga4": "connected" }, "data_freshness": { "ga4_date": "2026-06-30" } }}Missing or invalid API key
Returned as INVALID_API_KEY when the key is missing or unknown, and as REVOKED_API_KEY when the key exists but was revoked — the latter needs a new key.
object
object
Example
{ "error": { "code": "INVALID_API_KEY", "message": "Invalid or missing API key." }}No active API entitlement for the account, or the project belongs to another account
Returned as MISSING_PUBLIC_API_ACCESS when the account has no active API entitlement, and as ACCESS_DENIED when the requested project belongs to another account.
object
object
Example
{ "error": { "code": "MISSING_PUBLIC_API_ACCESS", "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 (including a query parameter the endpoint does not accept), or INVALID_DATE_RANGE / INVALID_FILTER / INVALID_EVENT_TYPE / UNSUPPORTED_FILTER / UNSUPPORTED_DIMENSION / UNSUPPORTED_METRIC / 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." }}