Breakdowns
Traffic source, page, country, device, browser, OS, and referrer breakdown endpoints.
Breakdowns
Seven breakdown endpoints share the same response shape. Each returns dimension values ranked by visitors, along with traffic and conversion metrics.
Scope: analytics:read
Endpoints
GET /api/v1/channels
Traffic source — Paid Social, Organic Search, Direct, etc.
GET /api/v1/pages
Page path — top landing and content pages.
GET /api/v1/countries
Country code — ISO 3166-1 alpha-2.
GET /api/v1/devices
Device type — desktop, mobile, tablet.
GET /api/v1/browsers
Browser name — Chrome, Safari, Firefox, etc.
GET /api/v1/os
Operating system — Windows, macOS, iOS, Android, etc.
GET /api/v1/referrers
Referrer domain — the site that sent the visitor.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
date_from | string | Yes | Start date in YYYY-MM-DD format. |
date_to | string | Yes | End date in YYYY-MM-DD format. |
limit | number | No | Maximum results to return. Default 10, max 100. |
filter[dimension] | string | No | Filter by any supported dimension. See Filtering below. |
Request
All seven endpoints accept the same parameters and return the same shape. The
examples below use /api/v1/channels.
curl -H "Authorization: Bearer atb_live_YOUR_KEY" \
"https://www.atribu.app/api/v1/channels?date_from=2026-03-01&date_to=2026-03-25&limit=5"const res = await fetch(
"https://www.atribu.app/api/v1/channels?date_from=2026-03-01&date_to=2026-03-25&limit=5",
{ headers: { Authorization: "Bearer atb_live_YOUR_KEY" } }
);
const { data, meta } = await res.json();import requests
res = requests.get(
"https://www.atribu.app/api/v1/channels",
headers={"Authorization": "Bearer atb_live_YOUR_KEY"},
params={"date_from": "2026-03-01", "date_to": "2026-03-25", "limit": 5},
)
data = res.json()["data"]Response
{
"data": [
{
"value": "Paid Social",
"visitors": 3200,
"visits": 4100,
"pageviews": 12500,
"bounce_rate": 38.5,
"conversions": 85,
"conversion_rate": 2.07,
"revenue": 8500.00
},
{
"value": "Organic Search",
"visitors": 2100,
"visits": 2800,
"pageviews": 7200,
"bounce_rate": 48.2,
"conversions": 32,
"conversion_rate": 1.14,
"revenue": 3200.00
}
],
"meta": {
"date_from": "2026-03-01",
"date_to": "2026-03-25",
"profile_id": "uuid"
}
}Response fields
| Field | Type | Description |
|---|---|---|
value | string | The dimension value (channel name, page path, country code, etc.). |
visitors | number | Unique visitors. |
visits | number | Total sessions (visits). |
pageviews | number | Total page views. |
bounce_rate | number | Percentage of single-page sessions. |
conversions | number | Total conversions attributed to this dimension value. |
conversion_rate | number | Conversions divided by visitors, as a percentage. |
revenue | number | Attributed cash revenue in your reporting currency. |
Filtering
Apply filters to any breakdown endpoint using the filter[dimension]=operator:value
query parameter syntax. Multiple filters can be combined.
curl -H "Authorization: Bearer atb_live_YOUR_KEY" \
"https://www.atribu.app/api/v1/countries?date_from=2026-03-01&date_to=2026-03-25&filter[channel]=is:Paid+Social"const url = new URL("https://www.atribu.app/api/v1/countries");
url.searchParams.set("date_from", "2026-03-01");
url.searchParams.set("date_to", "2026-03-25");
url.searchParams.set("filter[channel]", "is:Paid Social");
const res = await fetch(url, {
headers: { Authorization: "Bearer atb_live_YOUR_KEY" },
});res = requests.get(
"https://www.atribu.app/api/v1/countries",
headers={"Authorization": "Bearer atb_live_YOUR_KEY"},
params={
"date_from": "2026-03-01",
"date_to": "2026-03-25",
"filter[channel]": "is:Paid Social",
},
)Supported operators
| Operator | Description | Example |
|---|---|---|
is | Exact match. | filter[country]=is:US |
is_not | Exclude exact match. | filter[device]=is_not:desktop |
contains | Substring match (case-insensitive). | filter[page]=contains:/pricing |
not_contains | Exclude substring match (case-insensitive). | filter[referrer]=not_contains:spam |
Available filter dimensions
channel, referrer, campaign, page, entry_page, country, region,
city, browser, os, device, goal.
Filters apply across endpoints
Filters work identically on all seven breakdown endpoints as well as on
the Timeseries endpoint. For example,
filter[channel]=is:Direct on /api/v1/pages shows only pages visited
by direct traffic.