Authentication
All endpoints require a JWT token. Obtain one by making a GET request to the token endpoint:
The response is a raw JWT string. Pass it as the Token field (or Password for the legacy addrequest endpoint) in your POST body.
Now Playing
Returns what is currently playing on a station, with comprehensive metadata about the artist and track. Also supports a bandwidth-saving sequence mechanism that returns HTTP 204 when nothing has changed.
Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Token | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. |
StationID | Yes | The station to get data from. | 1 = ericade.radio 2 = Best of ericade.radio |
NowPlaying | No | 0 = Off, 1 = On. Returns the currently playing track; applies buffer compensation automatically. | Should always be 1. |
Sequence | Yes | Bandwidth-saving mechanism. Send 0 to always receive a full response, or send the TimeStamp value from the previous response. If the current track’s timestamp matches the sent value the API returns HTTP 204 (no body); if it differs, a full response is returned with an updated TimeStamp. | Set to 0 on non-metered connections. |
ReturnNextUp | No | 0 = do not return NextUp (default), 1 = return NextUp array. | |
DisableBufferCompensation | No | 0 = use buffer compensation (default), 1 = disable. The API holds the current track for a preset number of seconds to compensate for stream buffering. | Should always be 0 or omitted unless explicitly needed. |
ReturnPlayList | No | 0 = do not return PlayList (default), 1 = return PlayList. | Also needed for NowPlayingOnPlaylist to be populated. |
ReturnArtistDescription | No | 0 = do not return artist description (default), 1 = return description fields. Saves bandwidth when artist bio is not needed. |
Example request
{
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"NowPlaying": 1,
"StationID": 1,
"Sequence": 0,
"ReturnArtistDescription": 1,
"ReturnNextUp": 1
}
Sequence value matches the current track’s TimeStamp. The caller should display the previously received data unchanged.Response
Returns a {"Tracks": [...]} object. The array normally contains one entry for now-playing requests.
| Attribute | Description | Example |
|---|---|---|
Artist | Complete artist field including all collaborators. | Cube |
Title | Track title. | My pixels are weapons |
StationName | Station name in plain text. | 24/7 tracked music |
Slug | URL-friendly slug for the track. | https://ericade.radio/#/song/14820/mindstorm-trackerartist |
StationID | Station number. | 1 = ericade.radio 2 = Best of ericade.radio |
WebStreamingOffset | Web streaming offset for the station in seconds. Used for webplayers. | 12 |
StreamingOffset | Streaming offset for the station in seconds. Used for all other players. | 10 |
TrackCanBeRequested | Whether this track can be requested right now. | 0 or 1 |
RequestVerdict | Human-readable reason why the track cannot be requested. Echo this string to the user. | Song was played recently |
CreationDateHR | When the track was first added to the station, human-readable. | 2026-03-30 15:45:04 |
CreationDate | When the track was first added, Unix epoch string. | 1774885504 |
AddedDate | (Deprecated) Same as CreationDateHR. | 2026-03-30 15:45:04 |
TrackCanBeStarred | Whether this track can receive a star rating right now. | 0 or 1 |
PodcastURL | [Podcast] URL to the podcast audio file. | https://radio.ericade.net/Flashback/97.mp3 |
Image | Image URL for this track. | https://radio.ericade.net/images/demoscene.png |
BroadcastDate | [Podcast] Broadcast date of the podcast episode. | 2022-07-16 |
TitleID | (Deprecated) Not in use. | 13770 |
TrackID | Unique, stable track identifier. Use this in all requests that reference a specific track. | 15717 |
TrackerType | Type/format of the track. | Modern remix (demo scene) |
Type | Stated/inferred song type from PlayIT Live. Not actively used. | Song |
Tags | (Deprecated) Tags associated with the track. | “” |
TagList | List of tags associated with the track. | [] |
PlayLength | Length between Cue In and Cue Out in seconds (decimal, “.” separator). | 193.12099773243 |
PlayLengthHR | Play length expressed as HH:MM. | 03:13 |
Batch | Batch number auto-parsed from the Album field. Format: <StationShortName>-<MonMMMYYYY>-<nn>. | TERN-mar2026-03 |
Album | Album tag from the audio file’s metadata. | OriginalName:!Cube - My Pixels Are Weapons.ogg Imported:2026-03-29 (TERN-mar2026-03). |
About | Short description from the song or podcast episode. | |
ProductionNotes | [Podcast] Production notes. Empty for non-podcast tracks. | |
PlayList | [Podcast] Chapter list for the podcast episode. Empty for non-podcast tracks. Only returns when a specific TrackID is requested. | 00:00 Introduction… |
CompositeRating | Track rating from 0.0–5.0. Higher is better. | 4.3 |
TrackVoters | Number of votes the track has received. | 2 |
ArtistCompositeRating | Artist rating from 0.0–5.0. | 4.9 |
ArtistVoters | Number of votes the artist has received. | 0 |
TimeStamp | Track start time as Unix epoch. Required for progress bar calculations and the Sequence mechanism. | 1774885504 |
TimeStampHumanReadable | Track start time as a human-readable date string. | 2026-03-30 15:45:04 |
TrackTotalPlays | Number of times this track has been played on the station. | 313 |
ArtistTotalPlays | Number of times the artist has been played. Currently reflects the first artist only; will be revised. | 206 |
ArtistLongDescription | Full artist biography. Only populated when ReturnArtistDescription=1. Currently reflects the first artist only; will be revised. | (text) |
ArtistShortDescription | (Deprecated) Do not use. | |
NowPlayingOnPlaylist | [Podcast] [Best of ericade.radio(StationID=2)] returns the current chapter. Requires ReturnPlayList to be set to 1 in the call to work. | Love connection by Lavizh |
Demozoo | Link to the artist’s profile on demozoo.org. | |
Wikipedia | Link to the artist’s Wikipedia entry. | |
CSDB | Link to the artist’s C64 Scene Database profile. | |
OtherUrl | Link to the artist’s homepage or other point of interest. | |
ModArchive | Link to the artist’s ModArchive profile. | |
Bandcamp | Link to the artist’s Bandcamp page. | |
SoundCloud | Link to the artist’s SoundCloud profile. | |
YouTube | Link to the artist’s YouTube channel. | |
Pouet | Link to the artist’s Pouet profile. | |
isListenerRequested | "0" = regular rotation, "1" = listener-requested track. | "0" or "1" |
isOverride | If set to 0 (default), the returned data will show the currently playing track. This is the normal behavior. If set to 1, it will show a preset text from the database. This is used to show special messages or tell the listener what live-show they're listening to. | "0" or "1" |
isLive | This value only counts if the isOverride is set to 1. It will indicate that you are listening to a live show. | "0" or "1" |
isRemote | This value only counts if the isOverride is set to 1. It will indicate that you are listening to a live show, broadcast from a remote location. | "0" or "1" |
isNew | "0" = not new, "1" = new track. | "0" or "1" |
NewDays | Shows the number of days a track is considered new. | 7 |
Podcast | Present in all responses. Empty string for non-podcast tracks. | “” |
NextUp | Array of the next track’s info. Only populated when ReturnNextUp=1. Station IDs and adverts are excluded. | Array[] |
NextUp => Artist | Artist name of the next track. | MA2E |
NextUp => Title | Title of the next track. | Thrilled 4 noise |
NextUp => AddedDate | When the next track was first added, human-readable. | 2022-04-09 14:41:38 |
NextUp => CompositeRating | Rating 0.0–5.0. | 3.5 |
NextUp => Voters | Vote count. | 0 |
NextUp => Image | Image URL. | https://radio.ericade.net/wp-content/uploads/2020/12/amiga_flashback-1024x1024.jpg |
NextUp => StationID | Station the next track belongs to. | 1 |
NextUp => TrackerType | Track type/format. | Amiga 4-channel module |
NextUp => TrackID | Unique track identifier. | 11971 |
Playlog | Array of recent play timestamps for this track on this station. | Array[] |
Playlog => timestamphr | Human-readable datetime the track was last played. | 2026-03-30 16:00:06 |
Example response
{
"Tracks": [
{
"Artist": "Chris Huelsbeck",
"Title": "Dressed to chill",
"StationID": 1,
"StationName": "24/7 tracked music",
"Slug": "https://radio.ericade.net/#/song/14051/dressed to chill-chris-huelsbeck",
"WebStreamingOffset": 12,
"StreamingOffset": 10,
"TrackCanBeRequested": 0,
"RequestVerdict": "Artist was played recently",
"CreationDateHR": "2022-11-01 16:19:08",
"CreationDate": "1667315948",
"AddedDate": "2022-11-01 16:19:08",
"TrackCanBeStarred": 1,
"PodcastURL": "",
"Image": "https://radio.ericade.net/images/rmx.png",
"BroadcastDate": "",
"TitleID": 12098,
"TrackID": 14051,
"TrackerType": "Modern remix",
"Type": "Song",
"Tags": "",
"TagList": [
"Revision",
"Revision 2026"
],
"PlayLength": 273.39934240363,
"PlayLengthHR": "04:33",
"Batch": "TERN-oct2022-05",
"Album": "OriginalName:custom.rmx Imported:2022-11-01 (TERN-oct2022-05).",
"About": "",
"ProductionNotes": "",
"PlayList": "",
"CompositeRating": 0,
"TrackVoters": 0,
"ArtistCompositeRating": 4.6,
"ArtistVoters": 12,
"TimeStamp": 1778939868,
"TimeStampHumanReadable": "2026-05-16 13:57:48",
"TrackTotalPlays": 216,
"ArtistLongDescription": "A true legend on the Amiga and other systems. He's most famous for the music from Turrican I, II and III. His music can be found in many games and demos on various systems.",
"ArtistShortDescription": "A true legend on the Amiga and other systems. He's most famous for the music from Turrican I, II and III. His music can be found in many games and demos on various systems.",
"NowPlayingOnPlaylist": "",
"Demozoo": "https://demozoo.org/sceners/7637/",
"Wikipedia": "",
"CSDB": "",
"OtherUrl": "",
"ModArchive": "",
"Bandcamp": "https://chrishuelsbeck.bandcamp.com/",
"SoundCloud": "",
"YouTube": "",
"Pouet": "",
"isListenerRequested": "0",
"isOverride": 0,
"isLive": 0,
"isRemote": 0,
"isNew": 0,
"NewDays": 7,
"Podcast": "",
"ArtistTotalPlays": 6789,
"NextUp": [
{
"Artist": "SoundLogic",
"Title": "Monty on the run",
"AddedDate": "2024-09-15 14:12:50",
"CompositeRating": "5.0",
"Voters": "1",
"Image": "https://radio.ericade.net/images/demoscene.png",
"StationID": "1",
"TrackerType": "Modern remix (demo scene)",
"TrackID": "14925"
}
],
"Playlog": [
{
"timestamphr": "2026-05-16 13:57:48"
},
{
"timestamphr": "2026-05-07 22:38:33"
},
{
"timestamphr": "2026-04-28 16:05:51"
}
]
}
]
}
Track by ID
Returns full metadata for a specific track. The response schema is identical to the Now Playing endpoint.
Replace <trackid> in the URL with the numeric TrackID.
Request fields are the same as Now Playing (Token, StationID, optional ReturnArtistDescription, ReturnNextUp). The Sequence and NowPlaying fields are not applicable.
Search
Searches the station’s track library by a free-text term and returns matching tracks. The response schema is identical to the Now Playing response.
Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Token | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. |
StationID | Yes | The station to search. | 1 = ericade.radio 2 = Best of ericade.radio |
Term | Yes | Search string, e.g. “my wolf”. | |
Limit | No | Maximum number of results to return. | |
Skip | No | Number of results to skip from the start (for pagination). |
Example request
{
"Token": "eyJ0eXAiOiJKV1Qi...",
"StationID": 1,
"Term": "my wolf",
"Limit": 20,
"Skip": 0
}
Response
Returns a {"Tracks": [...]} object. Each entry has the same fields as the Now Playing response (Artist, Title, StationID, StationName, TrackCanBeRequested, RequestVerdict, TrackID, TrackerType, CompositeRating, Image, Playlog, NextUp, etc.).
Song History
Returns the recently played tracks on a station.
Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Token | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. |
StationID | Yes | The station to get history for. | 1 = ericade.radio 2 = Best of ericade.radio |
Limit | No | Number of history entries to return. | |
ReturnArtistDescription | No | 0 = omit artist description (default), 1 = include it. Saves bandwidth when bio is not needed. |
Example request
{
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"StationID": 1,
"Limit": 8,
"ReturnArtistDescription": 1
}
Response
Returns a {"Tracks": [...]} array ordered most-recent first.
| Attribute | Description | Example |
|---|---|---|
TrackID | Unique, stable track identifier. | 10147 |
TimeStampHR | When this track started playing, as a human-readable date string. | 2026-03-30 20:44:32 |
TimeStamp | When this track started playing, as a Unix epoch. | 1774903472 |
Artist | Complete artist field. | Virgill |
Title | Track title. | Bratgrumbeere |
CreationDate | (Not implemented) When the track was first added, Unix epoch. | |
CreationDateHR | (Not implemented) When the track was first added, human-readable. | |
Album | Album tag from audio file metadata. | Original Amiga Works (.mod) TERN-Okt2020-S1 |
Duration | Duration of the track in seconds. | 292.75718820861700000000 |
TrackerType | Type of tracker used for the track. | Amiga 4-channel module |
Image | URL to the track's image. | https://radio.ericade.net/images/mod.png |
IsListenerRequested | Indicates if the track was requested by a listener (0 = no, 1 = yes). | 0 |
StationID | The station this track belongs to. | 1 |
Guid | (Will be removed) Internal GUID from PlayIT Live. Not intended for public use. | 6894ac27-abc9-4c4a-aad2-15879dda4dff |
Example response
{
"Tracks": [
{
"TrackID": "10147",
"TimeStampHR": "2026-05-31 21:16:42",
"TimeStamp": "1780262202",
"Artist": "Dr. Awesome",
"Title": "Gone For Good",
"CreationDate": "",
"CreationDateHR": "",
"Album": "Original Amiga Works (.mod) TERN-Okt2020-S1",
"Duration": "292.75718820861700000000",
"TrackerType": "Amiga 4-channel module",
"Image": "https://radio.ericade.net/images/mod.png",
"IsListenerRequested": "0",
"StationID": "1",
"Guid": "aace857b-366a-46fe-9208-1d5b9fc0caae"
},
{
"TrackID": "12115",
"TimeStampHR": "2026-05-31 21:16:34",
"TimeStamp": "1780262194",
"Artist": "ericade.radio",
"Title": "You want to hear your favorite song on this station. Go to ericade.radio-song",
"CreationDate": "",
"CreationDateHR": "",
"Album": "Format:.stn TERN.",
"Duration": "10.44897959183670000000",
"TrackerType": "StationID",
"Image": "https://radio.ericade.net/images/stn.png",
"IsListenerRequested": "0",
"StationID": "1",
"Guid": "3933ca49-d5f3-426e-bbfd-494695977262"
}
]
}
Statistics
Returns various statistics for a station.
Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Token | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. |
StationID | Yes | (Not implemented) The station to get statistics for. | 1 = ericade.radio 2 = Best of ericade.radio |
Limit | No | Number of history entries to return. Only works for requests at this time. | 10 |
Days | No | Show maximum number of days. Only works for requests at this time. | 7 |
Example request
{
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"StationID": 1,
"Limit": 8,
"Days": 7
}
Response
Returns a {"Stations": [...]} array. Each element in Stations represents one station and contains the fields below.
| Attribute | Description | Example |
|---|---|---|
StationID | The station identifier. | 1 |
StationName | Human-readable station name. | 24/7 tracked music |
TotalLength | Total combined length of all tracks on the station, in hours. | 180.4 |
TracksOnStation | Total number of tracks on the station. | 3125 |
Trackerstats | Array of tracker-type breakdowns. Each object contains TrackerType (name of the tracker format), Tracks (number of tracks of that type), Percent (percentage of total), and StationID. | Array[] |
Requests | Array of the most-requested tracks of all time. Each object contains RealName (formatted "Artist - Title" string), Occurrences (total request count), and TrackID (may be empty if unresolved). | Array[] |
TopStars | Array of the highest-rated tracks. Each object contains Artist, Title, CompositeRating (average star rating), Voters (number of voters), and TrackID. | Array[] |
BottomStars | Array of the lowest-rated tracks. Same fields as TopStars. | Array[] |
TopArtists | Array of the highest-rated artists. Each object contains Artist, CompositeRating, and Voters. | Array[] |
BottomArtists | Array of the lowest-rated artists. Same fields as TopArtists. | Array[] |
StreamingCountries | Array of listener countries ordered by session count. Each object contains Country (country name) and Count (number of streaming sessions). | Array[] |
StreamingAgents | Array of user-agent strings seen in streaming sessions, ordered by count. Each object contains Agent and Count. | Array[] |
LogoffPlay | Array of tracks most commonly playing when listeners disconnect. Each object contains Track (formatted "Artist-Title." string), NumberOfPlays, and StationID. | Array[] |
Duplicates | Array of tracks that appear more than once in the library (same artist and title, different IDs). Each object contains FullArtist, Title, and TrackID. | Array[] |
Example response
{
"Stations": [
{
"StationID": "1",
"StationName": "24/7 tracked music",
"TotalLength": "180.4",
"TracksOnStation": "3125",
"Trackerstats": [
{
"TrackerType": "Amiga 4-channel module",
"Tracks": "1180",
"Percent": "37.8",
"StationID": "1"
},
{
"TrackerType": "Fasttracker",
"Tracks": "873",
"Percent": "27.9",
"StationID": "1"
},
{
"TrackerType": "Impulsetracker",
"Tracks": "539",
"Percent": "17.2",
"StationID": "1"
},
{
"TrackerType": "Modern remix",
"Tracks": "169",
"Percent": "5.4",
"StationID": "1"
},
{
"TrackerType": "Screamtracker",
"Tracks": "138",
"Percent": "4.4",
"StationID": "1"
},
{
"TrackerType": "Modern remix (demo scene)",
"Tracks": "131",
"Percent": "4.2",
"StationID": "1"
},
{
"TrackerType": "Multitracker",
"Tracks": "49",
"Percent": "1.6",
"StationID": "1"
},
{
"TrackerType": "Pretracker",
"Tracks": "24",
"Percent": "0.8",
"StationID": "1"
},
{
"TrackerType": "OctaMed/MED",
"Tracks": "6",
"Percent": "0.2",
"StationID": "1"
},
{
"TrackerType": "AHX Synth-tracker",
"Tracks": "4",
"Percent": "0.1",
"StationID": "1"
},
{
"TrackerType": "MO3",
"Tracks": "3",
"Percent": "0.1",
"StationID": "1"
},
{
"TrackerType": "C64 Sidtune",
"Tracks": "3",
"Percent": "0.1",
"StationID": "1"
},
{
"TrackerType": "Digi Booster Pro",
"Tracks": "2",
"Percent": "0.1",
"StationID": "1"
},
{
"TrackerType": "Unknown",
"Tracks": "1",
"Percent": "0.0",
"StationID": "1"
},
{
"TrackerType": "Digi Booster",
"Tracks": "1",
"Percent": "0.0",
"StationID": "1"
},
{
"TrackerType": "Scream tracker 2",
"Tracks": "1",
"Percent": "0.0",
"StationID": "1"
},
{
"TrackerType": "SoundFX / MultiMedia Sound",
"Tracks": "1",
"Percent": "0.0",
"StationID": "1"
}
],
"Requests": [
{
"RealName": "Ekorren - Little Danyjel",
"Occurrences": "20",
"TrackID": "14050"
},
{
"RealName": "Synthesized World 2 - Radio Smile",
"Occurrences": "20",
"TrackID": ""
},
{
"RealName": "Drakonpod - Goa-ing",
"Occurrences": "16",
"TrackID": ""
},
{
"RealName": "Maf - Mafland remix",
"Occurrences": "16",
"TrackID": "14907"
},
{
"RealName": "Arpegiator of Chryseis - My wolf 2",
"Occurrences": "13",
"TrackID": "10663"
},
{
"RealName": "Yannis Brown - Tres Dilettantes",
"Occurrences": "12",
"TrackID": ""
},
{
"RealName": "Xyce - Mirage",
"Occurrences": "11",
"TrackID": ""
},
{
"RealName": "CyberZip - Ahh My Goddess!",
"Occurrences": "10",
"TrackID": "13528"
},
{
"RealName": "Dr Vector - Auto rock",
"Occurrences": "9",
"TrackID": "15441"
},
{
"RealName": "Arcane toaster - Fly Little Dino",
"Occurrences": "8",
"TrackID": ""
}
],
"TopStars": [
{
"Artist": "Xyce",
"Title": "Rymdkraft - Dolph's aerobics (remix)",
"CompositeRating": "5.0",
"Voters": "5",
"TrackID": "12003"
},
{
"Artist": "Nusrat",
"Title": "Summertime",
"CompositeRating": "5.0",
"Voters": "4",
"TrackID": "13229"
},
{
"Artist": "Trackerartist",
"Title": "Dragons lair",
"CompositeRating": "5.0",
"Voters": "4",
"TrackID": "10186"
},
{
"Artist": "Vogue of Triton",
"Title": "Ambient power",
"CompositeRating": "5.0",
"Voters": "4",
"TrackID": "10445"
},
{
"Artist": "Mister E",
"Title": "Dedic8ed 2 AsmoDeon",
"CompositeRating": "5.0",
"Voters": "4",
"TrackID": "13194"
},
{
"Artist": "Blackstar (Oddgeir Hvidsten) and Time Traveller (Geir Rune Ladehaug)",
"Title": "Blue stars",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "10688"
},
{
"Artist": "Phobium",
"Title": "Tonik Funture (phob)",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14504"
},
{
"Artist": "4-mat",
"Title": "Eternity",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "13491"
},
{
"Artist": "Malmen",
"Title": "Edison Glam",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14849"
},
{
"Artist": "Alexander Brandon",
"Title": "Menu song (Jazz Jackrabbit Intro)",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14114"
},
{
"Artist": "Riku Nuottajarvi",
"Title": "Hyperspace (From star control)",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "11087"
},
{
"Artist": "Malmen of Brainstorm",
"Title": "Devotion shuttle",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "13373"
},
{
"Artist": "MyVoice",
"Title": "Alertia",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14915"
},
{
"Artist": "Danko and Jogeir Liljedahl",
"Title": "1992",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "12380"
},
{
"Artist": "Blue orian",
"Title": "Spiral galaxy",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14160"
},
{
"Artist": "Sudokan",
"Title": "Thoughts Per Second",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "13150"
},
{
"Artist": "Selecta Novel",
"Title": "Simon the Sorcerer - Dragon's Winter Cave",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14421"
},
{
"Artist": "Nicsure",
"Title": "Occ-san-geen",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "14422"
},
{
"Artist": "Arpegiator of Chryseis",
"Title": "My wolf 2",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "10663"
},
{
"Artist": "Dr. Awesome",
"Title": "Session",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "10927"
}
],
"BottomStars": [
{
"Artist": "Sysfins",
"Title": "The aooga mooca song",
"CompositeRating": "1.0",
"Voters": "3",
"TrackID": "15657"
},
{
"Artist": "Uctumi",
"Title": "Flimbo's quest medley",
"CompositeRating": "1.0",
"Voters": "2",
"TrackID": "14045"
},
{
"Artist": "Audiomonster",
"Title": "Florence",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "11963"
},
{
"Artist": "RawArgon",
"Title": "They drew 1st Blood Orangeade",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14518"
},
{
"Artist": "Jam & Spoon productions",
"Title": "Dansa uppa dekki",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "12486"
},
{
"Artist": "Bst",
"Title": "Mayan Paradise*Dim System",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14267"
},
{
"Artist": "mA2E / Desire",
"Title": "Overjoyed by groove",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "11977"
},
{
"Artist": "Beldoroon",
"Title": "Come allye (remix)",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "13778"
},
{
"Artist": "Phaser",
"Title": "The return of music",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "10996"
},
{
"Artist": "Speechless",
"Title": "Mistake",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "13284"
},
{
"Artist": "Dr. Awesome",
"Title": "Empty Spaces",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "10762"
},
{
"Artist": "Psirius",
"Title": "Musical cloister",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14102"
},
{
"Artist": "The Muzycant",
"Title": "Guitar Slinger V2",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14385"
},
{
"Artist": "Liam the Lemming",
"Title": "Auf wiedersehen Monty theme",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14156"
},
{
"Artist": "Crk",
"Title": "Beatex",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "10624"
},
{
"Artist": "Mark M. Salud",
"Title": "1-2-3-DanceMon",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14953"
},
{
"Artist": "Necros of FM",
"Title": "The grey note",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "13936"
},
{
"Artist": "Ceekayed",
"Title": "Battle beyond the dark",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "13946"
},
{
"Artist": "K. Jose",
"Title": "It's Time",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "13957"
},
{
"Artist": "Madminder",
"Title": "Shadow Angel",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "14478"
}
],
"TopArtists": [
{
"Artist": "Xyce",
"CompositeRating": "5.0",
"Voters": "19"
},
{
"Artist": "Slash_Atd",
"CompositeRating": "5.0",
"Voters": "10"
},
{
"Artist": "Arachno",
"CompositeRating": "5.0",
"Voters": "6"
},
{
"Artist": "ArchAngel",
"CompositeRating": "5.0",
"Voters": "5"
},
{
"Artist": "Maktone",
"CompositeRating": "5.0",
"Voters": "5"
},
{
"Artist": "Vogue",
"CompositeRating": "5.0",
"Voters": "5"
},
{
"Artist": "Nusrat",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "Warder",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "cs127",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "AceMan",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "Mister%20E",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "Laamaa",
"CompositeRating": "5.0",
"Voters": "4"
},
{
"Artist": "Riku%20Nuottajarvi",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Danko",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Saga%20Musix",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Arpegiator",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Bacter%20vs%20Saga%20musix",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Phobium",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Blackstar%20(Oddgeir%20Hvidsten)",
"CompositeRating": "5.0",
"Voters": "3"
},
{
"Artist": "Dippy",
"CompositeRating": "5.0",
"Voters": "3"
}
],
"BottomArtists": [
{
"Artist": "Sysfins",
"CompositeRating": "1.0",
"Voters": "3"
},
{
"Artist": "Crk",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Madminder",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Sam",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "RawArgon",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Beldoroon",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Ceekayed",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Jam%20&%20Spoon%20productions",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Speechless",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "mA2E%20/%20Desire",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Mark%20M.%20Salud",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "NaBo",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "UsE",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "The%20Muzycant",
"CompositeRating": "1.0",
"Voters": "1"
},
{
"Artist": "Efenstor",
"CompositeRating": "2.0",
"Voters": "2"
},
{
"Artist": "Audiomonster",
"CompositeRating": "2.0",
"Voters": "2"
},
{
"Artist": "View",
"CompositeRating": "2.0",
"Voters": "1"
},
{
"Artist": "Tomi%20Blinnikka",
"CompositeRating": "2.0",
"Voters": "1"
},
{
"Artist": "Galaxy",
"CompositeRating": "2.0",
"Voters": "1"
},
{
"Artist": "Higher%20(than)",
"CompositeRating": "2.0",
"Voters": "1"
}
],
"StreamingCountries": [
{
"Country": "Germany",
"Count": "930"
},
{
"Country": "Canada",
"Count": "590"
},
{
"Country": "United States",
"Count": "442"
},
{
"Country": "Croatia",
"Count": "332"
},
{
"Country": "Russia",
"Count": "314"
}
],
"StreamingAgents": [
{
"Agent": "FreeAmp/2.x",
"Count": "559"
},
{
"Agent": "BASS/2.4",
"Count": "401"
},
{
"Agent": "Screamer Radio v0.4.4 beta (20100924)",
"Count": "327"
}
],
"LogoffPlay": [
{
"Track": "Berluskani-Flimbo in tyrol (Arok-remix).",
"NumberOfPlays": "8",
"StationID": "1"
},
{
"Track": "Yannis Brown-Banjo Jamming.",
"NumberOfPlays": "7",
"StationID": "1"
},
{
"Track": "Trackerartist-Ec#24.",
"NumberOfPlays": "7",
"StationID": "1"
}
],
"Duplicates": [
{
"FullArtist": "4-mat",
"Title": "Eternity",
"TrackID": "13491"
},
{
"FullArtist": "4-mat",
"Title": "Eternity",
"TrackID": "15212"
},
{
"FullArtist": "Arpegiator of Chryseis",
"Title": "My wolf 2",
"TrackID": "10663"
},
{
"FullArtist": "Arpegiator of Chryseis",
"Title": "My wolf 2",
"TrackID": "11987"
},
{
"FullArtist": "C512w",
"Title": "Going to the moon",
"TrackID": "15273"
}
]
},
{
"StationID": "2",
"StationName": "Best of ERICADE.radio",
"TotalLength": "199.2",
"TracksOnStation": "178",
"Trackerstats": [
{
"TrackerType": "Podcast episode",
"Tracks": "169",
"Percent": "94.9",
"StationID": "2"
},
{
"TrackerType": "Live broadcast rerun",
"Tracks": "8",
"Percent": "4.5",
"StationID": "2"
},
{
"TrackerType": "Amiga 4-channel module",
"Tracks": "1",
"Percent": "0.6",
"StationID": "2"
}
],
"Requests": [],
"TopStars": [
{
"Artist": "Flashback",
"Title": "144. A tracked christmas",
"CompositeRating": "5.0",
"Voters": "4",
"TrackID": "15436"
},
{
"Artist": "Flashback",
"Title": "134. Xmas special",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "15011"
},
{
"Artist": "Flashback",
"Title": "92. As featured on the radio",
"CompositeRating": "5.0",
"Voters": "3",
"TrackID": "12222"
},
{
"Artist": "Flashback",
"Title": "133. Xmas 2024",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "15009"
},
{
"Artist": "Amiga Flashback",
"Title": "16. Doing miscellaneous stuff",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9675"
},
{
"Artist": "Flashback",
"Title": "53. The creation of a station",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9682"
},
{
"Artist": "Flashback",
"Title": "70. Cautious optimism",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9933"
},
{
"Artist": "The ERICADE Radio Network",
"Title": "The \"One year anniversary broadcast 2021\" - third hour",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9696"
},
{
"Artist": "Flashback",
"Title": "72. 8!ghtBM on every chart",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9981"
},
{
"Artist": "Amiga Flashback",
"Title": "11. Two shades of new year. Hour 2/3.",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9733"
},
{
"Artist": "Flashback",
"Title": "143. Another mix tape",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "15414"
},
{
"Artist": "ericade.radio",
"Title": "Its news time",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9589"
},
{
"Artist": "Flashback",
"Title": "115. The Spirit of Retro and Xmas Part 1",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "14426"
},
{
"Artist": "Flashback",
"Title": "69. A new year - 2022, second hour",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9913"
},
{
"Artist": "Edison Party 2021",
"Title": "The Edison 2021 Live Broadcast hour 3",
"CompositeRating": "5.0",
"Voters": "2",
"TrackID": "9665"
},
{
"Artist": "Flashback",
"Title": "91. Forndata Summer 2022",
"CompositeRating": "5.0",
"Voters": "1",
"TrackID": "12205"
},
{
"Artist": "Amiga Flashback",
"Title": "21. Look at you, hacker!",
"CompositeRating": "5.0",
"Voters": "1",
"TrackID": "9672"
},
{
"Artist": "Amiga Flashback",
"Title": "15. Return of the Tekmann",
"CompositeRating": "5.0",
"Voters": "1",
"TrackID": "9680"
},
{
"Artist": "Edison Party 2021",
"Title": "The Edison 2021 Live Broadcast hour 5",
"CompositeRating": "5.0",
"Voters": "1",
"TrackID": "9681"
},
{
"Artist": "Flashback",
"Title": "44. The fly-over part of summer",
"CompositeRating": "5.0",
"Voters": "1",
"TrackID": "9686"
}
],
"BottomStars": [
{
"Artist": "Flashback",
"Title": "147. A brand new tracked 2026",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "15490"
},
{
"Artist": "Flashback",
"Title": "108. Chillaxing while waiting",
"CompositeRating": "1.0",
"Voters": "1",
"TrackID": "12961"
},
{
"Artist": "Flashback",
"Title": "135. Springtime",
"CompositeRating": "2.0",
"Voters": "2",
"TrackID": "15165"
},
{
"Artist": "Flashback",
"Title": "40. It feels good to be bad",
"CompositeRating": "2.0",
"Voters": "1",
"TrackID": "9606"
},
{
"Artist": "Flashback",
"Title": "60. Among saints and sinners",
"CompositeRating": "2.5",
"Voters": "4",
"TrackID": "9689"
},
{
"Artist": "Flashback",
"Title": "54. Failure is the interesting option",
"CompositeRating": "2.5",
"Voters": "2",
"TrackID": "9634"
},
{
"Artist": "Flashback",
"Title": "89. In loving memory of Vangelis",
"CompositeRating": "3.0",
"Voters": "2",
"TrackID": "12168"
},
{
"Artist": "Amiga Flashback",
"Title": "20. All you need is love",
"CompositeRating": "3.0",
"Voters": "1",
"TrackID": "9615"
},
{
"Artist": "Flashback",
"Title": "69. A new year - 2022, first hour",
"CompositeRating": "3.0",
"Voters": "1",
"TrackID": "9910"
},
{
"Artist": "Amiga Flashback",
"Title": "33. Tracks from the past",
"CompositeRating": "4.0",
"Voters": "3",
"TrackID": "9600"
},
{
"Artist": "Amiga Flashback",
"Title": "22. Another lazy sunday evening",
"CompositeRating": "4.0",
"Voters": "2",
"TrackID": "9637"
},
{
"Artist": "Amiga Flashback",
"Title": "4. Demos and groups",
"CompositeRating": "4.0",
"Voters": "2",
"TrackID": "9641"
},
{
"Artist": "Flashback",
"Title": "69. A new year - 2022, third hour",
"CompositeRating": "4.0",
"Voters": "2",
"TrackID": "9911"
},
{
"Artist": "Amiga Flashback",
"Title": "27. A pox on all your Amigas",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9669"
},
{
"Artist": "Amiga Flashback",
"Title": "18. From the desk of miscellaneousity",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9676"
},
{
"Artist": "Flashback",
"Title": "46. Do you grok the lingo?",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9687"
},
{
"Artist": "Flashback",
"Title": "130. June",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "14830"
},
{
"Artist": "ericade.radio",
"Title": "This is the best of Ericade.radio, here is the latest from Feature Story News",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9804"
},
{
"Artist": "ericade.radio",
"Title": "You are listening to the best of Ericade.radio, here is the news",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9806"
},
{
"Artist": "Amiga Flashback",
"Title": "17. Standing on the brink in the eve of destruction",
"CompositeRating": "4.0",
"Voters": "1",
"TrackID": "9594"
}
],
"TopArtists": [
{
"Artist": "The%20ERICADE%20Radio%20Network",
"CompositeRating": "5.0",
"Voters": "2"
},
{
"Artist": "Edison%20Party%202021",
"CompositeRating": "4.8",
"Voters": "6"
},
{
"Artist": "Flashback",
"CompositeRating": "4.6",
"Voters": "63"
},
{
"Artist": "ericade.radio",
"CompositeRating": "4.5",
"Voters": "4"
},
{
"Artist": "Amiga%20Flashback",
"CompositeRating": "4.4",
"Voters": "26"
}
],
"BottomArtists": [
{
"Artist": "Amiga%20Flashback",
"CompositeRating": "4.4",
"Voters": "26"
},
{
"Artist": "ericade.radio",
"CompositeRating": "4.5",
"Voters": "4"
},
{
"Artist": "Flashback",
"CompositeRating": "4.6",
"Voters": "63"
},
{
"Artist": "Edison%20Party%202021",
"CompositeRating": "4.8",
"Voters": "6"
},
{
"Artist": "The%20ERICADE%20Radio%20Network",
"CompositeRating": "5.0",
"Voters": "2"
}
],
"StreamingCountries": [
{
"Country": "Germany",
"Count": "930"
},
{
"Country": "Canada",
"Count": "590"
}
],
"StreamingAgents": [
{
"Agent": "FreeAmp/2.x",
"Count": "559"
},
{
"Agent": "BASS/2.4",
"Count": "401"
},
{
"Agent": "Screamer Radio v0.4.4 beta (20100924)",
"Count": "327"
}
],
"LogoffPlay": [
{
"Track": "Flashback-113. Just listening to the radio.",
"NumberOfPlays": "14",
"StationID": "2"
},
{
"Track": "Amiga Flashback-21. Look at you, hacker!.",
"NumberOfPlays": "11",
"StationID": "2"
}
],
"Duplicates": [
{
"FullArtist": "4-mat",
"Title": "Eternity",
"TrackID": "13491"
},
{
"FullArtist": "4-mat",
"Title": "Eternity",
"TrackID": "15212"
},
{
"FullArtist": "Arpegiator of Chryseis",
"Title": "My wolf 2",
"TrackID": "10663"
}
}
]
}
Statistics by FilterTypes
Returns only statistics for a specific FilterType. The response schema is identical to the Now statistics endpoint.
Replace <filtertype> in the URL with the desired FilterType.
Request fields are the same as Statistics (Token, StationID and of of the following filtertypes in the GET-request: most-requested, stars, listeners, tracktypes, countries, agents, logoffplay, duplicates).
Requests
Returns the current request queue status and recent request history. Useful for displaying a live request line on a website.
Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Token | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. |
StationID | Yes | The station to get request data from. | 1 = ericade.radio 2 = Best of ericade.radio |
Limit | No | (Not implemented) Limit the number of requests returned. |
Example request
{
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"StationID": 1,
"Limit": 10
}
Response
| Attribute | Description | Example |
|---|---|---|
RequestStatistics | Array containing one object with queue wait-time statistics. | Array[] |
RequestStatistics => TracksInQueue | Number of tracks currently waiting in the request queue. | 3 |
RequestStatistics => YourQueueNumber | Position a new request would occupy in the queue. | 4 |
RequestStatistics => ExpectedWaitingTimeInMinutes | Estimated wait in minutes until a new request would be played. | 48 |
RequestStatistics => ExpectedWaitingTime | Estimated wait expressed as a human-readable string, suitable for display on a website. | 48 minutes |
CurrentRequests | Array of the five most recent requests (both waiting and already played). | Array[] |
CurrentRequests => Song | Requested track expressed as “<artist> – <title>”. | Tommy Fjelldal - Edificated dreams |
CurrentRequests => Requested | Time the request was submitted, as a Unix epoch string. | 1774902144 |
CurrentRequests => TrackID | Unique track identifier string. | 15715 |
CurrentRequests => Source | Origin of the request. | Internet or Discord |
CurrentRequests => State | Whether the request is still waiting or has already been played. | Waiting or Played |
Example response
{
"RequestStatistics": [
{
"TracksInQueue": "3",
"YourQueueNumber": "4",
"ExpectedWaitingTimeInMinutes": "48",
"ExpectedWaitingTime": "48 minutes"
}
],
"CurrentRequests": [
{
"Song": "Tommy Fjelldal - Edificated dreams",
"Requested": "1774902144",
"TrackID": "15715",
"Source": "Internet",
"State": "Waiting"
},
{
"Song": "Arpegiator of Chryseis - My wolf 2",
"Requested": "1774902734",
"TrackID": "10663",
"Source": "Internet",
"State": "Waiting"
},
{
"Song": "Dr Future - Plastic pop (Plastic kills life mix)",
"Requested": "1774903007",
"TrackID": "14922",
"Source": "Internet",
"State": "Waiting"
},
{
"Song": "X-Ceed of Sco - Let's go for a ride",
"Requested": "1774902096",
"TrackID": "15711",
"Source": "Internet",
"State": "Played"
},
{
"Song": "Alexander Brandon - Frolick lane",
"Requested": "1774902091",
"TrackID": "15714",
"Source": "Internet",
"State": "Played"
}
]
}
Add Request
Submits a listener request to the station’s request queue. This is a legacy endpoint not yet ported to v2.
Password instead of Token as the field name for the JWT value (legacy naming).Request
| Attribute | Mandatory? | Description | Notes |
|---|---|---|---|
Password | Yes | JWT token that authenticates the call. | Get from the get-token endpoint. Note: field is named Password, not Token. |
StationID | Yes | The station to submit the request to. | 1 = ericade.radio 2 = Best of ericade.radio |
TrackID | Yes | Unique identifier of the track to request. Obtain from the Search or Now Playing endpoints. | 10663 |
Source | Yes | Origin of the request. Can control which jingle plays before the track. | Internet or Discord |
Requester | No | The self-selected display name of the requester. | Caller #9 |
Greeting | No | (Deprecated) A user-selectable greeting to the show host. | Hi! Love your music! |
Example request
{
"Password": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"StationID": 1,
"Requester": "Listener",
"Source": "Internet",
"TrackID": 10663
}
Response
| Attribute | Description | Example |
|---|---|---|
message | Indicates whether the request was accepted. Either Success or Failure. | Success |
subcode | Machine-facing debug message describing what the API did internally. | Added Dr Future - Plastic pop (Plastic kills life mix) to the request log |
submessage | Human-facing message suitable for display to the end user. | Success! The tune you requested has been added to the playlist. Expected waiting time until play: 48 minutes. |
Example response
{
"message": "Success",
"subcode": "Added Dr Future - Plastic pop (Plastic kills life mix) to the request log",
"submessage": "Success! The tune you requested has been added to the playlist. Expected waiting time until play: 48 minutes."
}