Site-level GA4 behavior metrics for the selected period and scope.
const url = 'https://sitechecker.pro/api/v1/ga4-insights/site-summary?project_id=12345&date_from=2026-02-19&date_to=2026-05-19&source_channel=organic_search&metrics=sessions%2Cbounce_rate%2Ckey_events&dimension=source_medium&dimension_limit=15&include_other=true&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/ga4-insights/site-summary?project_id=12345&date_from=2026-02-19&date_to=2026-05-19&source_channel=organic_search&metrics=sessions%2Cbounce_rate%2Ckey_events&dimension=source_medium&dimension_limit=15&include_other=true&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).
Traffic scope. GA4 storage only distinguishes organic vs total, so only these values are supported in V1; other channels return unsupported_filter. Default: organic_search.
Example
sessions,bounce_rate,key_eventsComma-separated GA4 metric keys. Defaults to all V1 metrics. Unknown metrics return validation_error.
Optional breakdown dimension. V1 supports source_medium on site-summary only, and only with source_channel=all (served from the live GA4 API, top-N by sessions). Unsupported dimensions return unsupported_dimension. See ga4-insights/filter-values dimension_support.
Cap for breakdown rows, especially source_medium.
When the dimension is high-cardinality, group remaining rows into other if supported.
Default true for summary/list endpoints. Return previous period same-length values/deltas.
Responses
Section titled “Responses”Site-level GA4 metrics with optional previous-period comparison
object
Site-level GA4 metrics for the selected scope. previous/change appear only when include_comparison=true; change.*_percent is null when the previous value is zero.
object
Applied scope for the returned metrics.
object
Applied source/channel scope.
Sessions for the selected source_channel scope/filters. If source_channel=all, this means all sessions.
Bounce rate for the selected scope/filters.
Average session duration.
Key events count.
Session key event rate.
GA4 metric values. average_session_duration is in seconds.
object
Sessions for the selected source_channel scope/filters.
Bounce rate for the selected scope/filters.
Average session duration.
Key events count.
Session key event rate.
Absolute and percent deltas for the same scope/filters.
object
Example
{ "data": { "scope": { "source_channel": "organic_search" }, "sessions": 49400, "bounce_rate": 16.9, "average_session_duration": 501, "key_events": 0, "session_key_event_rate": 0, "previous": { "sessions": 49400, "bounce_rate": 16.9, "average_session_duration": 501, "key_events": 0, "session_key_event_rate": 0 } }}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." }}Google Analytics 4 is not connected
object
object
Example
{ "error": { "code": "ga4_not_connected", "message": "Google Analytics 4 is not connected for this project." }}Validation error or unsupported filter/dimension
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." }}Upstream Google Analytics 4 service error (dimension=source_medium)
object
object
Example
{ "error": { "code": "upstream_error", "message": "The upstream Google Analytics 4 service is temporarily unavailable. Try again later." }}