Radioplayer Developer Reference
Recommendation
Technical reference for Radioplayer partner integrations.
- /{countryCode}/v1/recommendation
/{countryCode}/v1/recommendation
Description
Provides personalized content recommendations (stations, podcasts, episodes) based on various user-centric and contextual factors.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
countryCode | string | Yes | Country code to localize the recommendation logic. |
Query Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
guid | string | No | None | Unique identifier of the user. |
rpId | string or integer | No | None | RP (Radio Partner) ID for context. |
factors | list of strings | No | ['GEO', 'TRENDING', 'AFFINITY', 'PODCASTAFFINITY', 'ONDEMAND', 'GENRE', 'TOP'] | Types of recommendation factors to include. |
_Update 14/05/2026 - New factor “TOP” is included, you need to specify the brand in “product_type”, if not associated to the requester (client ID)._ enablePV| boolean| No| false| Enables the PUBLICVALUE factor in Germany.When set to true, the RadioConnect recommendation flow applies the Public Value logic defined in the configuration mapping. latitude| float| No| None| User's latitude (for location-based recommendations). longitude| float| No| None| User's longitude. presetRpIds| list of string or integer| No| []| List of pre-selected RP IDs to bias results. details| boolean| No| false| If true, include factors and score in each result item. series| list of strings| No| []| (Unused currently) Series identifiers. genreHref| string| No| None| Href of the genre to filter in the response for stations. Currently “GENRE”, “GEO” and “TRENDING” factor works with this parameter. (E.g. 3.1.1 for “News”) language| 2-character string| No| None| Code of the language to filter in the response for stations. Currently only “LANGUAGE” ,”GEO” and “TRENDING” factor works with this parameter. (E.g. “it” for italian, “de” for german) product_type| string| No| None| Product/brand to use for automotive recommendations. If omitted, the system attempts to map from client_id. interval| integer| No| 30| Reference interval in days (7 or 30) for data platform-based suggestions. limit| integer| No| 10| Maximum number of recommendations to return.
Header Parameters
| Name | Type | Required | Description |
|---|---|---|---|
client_id | string | Yes | A unique client identifier. |
Response Format
{
"stations":[],
"podcasts":[],
"episodes":[]
}
Sample Response
Given a request like:
/578/v1/recommendation?factors=TRENDING&factors=ONDEMAND&factors=PODCASTAFFINITY&latitude=59.913&longitude=10.738&enablePV=false&details=true
The response will be like:
{
"stations":[{
"id": "10098",
"rpuid": "5784003",
"broadcasterGroupId": "1053",
"name": "P4 Lyden av Norge",
"liveStreams": {
"player": "https://www.lydenavnorge.no/p4/player/",
"audioStreams": [
{
"streamSource": {
"url": "https://p4.p4groupaudio.com/P04_AH?args=3rdparty_01&distributor=radioplayer",
"mimeValue": "audio/aac"
},
"audioFormat": "urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:3",
"bitRate": {
"target": 192000,
"variable": false
}
},
{
"streamSource": {
"url": "https://p4.p4groupaudio.com/P04_AM?args=3rdparty_01&distributor=radioplayer",
"mimeValue": "audio/aac"
},
"audioFormat": "urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:3",
"bitRate": {
"target": 128000,
"variable": false
}
},
{
"streamSource": {
"url": "https://p4.p4groupaudio.com/P04_AL?args=3rdparty_01&distributor=radioplayer",
"mimeValue": "audio/aac"
},
"audioFormat": "urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:3",
"bitRate": {
"target": 48000,
"variable": false
}
},
{
"streamSource": {
"url": "https://p4.p4groupaudio.com/P04_MH?args=3rdparty_01&distributor=radioplayer",
"mimeValue": "audio/mpeg"
},
"audioFormat": "urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:3",
"bitRate": {
"target": 192000,
"variable": false
}
},
{
"streamSource": {
"url": "https://p4.p4groupaudio.com/P04_MM?args=3rdparty_01&distributor=radioplayer",
"mimeValue": "audio/mpeg"
},
"audioFormat": "urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:3",
"bitRate": {
"target": 128000,
"variable": false
}
}
]
},
"bearers": [
{
"id": "dab:fe2.f201.f214.0",
"cost": "0",
"mimeValue": "audio/mpeg"
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://assets.radioplayer.org/578/5784003/600/600/m0xcy9q2.png",
"width": 600,
"height": 600,
"language": "no",
"mimeValue": "image/png",
"index": 2
},
{
"type": "logo_unrestricted",
"url": "https://assets.radioplayer.org/578/5784003/288/162/mdfjxw9q.png",
"width": 288,
"height": 162,
"language": "no",
"mimeValue": "image/png",
"index": 8
}
],
"alphanumerickey": "p",
"appLinkConfiguration": {
"applicationLogo": "",
"applicationPackageId": "",
"cls": "",
"description": "",
"name": "",
"url": ""
},
"imageUrl": "https://assets.radioplayer.org/578/5784003/600/600/m0xcy9q2.png",
"consoleUrl": "https://www.lydenavnorge.no/p4/player/",
"sortName": "P04 Norge",
"description": "P4 er hele Norges favorittkanal, der kjente programledere som Bjørn Faarlund, Elisabeth Carew, Michael Andreassen, Atle Antonsen og Johan Golden gir deg den beste underholdningen. Du får en god blanding av nyheter, aktuelle gjester, Fem På og Jorda Rundt. P4 gir deg de største konkurransene som Lyden av Norge, der du kan vinne opptil 200.000 kroner. P4 er din humørfylte venn som holder deg oppdatert og serverer musikk som gjør deg glad.",
"shortName": "P4 Norge",
"mediumName": "P4 LydenAvNorge",
"longName": "P4 Lyden av Norge",
"synonyms": [
"Lyden av Norge",
" P4 Norge",
" P 4",
" P4",
" P4 Norway"
],
"geoFootprint": "61.45977057 3.449707031, 58.21702495 4.372558594, 57.350237477 7.756347656, 58.836490094 12.019042969, 61.375673316 12.985839844, 62.895217545 12.326660156, 63.937372468 12.985839844, 63.840668443 14.128417969, 64.56731901 14.523925781, 67.726108186 17.424316406, 68.815927133 21.423339844, 68.382996341 24.851074219, 69.626510168 26.564941406, 69.549877283 28.674316406, 68.863517003 28.718261719, 69.718106699 31.706542969, 70.873491319 30.563964844, 71.385142084 26.433105469, 71.045528819 22.214355469, 68.382996341 12.722167969, 64.886265409 9.558105469, 61.45977057 3.449707031",
"countryName": "Norway",
"discoverability": "searchable",
"status": "published",
"frequencies": [],
"genres": [
{
"href": "3.1.10.4",
"name": "Nasjonal radio",
"type": "main"
},
{
"href": "3.5",
"name": "Underholdning",
"type": "main"
}
],
"keywords": [],
"language": "Norwegian",
"phoneticInputs": [
{
"type": "pidgin",
"value": "Lyden av Norge"
},
{
"type": "pidgin",
"value": " P4 Norge"
},
{
"type": "pidgin",
"value": " P 4"
},
{
"type": "pidgin",
"value": " P4"
},
{
"type": "pidgin",
"value": " P4 Norway"
}
],
"phoneticOutputs": [
{
"type": "pidgin",
"value": "P4 Lyden av Norge"
}
],
"socialIds": [],
"strapLine": "Lyden av Norge",
"targets": [
"Amazon Echo",
"Android",
"Automotive",
"Bose",
"Chromecast",
"Movistar",
"Sonos",
"Web",
"iOS"
],
"factors": [
"TRENDING"
],
"score": 0.88
}],
"podcasts":[
{
"id": "3497",
"title": "DEKODET",
"url": "https://rss.podplaystudio.com/651.xml",
"expiryDate": "2025-07-23T07:46:30.738000",
"imageUrl": "https://d3t3ozftmdmh3i.cloudfront.net/staging/podcast_uploaded_nologo/42833742/42833742-1737966663514-07851023f5faa.jpg",
"totalEpisodes": 148,
"stationRpuids": [
"5784125"
],
"description": "Her åpner du DEKODET+ medlemskapet på Spotify –> https://creators.spotify.com/pod/show/kristian484/subscribePodden som gjør deg litt mindre dum i huet! Kristian Hope inviterer eksperter inn i studio for å dekode store og små spørsmål.DEKODET kan du også følge her: Tiktok, YouTube .",
"alphanumericKey": "d",
"image": {
"type": "logo_unrestricted",
"url": "https://d3t3ozftmdmh3i.cloudfront.net/staging/podcast_uploaded_nologo/42833742/42833742-1737966663514-07851023f5faa.jpg",
"width": 1400,
"height": 1400,
"language": "no",
"mimeValue": "image/jpeg",
"index": 0
},
"genres": [],
"classicSeriesId": null,
"factors": [
"PODCASTAFFINITY"
],
"score": 1.0
}
],
"episodes":[{
"uid": "157d870c35731ce461084311dfe8e43e9d6d32e7aa0a660200e206f024d32958",
"title": "Sander anmelder Patapon 1+2 Replay",
"podcastId": "12347",
"expiryDate": "2025-07-29T19:31:25.454000",
"description": "18 år etter det første spillet har SAS CO. og Bandai Namco sluppet en splitter ny versjon av det beste (og eneste) trommegudspillet der ute Patapon. Men klarer Patapon 1+2 Replay å fange gleden originalen skapte, eller er det hele tapt?",
"longDescriptions": [
{
"value": "18 år etter det første spillet har SAS CO. og Bandai Namco sluppet en splitter ny versjon av det beste (og eneste) trommegudspillet der ute Patapon. Men klarer Patapon 1+2 Replay å fange gleden originalen skapte, eller er det hele tapt?",
"language": "no"
}
],
"onDemandStreams": [
{
"availableStart": "2025-07-22T16:30:30Z",
"availableStop": "2025-07-29T19:31:25.454000Z",
"player": "https://share.transistor.fm/s/00187c3f",
"duration": 498000,
"audioStreams": [
{
"audioFormat": "",
"streamSource": {
"url": "https://media.transistor.fm/00187c3f/d849c73b.mp3",
"mimeValue": "audio/mpeg"
},
"bitRate": {
"target": 0,
"variable": false
}
}
]
}
],
"serviceName": "Radio Nova",
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://img.transistor.fm/-Jv8swg6rDZjJqG7qwDLRWEcfP_amxLlUqNmUbV8S5c/rs:fill:3000:3000:1/q:60/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9mYWNh/ZThlYjg5NjI0YjEz/MGRlYjY0MTYwNmQx/NzAzMS5wbmc.jpg",
"width": 1400,
"height": 1400,
"language": "no",
"mimeValue": "image/jpeg",
"index": 0
}
],
"alphanumericKey": "s",
"mediumNames": [
{
"value": "Sander anmelder ",
"language": "no"
}
],
"longNames": [
{
"value": "Sander anmelder Patapon 1+2 Replay",
"language": "no"
}
],
"links": [
{
"type": null,
"url": "https://media.transistor.fm/00187c3f/d849c73b.mp3",
"mimeValue": "audio/mpeg",
"language": "no",
"index": 0
}
],
"imageUrl": "https://img.transistor.fm/-Jv8swg6rDZjJqG7qwDLRWEcfP_amxLlUqNmUbV8S5c/rs:fill:3000:3000:1/q:60/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9mYWNh/ZThlYjg5NjI0YjEz/MGRlYjY0MTYwNmQx/NzAzMS5wbmc.jpg",
"consoleUrl": "https://consoles.radioplayer.cloud/5784085/index.html",
"url": "https://share.transistor.fm/s/00187c3f",
"startTime": "2025-07-22T16:30:30",
"stopTime": "2025-07-29T19:31:25.454000",
"classicId": null,
"factors": [
"ONDEMAND"
],
"score": 0.8
}]
}