Skip to content

Site-level GA4 behavior metrics for the selected period and scope.

GET
/api/v1/ga4-insights/site-summary
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>'
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).

source_channel
string
default: organic_search
Allowed values: organic_search all

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.

metrics
string
Example
sessions,bounce_rate,key_events

Comma-separated GA4 metric keys. Defaults to all V1 metrics. Unknown metrics return validation_error.

dimension
string
Allowed values: source_medium

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.

dimension_limit
integer
default: 15 >= 1 <= 15

Cap for breakdown rows, especially source_medium.

include_other
boolean
default: true

When the dimension is high-cardinality, group remaining rows into other if supported.

include_comparison
boolean
default: true

Default true for summary/list endpoints. Return previous period same-length values/deltas.

Site-level GA4 metrics with optional previous-period comparison

Media typeapplication/json
object
data

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
scope

Applied scope for the returned metrics.

object
source_channel

Applied source/channel scope.

string
sessions

Sessions for the selected source_channel scope/filters. If source_channel=all, this means all sessions.

integer
bounce_rate

Bounce rate for the selected scope/filters.

number format: float
average_session_duration

Average session duration.

number format: float
key_events

Key events count.

integer
session_key_event_rate

Session key event rate.

number format: float
previous
One of:

GA4 metric values. average_session_duration is in seconds.

object
sessions

Sessions for the selected source_channel scope/filters.

integer
bounce_rate

Bounce rate for the selected scope/filters.

number format: float
average_session_duration

Average session duration.

number format: float
key_events

Key events count.

integer
session_key_event_rate

Session key event rate.

number format: float
change

Absolute and percent deltas for the same scope/filters.

object
key
additional properties
number
nullable
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

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."
}
}

Google Analytics 4 is not connected

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": "ga4_not_connected",
"message": "Google Analytics 4 is not connected for this project."
}
}

Validation error or unsupported filter/dimension

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."
}
}

Upstream Google Analytics 4 service error (dimension=source_medium)

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": "upstream_error",
"message": "The upstream Google Analytics 4 service is temporarily unavailable. Try again later."
}
}