Appearance
Queries
All reads start from the single root query, property. Send your app key in the X-App-Key header. For the shape of every type returned here, see Types.
property - the root query
graphql
property(id: ID!): Property!Returns the Property your app key is configured for. Returns a NOT_FOUND error when id is not in your key's accessible set (no existence leak). The explicit id argument is forward-compatible with keys that will later grant access to multiple properties.
graphql
query Property($id: ID!) {
property(id: $id) {
id
name
}
}json
{ "id": "<your-property-id>" }Property → brands → seasons → episodes
Walk the full content tree in one request. Every list field is paginated.
graphql
query Launch($id: ID!) {
property(id: $id) {
name
brands(limit: 20) {
total
items {
title
code
coverUrl
seasons(limit: 20) {
items {
title
episodes(limit: 50) {
total
items {
title
status # READY | PROCESSING
playbackUrl
coverUrl
}
}
}
}
}
}
}
}json
{ "id": "<your-property-id>" }Live streams
graphql
query Streams($id: ID!) {
property(id: $id) {
streams(limit: 50) {
total
items {
title
status # LIVE | OFFLINE
playbackUrl
coverUrl
}
}
}
}OFFLINE streams stay in the list so your UI can show a channel-offline state. See Playback & images for how to treat playbackUrl and status.
Pagination
Every list field (brands, seasons, episodes, streams) takes limit and offset:
| Argument | Default | Notes |
|---|---|---|
limit | 50 | Maximum 200. A larger value returns BAD_REQUEST (no silent clamping) |
offset | 0 |
graphql
brands(limit: 25, offset: 50) { total items { title } }total is the count of all matching rows (ignoring limit/offset) and is computed only when you select it - omit it if you do not need it.