HTTP API
Analytics API
Read your own data programmatically — pipe metrics into Looker, BigQuery, or your own internal dashboards.
Base URL
text
https://api.tapemetric.comAuthentication
JWT bearer token from POST /v1/auth/login. Tokens expire in 24h. For scripted access, create a service-account JWT in settings with a 90-day expiry.
GET /v1/analytics/overview
Top-line KPIs with week-over-week deltas.
bash
curl "https://api.tapemetric.com/v1/analytics/overview?range=7d" \
-H "Authorization: Bearer eyJhbGci..."json
{
"monthly_active_users": 8420000,
"watch_hours": 94700000,
"paid_subscribers": 1860000,
"arpu_inr": 187,
"churn_pct": 3.1,
"wow_delta": { "mau": 12.4, "watch_hours": 8.1, "subs": 3.2, "revenue": 5.8 }
}Query params: range = 24h | 7d | 30d | qtd.
GET /v1/analytics/concurrency
Time-series of concurrent viewers.
bash
curl "https://api.tapemetric.com/v1/analytics/concurrency?range=24h&interval=15" \
-H "Authorization: Bearer ..."json
{
"interval_minutes": 15,
"points": [
{ "ts": "2026-04-23T00:00:00Z", "value": 22100 },
{ "ts": "2026-04-23T00:15:00Z", "value": 18400 }
],
"peak": 184220,
"peak_at": "2026-04-22T21:30:00Z"
}GET /v1/analytics/top-content
bash
curl "https://api.tapemetric.com/v1/analytics/top-content?range=7d&limit=10" \
-H "Authorization: Bearer ..."json
[
{
"content_id": "aashiqana_s04",
"title": "Aashiqana · S4",
"content_type": "series",
"watch_hours": 14200000,
"completion_pct": 86.4,
"unique_viewers": 1240000
}
]GET /v1/analytics/geo
Viewership by region (state-level for India).
json
[
{ "region": "Maharashtra", "watch_hours": 17400000, "viewers": 1680000, "share_pct": 18.4 }
]GET /v1/analytics/devices
json
[
{ "device": "tv", "sessions": 5840000, "share_pct": 42 },
{ "device": "mobile", "sessions": 5010000, "share_pct": 36 }
]GET /v1/analytics/alerts
json
[
{
"id": 1,
"severity": "critical",
"source": "qos",
"title": "Rebuffer spike · Mumbai edge",
"description": "Rebuffer ratio 3.1% -> 8.4% on ap-south-1 PoP",
"acknowledged": false,
"created_at": "2026-04-23T18:28:00Z"
}
]Pagination
List endpoints accept limit (max 200) and offset.
Rate limits
300 requests / minute per JWT. Use the bulk export endpoint for large pulls.
Bulk export
For data-warehouse syncs, use POST /v1/analytics/export to request a signed S3 URL to a Parquet file of raw events for a date range. Enterprise plans only.