Skip to content

Field Catalog

Hails edited this page Jun 28, 2026 · 1 revision

Field Catalog

To preview every field with live values from your station (no Discord credentials required), run:

DRY_RUN=1 node sync.js

To regenerate the table below from the catalog, run npm run fields.

The service maps a wide slice of the AzuraCast public API. Fields are grouped by category; the history_N_* and request_N_* sets scale with HISTORY_DEPTH / REQUESTS_DEPTH (default 4 each).

Available data fields

Data Field Type Group Description
track_title Text now_playing Currently playing track title ("Off Air" when offline)
artist Text now_playing Artist name, prefixed "Artist:"
album Text now_playing Album name, prefixed "Album:"
playlist Text now_playing Playlist name, prefixed "Playlist:"
genre Text now_playing Track genre
isrc Text now_playing Track ISRC code
song_text Text now_playing Full combined "Artist - Album - Title" string
is_request Text now_playing "Requested" if the current track was a listener request, else ""
album_art Image now_playing Album art image for the current track
song_elapsed Number timing Seconds elapsed in current track (progress bar current value)
song_duration Number timing Track duration in seconds (progress bar max value)
song_remaining Number timing Seconds remaining in current track
elapsed_formatted Text timing Elapsed time formatted as M:SS
duration_formatted Text timing Track duration formatted as M:SS
remaining_formatted Text timing Remaining time formatted as M:SS
progress_percent Number timing Percent through current track (0 to 100)
listeners Number listeners Current listener count
listeners_total Number listeners Total listener connections
listeners_unique Number listeners Unique listener count
live_status Text live "Live: Name" when a DJ is streaming, otherwise "Auto DJ"
is_live Number live 1 if a live DJ is streaming, else 0
streamer_name Text live Live streamer / DJ name (empty when AutoDJ)
broadcast_start Number live Live broadcast start time (unix seconds), 0 if not live
live_art Image live Live DJ artwork / banner
is_online Number station 1 if the station is online, else 0
station_name Text station Station name
station_description Text station Station description
listen_url Text station Direct stream / listen URL
public_player_url Text station Public web player URL
stream_bitrate Number station Default mount bitrate (kbps)
stream_format Text station Default mount format (e.g. mp3)
stream_mount Text station Default mount name
requests_enabled Number station 1 if song requests are enabled, else 0
next_title Text up_next Next track title
next_artist Text up_next Next track artist
next_album Text up_next Next track album
next_art Image up_next Next track album art
next_duration Number up_next Next track duration in seconds
next_playlist Text up_next Next track playlist
history_N_title Text history Previous track #N title (N = 1…HISTORY_DEPTH)
history_N_artist Text history Previous track #N artist
history_N_album Text history Previous track #N album
history_N_art Image history Previous track #N album art
schedule_next_title Text schedule Next scheduled show title/name
schedule_next_streamer Text schedule Next scheduled show streamer/name
schedule_next_start Number schedule Next scheduled show start (unix seconds), 0 if none
requests_count Number requests Number of requestable songs
request_N_title Text requests Requestable song #N title (N = 1…REQUESTS_DEPTH)
request_N_artist Text requests Requestable song #N artist
request_N_art Image requests Requestable song #N album art

The streamers and podcasts AzuraCast endpoints require authentication and are intentionally not used, so the widget stays purely public/read-only.

Field limit (important)

Discord rejects any identity payload with more than 30 dynamic fields (HTTP 400, BASE_TYPE_MAX_LENGTH). The full catalog is 70+, so you must narrow it with ENABLED_FIELDS to at most 30 field names. List exactly the ones your widget layout maps:

ENABLED_FIELDS=track_title,artist,album,album_art,listeners,song_elapsed,song_duration

As a safety net the service also hard-caps the payload at 30 fields and logs a warning, so a misconfiguration degrades instead of erroring. Run npm run fields to print the full catalog.

See Configuration for all environment variables and Troubleshooting for error symptoms.

Clone this wiki locally