Skip to main content
POST

Authorizations

Authorization
string
header
required

Integration credential (playback) with ingest:write. Send Authorization: Bearer <token>. Sending the rtm_ token alone without Bearer returns 401. In an API client's Bearer token field, enter only the raw rtm_ token; the client adds the prefix.

Query Parameters

stationId
string

Station ID associated with your credential. Send this or stationSlug, not both.

Required string length: 1 - 80
stationSlug
string

Public station slug from the station settings; distinct from the internal station ID.

Required string length: 3 - 63

Body

application/json
eventId
string

Stable source event identifier for deduplicating retries of the same observation.

Required string length: 1 - 100
Example:

"automation-rivier-20261005-080000"

observedAt
integer

Source observation time as Unix milliseconds (not seconds). Omit when the encoder cannot supply it.

Required range: 0 <= x <= 8640000000000000
Example:

1791187200000

artist
string

Artist reported by external automation.

Required string length: 1 - 500
Example:

"The Riverlights"

title
string

Human-readable title. Track titles come from external automation.

Required string length: 1 - 500
Example:

"Morning Sun"

streamTitle
string

Encoder stream title, usually Artist - Title. Without a separator, the whole string is stored as the title.

Required string length: 1 - 1001
album
string

Reported album; null when unknown in listener responses.

Required string length: 1 - 500
Example:

"Open Water"

sourceTrackId
string

Optional track identifier in the automation library. Omitted from listener responses.

Required string length: 1 - 120
Example:

"library-track-4821"

artworkUrl
string<uri>

Artwork URL when available. May be omitted; do not assume every track has artwork.

Required string length: 1 - 2048
durationSeconds
integer | null

Reported track duration in seconds; null when unknown.

Required range: 0 <= x <= 86400
Example:

210

duration
integer | null

Legacy alias of durationSeconds. If both are provided, their values must match.

Required range: 0 <= x <= 86400
isPlaying
boolean
default:true

Whether the automation observation reports the track as playing.

Example:

true

Response

Observation outcome

accepted
boolean
required

Whether the ingest/follow result was accepted. Inspect outcome for the detailed result.

Example:

true

outcome
enum<string>
required

Ingest or rundown-follow result. Observations do not control audio playback.

Available options:
no-live-broadcast,
on-air-not-following-rundown,
not-playing,
rejected,
recorded,
matched,
uncertain,
ignored
Example:

"recorded"