CDN

Your organization’s CDN delivers your uploaded videos from its own domain. The StreamOS team sets it up; these endpoints let you read its state and the traffic it served.

Read-only. Setting up the CDN, its domain, SSL, and turning it off or on are done by the StreamOS team. Videos you upload are sent with your CDN domain automatically while the CDN is active — there is nothing to pass yourself. Live streams do not go through the CDN.

Get your CDN

GET/api/public/v1/cdn/

Needs the view_video permission. cdn is null when your organization has no CDN yet.

curl
curl https://api.streamos.in/api/public/v1/cdn/ \
  -H 'Authorization: Bearer sk_live_…'

Response — data.cdn

KeyTypeSampleDescription
cdn_idoptionalstringacme-cdn-1Your CDN’s name.
statusoptionalstringactivepending, provisioning, awaiting_domain, active or failed. Only active serves traffic.
domainoptionalstring | nullacme.streamos.mediaThe domain your videos are delivered from, once active.
revokedoptionalbooleanfalsetrue while the CDN is turned off — for example when the plan has lapsed unpaid. It turns back on once the plan is paid.
revoked_byoptionalstring | nullplan_lapsedWhy it is off: admin or plan_lapsed. Null while on.
ssloptionalbooleantrueWhether SSL (HTTPS) is attached to the domain.
ssl_statusoptionalstring | null…/certificates/streamos-media-wildcard-certThe certificate in use, once SSL is attached.
ipv4, ipv6optionalstring | null34.153.10.98The CDN’s addresses, once provisioned.
erroroptionalstring | nullnullSet when setup failed. Contact StreamOS support if you see it.

Get CDN usage

GET/api/public/v1/cdn/usage/

Needs the view_invoice permission — the same as the rest of your usage. One entry per UTC day.

Query

KeyTypeSampleDescription
fromoptionalstring2026-10-01First day, YYYY-MM-DD. Defaults to 29 days before to.
tooptionalstring2026-10-31Last day, inclusive. Defaults to today. At most 366 days.
curl
curl 'https://api.streamos.in/api/public/v1/cdn/usage/?from=2026-10-01&to=2026-10-31' \
  -H 'Authorization: Bearer sk_live_…'

Response — data.usage.days[]

KeyTypeSampleDescription
dayoptionalstring2026-10-05The UTC day.
bandwidth_bytesoptionalstring"29573125533"Bytes delivered, as a decimal string.
requestsoptionalstring"221184"Requests served, as a decimal string.
cache_breakdownoptionalobject{"HIT": 161668, "MISS": 14819}Requests by cache result.
requests_by_regionoptionalobject{"India": 151193}Requests by region.
requests_by_continentoptionalobject{"Asia": 161453}Requests by continent.
Usage is collected once a night, so a day appears the following night. A missing day means it has not been collected yet — not that there was no traffic.