Google Analytics

Landing sessions

GET
/v1/google-analytics/landing-sessions

GA4 sessions of the period by default channel group and by landing page, with the previous window (the same number of days right before the period) per channel group. Reads google_analytics_sessions_by_landing, where a session has exactly one landing page, so the sums are not inflated by the pages a session touched. The bounce rate is derived over the summed counts: (1 - engaged sessions / sessions) * 100. Aggregates only. A period without data answers 200 with zeroed totals, bounceRate: null and empty lists. Both dates are required; the period spans at most 366 days. Made for the audit, with the access of the by-device routes: only a Bearer token of kind user or oaclient (see 403). An environment where google_analytics_sessions_by_landing does not exist yet answers like a period without data. Cached for 30 minutes.

Authorization

ClientIdAuthClientSecretAuth
headerx-client-id<token>

Client ID

headerx-client-secret<token>

Client secret

Query Parameters

organizationId*string

Organization identifier (UUID, required)

Formatuuid
startDate*string

First day of the period, inclusive (YYYY-MM-DD, UTC). Required.

Formatdate
endDate*string

Last day of the period, inclusive (YYYY-MM-DD, UTC). Required. At most 366 days from startDate.

Formatdate

Response Body

Successful response

application/json
  1. response
period*
previousPeriod*

The same number of days right before the period.

totals*
previousTotals*
byChannelGroup*array<>

Period total per default channel group, most sessions first. A group seen only in the previous window comes with zeroed counts.

byLandingPage*array<>

The 10 landing paths with more sessions in the period, most sessions first.

curl -X GET "https://example.com/v1/google-analytics/landing-sessions?organizationId=11111111-1111-4111-8111-111111111111&startDate=2026-10-01&endDate=2026-10-02"
{  "period": {    "startDate": "2026-10-01",    "endDate": "2026-10-02"  },  "previousPeriod": {    "startDate": "2026-09-29",    "endDate": "2026-09-30"  },  "totals": {    "sessions": 1000,    "engagedSessions": 600,    "bounceRate": 40  },  "previousTotals": {    "sessions": 800,    "engagedSessions": 400,    "bounceRate": 50  },  "byChannelGroup": [    {      "channelGroup": "Organic Search",      "sessions": 700,      "engagedSessions": 450,      "bounceRate": 35.71,      "previousSessions": 500    },    {      "channelGroup": "Paid Search",      "sessions": 300,      "engagedSessions": 150,      "bounceRate": 50,      "previousSessions": 300    }  ],  "byLandingPage": [    {      "landingPage": "/",      "sessions": 600,      "engagedSessions": 360,      "bounceRate": 40    },    {      "landingPage": "/servicos",      "sessions": 400,      "engagedSessions": 240,      "bounceRate": 40    }  ]}