Guide
Pagination & filtering
GET /v1/registry/origins pages over canonical origins — never over carriage rows. An origin with many presentations still occupies exactly one row and can never be split across pages.
Paging
| Parameter | Default | Notes |
|---|---|---|
page | 1 | 1-based page number. |
limit | 50 | Origins per page, 1–200. |
Each response carries a page block with the pre-pagination total:
"page": { "page": 1, "limit": 50, "offset": 0, "returned": 21, "total": 21 }
Ordering is stable (by network address, then origin id), so a sequential sweep covers every origin exactly once — no duplicates, no omissions.
curl -H "Authorization: Bearer <token>" \
"https://api.os.tv/v1/registry/origins?page=1&limit=50"
Filters
Filters compose (AND). Each maps to an authoritative predicate — none are inferred.
| Filter | Values | Selects |
|---|---|---|
governance_state | governed · ungoverned | By active governance edge. |
allocation_state | allocated · unallocated | Whether a BANS allocation exists. |
publication_status | published · held | Allocation publication state. |
transport | iptv · ovp · ota · fast | Origins with a resolved presentation on that transport. |
has_presentations | true · false | Whether any carriage resolves to the origin. |
network_id | id | Origins under one network. |
station_id | station number | Origins addressed to one station. |
search | text | Substring match on origin name or registry id. |
The applied filters are echoed back under filters_applied.
curl -H "Authorization: Bearer <token>" \
"https://api.os.tv/v1/registry/origins?governance_state=governed&publication_status=held"
See the full list example.