Get daily views
curl --request GET \
--url https://api.yousonder.com/v1/stats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.yousonder.com/v1/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yousonder.com/v1/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"start_date": "2026-09-14",
"end_date": "2026-09-16",
"breakdown": "daily",
"timezone": "UTC",
"group_by": "video",
"data": [
{
"video": {
"id": "9f3c2a71-4b6e-4d8a-a1c5-7e2b9d0f3a64",
"title": "Your kid isn't lazy. They're exhausted.",
"book": {
"id": "5b1d7c2e-8f0a-4c1b-9d3e-2a6f4b8c9e01",
"title": "The Quiet Hours"
},
"posted_at": "2026-09-14T17:02:11.000Z"
},
"days": [
{
"date": "2026-09-14",
"views": 2210,
"views_total": 2210,
"is_viral": false,
"went_viral": false
},
{
"date": "2026-09-15",
"views": 31480,
"views_total": 33690,
"is_viral": true,
"went_viral": true
},
{
"date": "2026-09-16",
"views": 14523,
"views_total": 48213,
"is_viral": true,
"went_viral": false
}
]
}
]
}{
"success": false,
"error": {
"code": "invalid_parameter",
"message": "start_date must be a date written YYYY-MM-DD, for example 2026-09-01."
}
}{
"success": false,
"error": {
"code": "invalid_api_key",
"message": "That API key is not valid. Check it was copied in full, or create a new one in Sonder under Settings → API keys."
}
}{
"success": false,
"error": {
"code": "plan_inactive",
"message": "This Sonder account doesn't have an active plan, so its data isn't shared. The key works again as soon as the plan is active."
}
}{
"success": false,
"error": {
"code": "rate_limited",
"message": "Too many requests. Each key allows 60 a minute; try again after the time in the Retry-After header."
}
}Views
Get daily views
Views gained each day, per video or per book, with a flag for the day each video went viral. Days are UTC. Only videos that gained views (or went viral) in the range are included, so a quiet week returns an empty list.
GET
/
stats
Get daily views
curl --request GET \
--url https://api.yousonder.com/v1/stats \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.yousonder.com/v1/stats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.yousonder.com/v1/stats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"start_date": "2026-09-14",
"end_date": "2026-09-16",
"breakdown": "daily",
"timezone": "UTC",
"group_by": "video",
"data": [
{
"video": {
"id": "9f3c2a71-4b6e-4d8a-a1c5-7e2b9d0f3a64",
"title": "Your kid isn't lazy. They're exhausted.",
"book": {
"id": "5b1d7c2e-8f0a-4c1b-9d3e-2a6f4b8c9e01",
"title": "The Quiet Hours"
},
"posted_at": "2026-09-14T17:02:11.000Z"
},
"days": [
{
"date": "2026-09-14",
"views": 2210,
"views_total": 2210,
"is_viral": false,
"went_viral": false
},
{
"date": "2026-09-15",
"views": 31480,
"views_total": 33690,
"is_viral": true,
"went_viral": true
},
{
"date": "2026-09-16",
"views": 14523,
"views_total": 48213,
"is_viral": true,
"went_viral": false
}
]
}
]
}{
"success": false,
"error": {
"code": "invalid_parameter",
"message": "start_date must be a date written YYYY-MM-DD, for example 2026-09-01."
}
}{
"success": false,
"error": {
"code": "invalid_api_key",
"message": "That API key is not valid. Check it was copied in full, or create a new one in Sonder under Settings → API keys."
}
}{
"success": false,
"error": {
"code": "plan_inactive",
"message": "This Sonder account doesn't have an active plan, so its data isn't shared. The key works again as soon as the plan is active."
}
}{
"success": false,
"error": {
"code": "rate_limited",
"message": "Too many requests. Each key allows 60 a minute; try again after the time in the Retry-After header."
}
}Authorizations
An API key from Sonder → Settings → API keys, like sonder_live_….
Query Parameters
First day, YYYY-MM-DD (UTC). Defaults to 6 days before end_date.
Last day, YYYY-MM-DD (UTC). Defaults to today. At most 90 days after start_date.
Only daily today.
Available options:
daily video for one row per video, book to add up each book’s videos.
Available options:
video, book Only this book’s videos.
Response
Daily views.
Allowed value:
"daily"Allowed value:
"UTC"Available options:
video, book - Option 1 · object[]
- Option 2 · object[]
Show child attributes
Show child attributes