Skip to content

MSOOCast LLC is opening U.S. operations. We're scheduling launch consultations for FAST, OTT, and IPTV channels now. Book a consultation

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 and conventions
AuthenticationOAuth 2.0 client credentials. Tokens are scoped to an environment and a role.
FormatJSON over HTTPS. Timestamps in UTC, ISO 8601. Durations in seconds.
VersioningVersion in the path (/v1). Breaking changes ship as a new version with notice.
IdempotencySend an Idempotency-Key header on create requests to make retries safe.
WebhooksSigned with HMAC-SHA256. Retried with exponential backoff.
Illustrative
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"
}
Illustrative
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.

Objects
ObjectWhat it isFields
ChannelA branded linear channel: schedule, graphics, break structure, and destinations.id, name, status, timezone, break_policy
SourceA library title or live input that can be scheduled or switched to.id, type, uri, protocol, backup_uri
ScheduleBlocks, playlists, and live windows that define what airs and when.id, channel_id, items[], rules[]
DeskProgram, preview, and failover state for a live event.id, program_source, preview_source, state
BreakAn ad break with its SCTE-35 signal and duration.id, channel_id, start, duration, scte35
DecisionThe pod chosen for a break, with the winning demand and the rule that allowed it.id, break_id, ads[], fill, rules_applied[]
DestinationA FAST platform, app, headend, or property that receives the channel.id, type, profile, health
SessionOne 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.