Developers
API reference
Everything in the console is available through a REST API and webhooks, so channels, schedules, and breaks can be driven from your own systems. Credentials and endpoint hosts are issued per deployment.
Authentication and conventions
| Authentication | OAuth 2.0 client credentials. Tokens are scoped to an environment and a role. |
|---|---|
| Format | JSON over HTTPS. Timestamps in UTC, ISO 8601. Durations in seconds. |
| Versioning | Version in the path (/v1). Breaking changes ship as a new version with notice. |
| Idempotency | Send an Idempotency-Key header on create requests to make retries safe. |
| Webhooks | Signed with HMAC-SHA256. Retried with exponential backoff. |
POST /v1/channels/ch_harbor_sports/breaks
Authorization: Bearer <access_token>
Content-Type: application/json
{
"duration": 120,
"segmentation_type": "provider_placement_opportunity",
"source": "live_desk",
"note": "Timeout, Q2"
}HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "brk_7Q2M4K",
"channel_id": "ch_harbor_sports",
"status": "scheduled",
"start": "2026-10-21T14:03:00.000Z",
"duration": 120,
"scte35": {
"command": "time_signal",
"segmentation_type_id": "0x34",
"segmentation_event_id": "0x4800008e"
}
}Objects
The control plane models the television business: the channel, the source, the break, and the screen.
| Object | What it is | Fields |
|---|---|---|
| Channel | A branded linear channel: schedule, graphics, break structure, and destinations. | id, name, status, timezone, break_policy |
| Source | A library title or live input that can be scheduled or switched to. | id, type, uri, protocol, backup_uri |
| Schedule | Blocks, playlists, and live windows that define what airs and when. | id, channel_id, items[], rules[] |
| Desk | Program, preview, and failover state for a live event. | id, program_source, preview_source, state |
| Break | An ad break with its SCTE-35 signal and duration. | id, channel_id, start, duration, scte35 |
| Decision | The pod chosen for a break, with the winning demand and the rule that allowed it. | id, break_id, ads[], fill, rules_applied[] |
| Destination | A FAST platform, app, headend, or property that receives the channel. | id, type, profile, health |
| Session | One viewer session, used for delivery, quality, and proof-of-play reporting. | id, destination_id, ads_delivered, qos |
Webhook events
channel.on_air
A channel started playing out.
channel.off_air
A channel stopped, planned or not.
input.failover
A live source switched to its backup or to slate.
break.started
A break opened on a channel.
break.ended
A break closed and the program resumed.
cue.rejected
An incoming SCTE-35 cue failed validation.
decision.completed
A pod was built for a break.
destination.unhealthy
A destination stopped receiving a valid stream.
report.ready
A scheduled export finished.
Note
Examples on this page are illustrative. The full reference, with every endpoint and field, is in the console for each deployment.