Skip to main content

Google-Analytics-Data-Api full reference

This is the full reference documentation for the Google-Analytics-Data-Api agent connector.

Supported entities and actions​

The Google-Analytics-Data-Api connector supports the following entities and actions.

EntityActions
Website OverviewList, Context Store Search, Context Store SQL Query
Daily Active UsersList, Context Store Search, Context Store SQL Query
Weekly Active UsersList, Context Store Search, Context Store SQL Query
Four Weekly Active UsersList, Context Store Search, Context Store SQL Query
Traffic SourcesList, Context Store Search, Context Store SQL Query
PagesList, Context Store Search, Context Store SQL Query
DevicesList, Context Store Search, Context Store SQL Query
LocationsList, Context Store Search, Context Store SQL Query

Website Overview​

Website Overview List​

Returns website overview metrics including total users, new users, sessions, bounce rate, page views, and average session duration by date.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "website_overview",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.website_overview.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "website_overview",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter website overview records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "website_overview",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"averageSessionDuration": 0.0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.website_overview.context_store_search(
query={"filter": {"eq": {"averageSessionDuration": 0.0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "website_overview",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"averageSessionDuration": 0.0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
averageSessionDurationnumberAverage duration of sessions in seconds
bounceRatenumberPercentage of sessions that were single-page with no interaction
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
newUsersintegerNumber of first-time users
property_idstringGA4 property ID
screenPageViewsintegerTotal number of screen or page views
screenPageViewsPerSessionnumberAverage page views per session
sessionsintegerTotal number of sessions
sessionsPerUsernumberAverage number of sessions per user
startDatestringStart date of the reporting period
totalUsersintegerTotal number of unique users
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].averageSessionDurationnumberAverage duration of sessions in seconds
data[].bounceRatenumberPercentage of sessions that were single-page with no interaction
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].newUsersintegerNumber of first-time users
data[].property_idstringGA4 property ID
data[].screenPageViewsintegerTotal number of screen or page views
data[].screenPageViewsPerSessionnumberAverage page views per session
data[].sessionsintegerTotal number of sessions
data[].sessionsPerUsernumberAverage number of sessions per user
data[].startDatestringStart date of the reporting period
data[].totalUsersintegerTotal number of unique users

Website Overview Context Store SQL Query​

Run a SQL query against website overview records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "website_overview",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.website_overview.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "website_overview",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Daily Active Users​

Daily Active Users List​

Returns daily active user counts (1-day active users) by date.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "daily_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.daily_active_users.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "daily_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter daily active users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "daily_active_users",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"active1DayUsers": 0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.daily_active_users.context_store_search(
query={"filter": {"eq": {"active1DayUsers": 0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "daily_active_users",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"active1DayUsers": 0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
active1DayUsersintegerNumber of distinct users active in the last 1 day
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
property_idstringGA4 property ID
startDatestringStart date of the reporting period
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].active1DayUsersintegerNumber of distinct users active in the last 1 day
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].property_idstringGA4 property ID
data[].startDatestringStart date of the reporting period

Daily Active Users Context Store SQL Query​

Run a SQL query against daily active users records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "daily_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.daily_active_users.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "daily_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Weekly Active Users​

Weekly Active Users List​

Returns weekly active user counts (7-day active users) by date.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "weekly_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.weekly_active_users.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "weekly_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter weekly active users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "weekly_active_users",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"active7DayUsers": 0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.weekly_active_users.context_store_search(
query={"filter": {"eq": {"active7DayUsers": 0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "weekly_active_users",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"active7DayUsers": 0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
active7DayUsersintegerNumber of distinct users active in the last 7 days
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
property_idstringGA4 property ID
startDatestringStart date of the reporting period
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].active7DayUsersintegerNumber of distinct users active in the last 7 days
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].property_idstringGA4 property ID
data[].startDatestringStart date of the reporting period

Weekly Active Users Context Store SQL Query​

Run a SQL query against weekly active users records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "weekly_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.weekly_active_users.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "weekly_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Four Weekly Active Users​

Four Weekly Active Users List​

Returns 28-day active user counts by date.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "four_weekly_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.four_weekly_active_users.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "four_weekly_active_users",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter four weekly active users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "four_weekly_active_users",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"active28DayUsers": 0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.four_weekly_active_users.context_store_search(
query={"filter": {"eq": {"active28DayUsers": 0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "four_weekly_active_users",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"active28DayUsers": 0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
active28DayUsersintegerNumber of distinct users active in the last 28 days
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
property_idstringGA4 property ID
startDatestringStart date of the reporting period
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].active28DayUsersintegerNumber of distinct users active in the last 28 days
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].property_idstringGA4 property ID
data[].startDatestringStart date of the reporting period

Four Weekly Active Users Context Store SQL Query​

Run a SQL query against four weekly active users records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "four_weekly_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.four_weekly_active_users.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "four_weekly_active_users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Traffic Sources​

Traffic Sources List​

Returns traffic source metrics broken down by session source, session medium, and date, including users, sessions, bounce rate, and page views.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "traffic_sources",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.traffic_sources.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "traffic_sources",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter traffic sources records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "traffic_sources",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"averageSessionDuration": 0.0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.traffic_sources.context_store_search(
query={"filter": {"eq": {"averageSessionDuration": 0.0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "traffic_sources",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"averageSessionDuration": 0.0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
averageSessionDurationnumberAverage duration of sessions in seconds
bounceRatenumberPercentage of sessions that were single-page with no interaction
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
newUsersintegerNumber of first-time users
property_idstringGA4 property ID
screenPageViewsintegerTotal number of screen or page views
screenPageViewsPerSessionnumberAverage page views per session
sessionMediumstringThe medium of the traffic source (e.g., organic, cpc, referral)
sessionSourcestringThe source of the traffic (e.g., google, direct)
sessionsintegerTotal number of sessions
sessionsPerUsernumberAverage number of sessions per user
startDatestringStart date of the reporting period
totalUsersintegerTotal number of unique users
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].averageSessionDurationnumberAverage duration of sessions in seconds
data[].bounceRatenumberPercentage of sessions that were single-page with no interaction
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].newUsersintegerNumber of first-time users
data[].property_idstringGA4 property ID
data[].screenPageViewsintegerTotal number of screen or page views
data[].screenPageViewsPerSessionnumberAverage page views per session
data[].sessionMediumstringThe medium of the traffic source (e.g., organic, cpc, referral)
data[].sessionSourcestringThe source of the traffic (e.g., google, direct)
data[].sessionsintegerTotal number of sessions
data[].sessionsPerUsernumberAverage number of sessions per user
data[].startDatestringStart date of the reporting period
data[].totalUsersintegerTotal number of unique users

Traffic Sources Context Store SQL Query​

Run a SQL query against traffic sources records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "traffic_sources",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.traffic_sources.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "traffic_sources",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Pages​

Pages List​

Returns page-level metrics including page views and bounce rate, broken down by host name, page path, and date.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "pages",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.pages.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "pages",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter pages records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "pages",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"bounceRate": 0.0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.pages.context_store_search(
query={"filter": {"eq": {"bounceRate": 0.0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "pages",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"bounceRate": 0.0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
bounceRatenumberPercentage of sessions that were single-page with no interaction
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
hostNamestringThe hostname of the page
pagePathPlusQueryStringstringThe page path and query string
property_idstringGA4 property ID
screenPageViewsintegerTotal number of screen or page views
startDatestringStart date of the reporting period
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].bounceRatenumberPercentage of sessions that were single-page with no interaction
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].hostNamestringThe hostname of the page
data[].pagePathPlusQueryStringstringThe page path and query string
data[].property_idstringGA4 property ID
data[].screenPageViewsintegerTotal number of screen or page views
data[].startDatestringStart date of the reporting period

Pages Context Store SQL Query​

Run a SQL query against pages records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "pages",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.pages.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "pages",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Devices​

Devices List​

Returns device-related metrics broken down by device category, operating system, browser, and date, including users, sessions, and page views.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "devices",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.devices.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "devices",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter devices records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "devices",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"averageSessionDuration": 0.0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.devices.context_store_search(
query={"filter": {"eq": {"averageSessionDuration": 0.0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "devices",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"averageSessionDuration": 0.0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
averageSessionDurationnumberAverage duration of sessions in seconds
bounceRatenumberPercentage of sessions that were single-page with no interaction
browserstringThe web browser used (e.g., Chrome, Safari, Firefox)
datestringDate of the report row in YYYYMMDD format
deviceCategorystringThe device category (desktop, mobile, tablet)
endDatestringEnd date of the reporting period
newUsersintegerNumber of first-time users
operatingSystemstringThe operating system used (e.g., Windows, iOS, Android)
property_idstringGA4 property ID
screenPageViewsintegerTotal number of screen or page views
screenPageViewsPerSessionnumberAverage page views per session
sessionsintegerTotal number of sessions
sessionsPerUsernumberAverage number of sessions per user
startDatestringStart date of the reporting period
totalUsersintegerTotal number of unique users
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].averageSessionDurationnumberAverage duration of sessions in seconds
data[].bounceRatenumberPercentage of sessions that were single-page with no interaction
data[].browserstringThe web browser used (e.g., Chrome, Safari, Firefox)
data[].datestringDate of the report row in YYYYMMDD format
data[].deviceCategorystringThe device category (desktop, mobile, tablet)
data[].endDatestringEnd date of the reporting period
data[].newUsersintegerNumber of first-time users
data[].operatingSystemstringThe operating system used (e.g., Windows, iOS, Android)
data[].property_idstringGA4 property ID
data[].screenPageViewsintegerTotal number of screen or page views
data[].screenPageViewsPerSessionnumberAverage page views per session
data[].sessionsintegerTotal number of sessions
data[].sessionsPerUsernumberAverage number of sessions per user
data[].startDatestringStart date of the reporting period
data[].totalUsersintegerTotal number of unique users

Devices Context Store SQL Query​

Run a SQL query against devices records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "devices",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.devices.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "devices",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds

Locations​

Locations List​

Returns geographic metrics broken down by region, country, city, and date, including users, sessions, bounce rate, and page views.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "locations",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Python SDK​

await google_analytics_data_api.locations.list(
property_id="<str>"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "locations",
"action": "list",
"params": {
"property_id": "<str>"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
dateRangesarray<object>NoDate ranges of data to read, in YYYY-MM-DD or relative format (e.g., 30daysAgo, today). Defaults to the last 30 days.
dateRanges.startDatestringNoStart date in YYYY-MM-DD format or relative (e.g., 30daysAgo)
dateRanges.endDatestringNoEnd date in YYYY-MM-DD format or relative (e.g., today)
dimensionsarray<object>NoGA4 dimensions to group results by. Defaults match the equivalent Data Replication report.
dimensions.namestringNoGA4 API dimension name (e.g., date, country, deviceCategory)
metricsarray<object>NoGA4 metrics to aggregate. Defaults match the equivalent Data Replication report.
metrics.namestringNoGA4 API metric name (e.g., totalUsers, sessions, bounceRate)
keepEmptyRowsbooleanNoIf false, rows whose metrics are all zero are omitted from the response.
returnPropertyQuotabooleanNoWhether to include the Analytics property's current quota state in the response.
limitintegerNoMaximum number of rows to return (the GA4 API caps a single request at 250,000 rows).
property_idstringYesGA4 property ID
Response Schema

Records​

Field NameTypeDescription
dimensionValuesarray<object>
dimensionValues[].valuestring
metricValuesarray<object>
metricValues[].valuestring

Meta​

Field NameTypeDescription
row_countinteger

Search and filter locations records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "locations",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"averageSessionDuration": 0.0
}
}
}
}
}'

Python SDK​

await google_analytics_data_api.locations.context_store_search(
query={"filter": {"eq": {"averageSessionDuration": 0.0}}}
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "locations",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"averageSessionDuration": 0.0}}}
}
}'

Parameters​

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's meta.cursor
fieldsarrayNoField paths to include in results

Searchable Fields​

Field NameTypeDescription
averageSessionDurationnumberAverage duration of sessions in seconds
bounceRatenumberPercentage of sessions that were single-page with no interaction
citystringThe city of the user
countrystringThe country of the user
datestringDate of the report row in YYYYMMDD format
endDatestringEnd date of the reporting period
newUsersintegerNumber of first-time users
property_idstringGA4 property ID
regionstringThe region (state/province) of the user
screenPageViewsintegerTotal number of screen or page views
screenPageViewsPerSessionnumberAverage page views per session
sessionsintegerTotal number of sessions
sessionsPerUsernumberAverage number of sessions per user
startDatestringStart date of the reporting period
totalUsersintegerTotal number of unique users
Response Schema
Field NameTypeDescription
dataarrayList of matching records
metaobjectPagination metadata
meta.has_morebooleanWhether additional pages are available
meta.cursorstring | nullCursor for next page of results
meta.took_msnumber | nullQuery execution time in milliseconds
data[].averageSessionDurationnumberAverage duration of sessions in seconds
data[].bounceRatenumberPercentage of sessions that were single-page with no interaction
data[].citystringThe city of the user
data[].countrystringThe country of the user
data[].datestringDate of the report row in YYYYMMDD format
data[].endDatestringEnd date of the reporting period
data[].newUsersintegerNumber of first-time users
data[].property_idstringGA4 property ID
data[].regionstringThe region (state/province) of the user
data[].screenPageViewsintegerTotal number of screen or page views
data[].screenPageViewsPerSessionnumberAverage page views per session
data[].sessionsintegerTotal number of sessions
data[].sessionsPerUsernumberAverage number of sessions per user
data[].startDatestringStart date of the reporting period
data[].totalUsersintegerTotal number of unique users

Locations Context Store SQL Query​

Run a SQL query against locations records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.

Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.

CLI​

airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "google-analytics-data-api",
"entity": "locations",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Python SDK​

await google_analytics_data_api.locations.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)

API​

curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "locations",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'

Parameters​

Parameter NameTypeRequiredDescription
sqlstringYesSQL query to execute against this entity's Context Store data
limitintegerNoMaximum results to return
Response Schema
Field NameTypeDescription
dataarrayProjected rows, with dictionary keys matching the selected columns
metaobjectQuery metadata
meta.has_morebooleanWhether the result was limited and more rows are available
meta.cursornullSQL query results do not use cursor pagination
meta.took_msnumber | nullQuery execution time in milliseconds