curl --request GET \
--url https://api.example.com/api/websites/:id/retention{
"data": {
"granularity": "<string>",
"max_periods": 123,
"rows": [
{
"cohort_start": "<string>",
"cohort_size": 123,
"periods": [
{
"offset": 123,
"retained": 123,
"rate": 123
}
]
}
],
"summary": {
"avg_period1_rate": 123,
"avg_period4_rate": 123
}
}
}Retrieve cohort retention analysis showing how many visitors return over time, grouped by their first visit date.
curl --request GET \
--url https://api.example.com/api/websites/:id/retention{
"data": {
"granularity": "<string>",
"max_periods": 123,
"rows": [
{
"cohort_start": "<string>",
"cohort_size": 123,
"periods": [
{
"offset": 123,
"retained": 123,
"rate": 123
}
]
}
],
"summary": {
"avg_period1_rate": 123,
"avg_period4_rate": 123
}
}
}YYYY-MM-DD format.YYYY-MM-DD format.day, week, or month.day: 30 (max: 30)week: 8 (max: 12)month: 12 (max: 12)America/New_York). Required for accurate cohort boundary calculations.day, week, or month.YYYY-MM-DD format.curl -X GET "https://analytics.example.com/api/websites/abc123/retention?start_date=2024-01-01&end_date=2024-03-07&cohort_granularity=week&max_periods=8&timezone=America/New_York" \
-H "Authorization: Bearer spk_live_your_api_key"
{
"data": {
"granularity": "week",
"max_periods": 8,
"rows": [
{
"cohort_start": "2024-01-01",
"cohort_size": 1823,
"periods": [
{ "offset": 0, "retained": 1823, "rate": 100.0 },
{ "offset": 1, "retained": 542, "rate": 29.7 },
{ "offset": 2, "retained": 321, "rate": 17.6 },
{ "offset": 3, "retained": 234, "rate": 12.8 },
{ "offset": 4, "retained": 198, "rate": 10.9 },
{ "offset": 5, "retained": 176, "rate": 9.7 },
{ "offset": 6, "retained": 154, "rate": 8.4 },
{ "offset": 7, "retained": 142, "rate": 7.8 }
]
},
{
"cohort_start": "2024-01-08",
"cohort_size": 2104,
"periods": [
{ "offset": 0, "retained": 2104, "rate": 100.0 },
{ "offset": 1, "retained": 623, "rate": 29.6 },
{ "offset": 2, "retained": 389, "rate": 18.5 },
{ "offset": 3, "retained": 271, "rate": 12.9 },
{ "offset": 4, "retained": 223, "rate": 10.6 },
{ "offset": 5, "retained": 192, "rate": 9.1 },
{ "offset": 6, "retained": 168, "rate": 8.0 },
{ "offset": 7, "retained": 0, "rate": 0.0 }
]
},
{
"cohort_start": "2024-01-15",
"cohort_size": 1954,
"periods": [
{ "offset": 0, "retained": 1954, "rate": 100.0 },
{ "offset": 1, "retained": 571, "rate": 29.2 },
{ "offset": 2, "retained": 342, "rate": 17.5 },
{ "offset": 3, "retained": 248, "rate": 12.7 },
{ "offset": 4, "retained": 209, "rate": 10.7 },
{ "offset": 5, "retained": 183, "rate": 9.4 },
{ "offset": 6, "retained": 0, "rate": 0.0 },
{ "offset": 7, "retained": 0, "rate": 0.0 }
]
}
],
"summary": {
"avg_period1_rate": 29.5,
"avg_period4_rate": 10.7
}
}
}
Retry-After: 2 header if query times outcohort_start date aligns to the start of the granularity period (Monday for weeks, 1st for months)