Query retention and frequency data
curl --request GET \
--url https://mixpanel.com/api/query/retention{
"data": {
"counts": [
{}
],
"first": 123
}
}Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mixpanel/docs/llms.txt
Use this file to discover all available pages before exploring further.
YYYY-MM-DD formatYYYY-MM-DD formatbirth (first time retention) or compounded (recurring retention)Default: birthretention_type is birth.1.1.day, week, monthDefault: daytrue, day N equals users who retained on day N and any day after.Default: falsecurl "https://mixpanel.com/api/query/retention?project_id=123&from_date=2024-01-01&to_date=2024-01-31&retention_type=birth&born_event=Signed%20Up&event=App%20Open" \
-u SERVICE_ACCOUNT_USERNAME:SERVICE_ACCOUNT_SECRET
{
"2024-01-01": {
"counts": [50, 45, 42, 40, 38],
"first": 50
},
"2024-01-02": {
"counts": [75, 68, 63, 59, 55],
"first": 75
},
"2024-01-03": {
"counts": [60, 55, 51, 48, 45],
"first": 60
}
}
import requests
from requests.auth import HTTPBasicAuth
def calculate_retention_rates(project_id):
"""Calculate Day 1, Day 7, Day 30 retention rates"""
response = requests.get(
'https://mixpanel.com/api/query/retention',
auth=HTTPBasicAuth('USERNAME', 'SECRET'),
params={
'project_id': project_id,
'from_date': '2024-01-01',
'to_date': '2024-01-31',
'retention_type': 'birth',
'born_event': 'Signed Up',
'event': 'App Open',
'interval_count': 30
}
)
data = response.json()
# Calculate average retention rates
day1_rates = []
day7_rates = []
day30_rates = []
for date, cohort in data.items():
first = cohort['first']
counts = cohort['counts']
if len(counts) > 0:
day1_rates.append(counts[0] / first)
if len(counts) > 6:
day7_rates.append(counts[6] / first)
if len(counts) > 29:
day30_rates.append(counts[29] / first)
print(f"Day 1 Retention: {sum(day1_rates)/len(day1_rates):.1%}")
print(f"Day 7 Retention: {sum(day7_rates)/len(day7_rates):.1%}")
print(f"Day 30 Retention: {sum(day30_rates)/len(day30_rates):.1%}")
calculate_retention_rates(123)
curl --request GET \
--url https://mixpanel.com/api/query/retention{
"data": {
"counts": [
{}
],
"first": 123
}
}