Radioplayer Developer Reference

Recommendation Endpoints

Technical reference for Radioplayer partner integrations.

Version
Current
Document type
API reference
Audience
Radioplayer partner engineering teams

Available factors

To perform a recommendation request, at least one factor must be specified. If no factors or invalid factors are provided, an empty response will be returned.

Currently, the supported factors are:

Recommendation Endpoints

/{countryCode}/metadata/api/v2/recommendation

Description

This endpoint provides personalized recommendations for live radio stations and on-demand episodes (podcasts) based on the specified factors.

The recommendations are filtered based on the client's access permissions and the provided country code. Factors like trending stations, geographic location, and user preferences influence the results.

The response includes:

Request Parameters

The request consists of a path parameter , a header parameter , and a request body.

Path ParametersName| Type| Required| Description

---|---|---|--- countryCode| string| Yes| The country code used to filter recommendations.

Header ParametersName| Type| Required| Description

---|---|---|--- Radioplayer-Client| string| Yes| A unique identifier for the client making the request. The response will be filtered to include only content that the client has access to.

Request Body Parameters

The request body is a JSON structure containing filters and preferences for generating recommendations.

NameTypeRequiredDescription
guidstringNoUsed for backward compatibility but does not affect the recommendation results.
rpIdstring orintegerNoThe radio station ID to base recommendations on.
presetRpIdsstring orintegerNoA list of station IDs to prioritize in recommendations.
latitudefloatNoThe latitude of the user (for geo-based recommendations).
longitudefloatNoThe longitude of the user (for geo-based recommendations).
factorsstringYesA list of factors influencing recommendations (e.g., TRENDING, GEO, AFFINITY, ONDEMAND).
artistPlayCountsstringNoCurrently not used in the recommendation engine.
facebookArtistsstringNoCurrently not used in the recommendation engine.

Notes

Use case request body

{
    "guid": "default-guid",
    "latitude": 51.521129,
    "longitude": -0.16768,
    "factors": [
    "GEO",
    "TRENDING",
    "AFFINITY",
    "ONDEMAND"
    ],
    "rpId":347
}

Response Format

The response includes recommended live radio stations and on-demand episodes (if ONDEMAND is specified as a factor).

Sample Response
{
    "recommendations": [
    {
        "type": "SERVICE",
        "id": "237",
        "factors": [
        "GEO",
        "AFFINITY"
        ]
    },
    {
        "type": "SERVICE",
        "id": "500",
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "type": "SERVICE",
        "id": "1478",
        "factors": [
        "GEO"
        ]
    },
    {
        "id": "da6af5183bd0e873c663bcb09903b130944fbefe65be0666fd25a83b4f5b1115",
        "factors": [
        "GEO",
        "TRENDING",
        "AFFINITY",
        "ONDEMAND"
        ],
        "type": "ONDEMAND",
        "rpId": "344",
        "name": "Nibble Some Nuts",
        "description": "Nuts are a rich source of fibre and polyphenols. They are also very high in fats and calories, but studies have shown that eating these bite-sized snacks won’t add to your waistline. These nutrient powerhouses could also help slow-down the ageing process. Research has found that walnut eaters live, on average, over a year longer than those who don’t. What’s more, adding nuts to your diet can help your brain! Michael Mosley is joined by Dr Sze-Yen Tan from Deakin University in Australia who reveals how eating nuts can benefit the brain, and why eating moderate amounts of nuts won’t add to your waistline. A recent study of his found that people who ate nuts performed better in cognitive tests and had improved short-term memory.  Meanwhile, our volunteer Emma swaps out her usual snack for a handful of mixed nuts!",
        "longDescriptions": [
        {
            "value": "Nuts are a rich source of fibre and polyphenols. They are also very high in fats and calories, but studies have shown that eating these bite-sized snacks won’t add to your waistline. These nutrient powerhouses could also help slow-down the ageing process. Research has found that walnut eaters live, on average, over a year longer than those who don’t. What’s more, adding nuts to your diet can help your brain! Michael Mosley is joined by Dr Sze-Yen Tan from Deakin University in Australia who reveals how eating nuts can benefit the brain, and why eating moderate amounts of nuts won’t add to your waistline. A recent study of his found that people who ate nuts performed better in cognitive tests and had improved short-term memory.  Meanwhile, our volunteer Emma swaps out her usual snack for a handful of mixed nuts!",
            "language": "en"
        }
        ],
        "onDemandStreams": [
        {
            "player": "http://www.bbc.co.uk/programmes/m001jkq4",
            "audioStreams": [
            {
                "streamSource": {
                    "url": "http://open.live.bbc.co.uk/mediaselector/6/redir/version/2.0/mediaset/audio-nondrm-download-rss/proto/http/vpid/p0f48wqs.mp3",
                    "mimeValue": "audio/mpeg"
                },
                "bitRate": {
                    "target": 0,
                    "variable": false
                }
            }
            ],
            "duration": 874000,
            "availableStart": "2023-02-22T09:00:00Z",
            "availableStop": "2025-02-11T16:00:10Z"
        }
        ],
        "genres": [],
        "series": {
            "id": "8288"
        },
        "serviceName": "BBC Radio 4",
        "multimedia": [
        {
            "type": "logo_unrestricted",
            "url": "http://ichef.bbci.co.uk/images/ic/3000x3000/p0hzv911.jpg",
            "width": 1400,
            "height": 1400,
            "language": "en",
            "mimeValue": "image/jpeg",
            "index": 0
        }
        ],
        "alphanumericKey": "j",
        "mediumNames": [
        {
            "value": "Nibble Some Nuts",
            "language": "en"
        }
        ],
        "longNames": [
        {
            "value": "Nibble Some Nuts",
            "language": "en"
        }
        ],
        "links": [
        {
            "url": "http://open.live.bbc.co.uk/mediaselector/6/redir/version/2.0/mediaset/audio-nondrm-download-rss/proto/http/vpid/p0f48wqs.mp3",
            "mimeValue": "audio/mpeg",
            "index": 0,
            "language": "en"
        }
        ],
        "keywords": []
    }
    ]
}

/{countryCode}/metadata/api/v2/recommendation/aggregate

Description

This endpoint provides aggregated recommendations for live radio stations and on-demand episodes (podcasts), including a list of trending station IDs.

The recommendations are filtered based on the client's access permissions and the provided country code. Factors such as trending stations, geographic location, and user preferences influence the results.

Request Parameters

The request consists of a path parameter , a header parameter , and a request body.

Path ParametersName| Type| Required| Description

---|---|---|--- countryCode| string| Yes| The country code used to filter recommendations.

Header ParametersName| Type| Required| Description

---|---|---|--- Radioplayer-Client| string| Yes| A unique identifier for the client making the request. The response will be filtered to include only content that the client has access to.

Request Body

The request body is a JSON structure containing filters and preferences for generating recommendations.

NameTypeRequiredDescription
guidstringNoUsed for backward compatibility , but does not affect the recommendation results.
rpIdstring orintegerNoThe radio station ID to base recommendations on.
presetRpIdsstring orintegerNoA list of station IDs to prioritize in recommendations.
latitudefloatNoThe latitude of the user (for geo-based recommendations).
longitudefloatNoThe longitude of the user (for geo-based recommendations).
factorsstringYesA list of factors influencing recommendations (TRENDING, GEO, AFFINITY, ONDEMAND).
artistPlayCountsstringNoCurrently not used in the recommendation engine.
facebookArtistsstringNoCurrently not used in the recommendation engine.

Notes

Response Format

The response includes recommended live radio stations, on-demand episodes , and a list of trending station IDs.

Sample Response
{
    "trending": [
    "500",
    "260",
    "516",
    "258",
    "255",
    "100",
    "257",
    "521",
    "232",
    "291",
    "1541",
    "1257",
    "101",
    "405",
    "550"
    ],
    "recommendations": [
    {
        "type": "SERVICE",
        "id": "237",
        "factors": [
        "GEO",
        "AFFINITY"
        ]
    },
    {
        "type": "SERVICE",
        "id": "500",
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "type": "SERVICE",
        "id": "1478",
        "factors": [
        "GEO"
        ]
    },
    {
        "id": "da6af5183bd0e873c663bcb09903b130944fbefe65be0666fd25a83b4f5b1115",
        "factors": [
        "GEO",
        "TRENDING",
        "AFFINITY",
        "ONDEMAND"
        ],
        "type": "ONDEMAND",
        "rpId": "344",
        "name": "Nibble Some Nuts",
        "description": "Nuts are a rich source of fibre and polyphenols. They are also very high in fats and calories, but studies have shown that eating these bite-sized snacks won’t add to your waistline. These nutrient powerhouses could also help slow-down the ageing process. Research has found that walnut eaters live, on average, over a year longer than those who don’t. What’s more, adding nuts to your diet can help your brain! Michael Mosley is joined by Dr Sze-Yen Tan from Deakin University in Australia who reveals how eating nuts can benefit the brain, and why eating moderate amounts of nuts won’t add to your waistline. A recent study of his found that people who ate nuts performed better in cognitive tests and had improved short-term memory.  Meanwhile, our volunteer Emma swaps out her usual snack for a handful of mixed nuts!",
        "longDescriptions": [
        {
            "value": "Nuts are a rich source of fibre and polyphenols. They are also very high in fats and calories, but studies have shown that eating these bite-sized snacks won’t add to your waistline. These nutrient powerhouses could also help slow-down the ageing process. Research has found that walnut eaters live, on average, over a year longer than those who don’t. What’s more, adding nuts to your diet can help your brain! Michael Mosley is joined by Dr Sze-Yen Tan from Deakin University in Australia who reveals how eating nuts can benefit the brain, and why eating moderate amounts of nuts won’t add to your waistline. A recent study of his found that people who ate nuts performed better in cognitive tests and had improved short-term memory.  Meanwhile, our volunteer Emma swaps out her usual snack for a handful of mixed nuts!",
            "language": "en"
        }
        ],
        "onDemandStreams": [
        {
            "player": "http://www.bbc.co.uk/programmes/m001jkq4",
            "audioStreams": [
            {
                "streamSource": {
                    "url": "http://open.live.bbc.co.uk/mediaselector/6/redir/version/2.0/mediaset/audio-nondrm-download-rss/proto/http/vpid/p0f48wqs.mp3",
                    "mimeValue": "audio/mpeg"
                },
                "bitRate": {
                    "target": 0,
                    "variable": false
                }
            }
            ],
            "duration": 874000,
            "availableStart": "2023-02-22T09:00:00Z",
            "availableStop": "2025-02-11T16:00:10Z"
        }
        ],
        "genres": [],
        "series": {
            "id": "8288"
        },
        "serviceName": "BBC Radio 4",
        "multimedia": [
        {
            "type": "logo_unrestricted",
            "url": "http://ichef.bbci.co.uk/images/ic/3000x3000/p0hzv911.jpg",
            "width": 1400,
            "height": 1400,
            "language": "en",
            "mimeValue": "image/jpeg",
            "index": 0
        }
        ],
        "alphanumericKey": "j",
        "mediumNames": [
        {
            "value": "Nibble Some Nuts",
            "language": "en"
        }
        ],
        "longNames": [
        {
            "value": "Nibble Some Nuts",
            "language": "en"
        }
        ],
        "links": [
        {
            "url": "http://open.live.bbc.co.uk/mediaselector/6/redir/version/2.0/mediaset/audio-nondrm-download-rss/proto/http/vpid/p0f48wqs.mp3",
            "mimeValue": "audio/mpeg",
            "index": 0,
            "language": "en"
        }
        ],
        "keywords": []
    }
    ]
}

/{countryCode}/metadata/api/v2/recommendation/services

Description

This endpoint provides recommended live radio stations based on specified factors such as geographical relevance, user preferences, and trending stations.

The recommendations are filtered based on the client's access permissions and the provided country code.

Request Parameters

The request consists of a path parameter , a header parameter , and a request body.

Path ParametersName| Type| Required| Description

---|---|---|--- countryCode| string| Yes| The country code used to filter recommendations.

Header ParametersName| Type| Required| Description

---|---|---|--- Radioplayer-Client| string| Yes| A unique identifier for the client making the request. The response will be filtered to include only content that the client has access to.

Request Body

The request body is a JSON structure containing filters and preferences for generating recommendations.

NameTypeRequiredDescription
guidstringNoUsed for backward compatibility , but does not affect the recommendation results.
rpIdstring or integerNoThe radio station ID to base recommendations on.
presetRpIdsstring orintegerNoA list of station IDs to prioritize in recommendations.
latitudefloatNoThe latitude of the user (for geo-based recommendations).
longitudefloatNoThe longitude of the user (for geo-based recommendations).
factorsstringYesA list of factors influencing recommendations (TRENDING, GEO, AFFINITY). ONDEMANDis automatically excluded. Update 03/02/2026: a new factor has been added: TOP. This works only if, at least, carmaker parameter is set.
artistPlayCountsstringNoCurrently not used in the recommendation engine.
product_typestringNoUsed for “TOP” factor. It can be one of:

05/02/2026 - New feature in production but works are in progress: the list of product types will be updated in the next future. interval| int| No| Used for “TOP” factor. It can be 7 (for the top retrieved from the last 7 days available from insights) or 30. Default: 30 limit| int| No| Used for “TOP” factor. It’s the number of results to be retrieved for “TOP”. Default: 10.

Notes

Response Format

The response includes recommended live radio stations with their calculated scores and the factors influencing the recommendation.

Sample Response
{
    "services": [
    {
        "id": "232",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "210",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "204",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "101",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "217",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "205",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "102",
        "score": 1.0,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "221",
        "score": 0.83,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "218",
        "score": 0.79,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "206",
        "score": 0.77,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "213",
        "score": 0.77,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "212",
        "score": 0.74,
        "factors": [
        "TRENDING",
        "AFFINITY"
        ]
    },
    {
        "id": "195",
        "score": 0.71,
        "factors": [
        "AFFINITY"
        ]
    },
    {
        "id": "215",
        "score": 0.64,
        "factors": [
        "AFFINITY"
        ]
    },
    {
        "id": "211",
        "score": 0.64,
        "factors": [
        "AFFINITY"
        ]
    },
    {
        "id": "114",
        "score": 0.11,
        "factors": [
        "TRENDING"
        ]
    },
    {
        "id": "186",
        "score": 0.08,
        "factors": [
        "TRENDING"
        ]
    },
    {
        "id": "229",
        "score": 0.07,
        "factors": [
        "TRENDING"
        ]
    }
    ]
}

/{countryCode}/metadata/api/v4/recommendation/series

Description

This endpoint provides recommended podcast series based on the PODCASTAFFINITY factor. If no valid recommendations are found, or if factors other than PODCASTAFFINITY (or additional factors alongside it) are provided, the API will return a random selection of podcasts from the database.

The recommendations are filtered based on the client's access permissions and the provided country code.

Request Parameters

The request consists of a path parameter , a header parameter , and a request body.

Path ParametersName| Type| Required| Description

---|---|---|--- countryCode| string| Yes| The country code used to filter recommendations.

Header ParametersName| Type| Required| Description

---|---|---|--- Radioplayer-Client| string| Yes| A unique identifier for the client making the request. The response will be filtered to include only content that the client has access to.

Request Body

The request body is a JSON structure containing filters and preferences for generating podcast recommendations.

NameTypeRequiredDescription
guidstringNoUsed for backward compatibility , but does not affect the recommendation results.
rpIdstring , intNoThe radio station ID to base recommendations on.
latitudefloatNoThe latitude of the user (for geo-based recommendations).
longitudefloatNoThe longitude of the user (for geo-based recommendations).
factorsstringYesThe only accepted factors for this request is PODCASTAFFINITY and TOP. If other factors are provided, recommendations will be empty.
seriesarrayNoThis field accepts either a list of strings representing the podcast series IDs or a list of series objects. Each series object contains:
- rpId (string) → The station ID that owns the series. - seriesId (string) → The unique identifier of the podcast series. presetRpIdsarray of str, intNoA list of station IDs to prioritize in recommendations.
artistPlayCountsstringNoCurrently not used in the recommendation engine.
product_typestringNoUsed for “TOP” factor. It can be one of:

05/02/2026 - New feature in production but works are in progress: the list of product types will be updated in the next future. interval| int| No| Used for “TOP” factor. It can be 7 (for the top retrieved from the last 7 days available from insights) or 30. Default: 30 limit| int| No| Used for “TOP” factor. It’s the number of results to be retrieved for “TOP”. Default: 10.

Sample request body

{
    "guid": "string",
    "latitude": 0,
    "longitude": 0,
    "factors": [
    "string"
    ],
    "rpId": "string",
    "presetRpIds": [
    "string",
    0
    ],
    "series": [
    {
        "rpId": "string",
        "seriesId": "string"
    }
    ]
}

Notes

Use case request body

{
    "guid": "F47BB9AC-0ED8-432D-8CBE-93EB1891E91E",
    "rpId": "228",
    "latitude": "51.6126875",
    "longitude": "-0.2079375",
    "factors": ["PODCASTAFFINITY"],
    "presetRpIds": ["228", "1162", "1396"],
    "series": [ { "rpId": "1004", "seriesId" : "1604"}]
}

Response Format

The response includes recommended podcast series with their service, genre, and image details.

Sample Response
{
    "series": [
    {
        "type": "SERIES",
        "factors": [
        "PODCASTAFFINITY"
        ],
        "id": "8604",
        "rpId": "350",
        "name": "Witness History: Archive 2014",
        "description": "The story of our times told by the people who were there.",
        "series": {
            "id": "8604"
        },
        "service": {
            "id": "350",
            "name": "BBC World Service"
        },
        "genre": [],
        "image": {
            "url": "http://ichef.bbci.co.uk/images/ic/3000x3000/p02q2n27.jpg",
            "width": 1400,
            "height": 1400,
            "language": "en",
            "mimeValue": "image/jpeg",
            "index": 0,
            "mediaType": "logo_unrestricted"
        }
    }
    ]
}

Recommendations for Germany (countryCode = 276)

When a recommendation request is made with countryCode set to 276 (Germany) and valid _latitude_ and _longitude_ values corresponding to a location in Germany, specific handling applies.

Description

If the GEO factor is included in the request, latitude and longitude are provided and define a point in Germany, station recommendations will be determined exclusively based on the PUBLICVALUE associated with the administrative district of the provided location.

Other factors such as TRENDING or AFFINITY will not be considered for station recommendations.

However, if the request includes on-demand content , all specified factors (e.g., TRENDING, AFFINITY, ONDEMAND) will still be applied for on-demand recommendations.

The PUBLICVALUE criteria ensure that station recommendations align with regionally relevant public broadcasting priorities.

Notes

If no valid latitude and longitude values are provided, the request will be processed using standard recommendation logic without applying PUBLICVALUE-based filtering.

The same request format as /metadata/api/v2/recommendation applies, but response content will be adjusted accordingly: station recommendations will be based solely on PUBLICVALUE, while on-demand content recommendations will consider all requested factors.

For more details on PUBLICVALUE , refer to the official page: Radioplayer PUBLICVALUE.

Use Case

Example request

If a request is sent to /276/metadata/api/v2/recommendation with the following body:

{
    "guid": "1234abcd",
    "latitude": 52.5,
    "longitude": 13.4,
    "factors": [
    "GEO",
    "TRENDING",
    "AFFINITY",
    "ONDEMAND"
    ]
}

Example response

The response will include station recommendations based solely on PUBLICVALUE, while on-demand recommendations will still consider all specified factors:

{
    "recommendations": [
    {
        "type": "SERVICE",
        "id": "25",
        "factors": ["PUBLICVALUE"]
    },
    {
        "type": "SERVICE",
        "id": "1661",
        "factors": ["PUBLICVALUE"]
    },
    // ...
    {
        "id": "815af063006faf9e2fee7af2bf64f0d76d442dc5a176d17ff8f0a0a30d7978ef",
        "factors": [
        "GEO",
        "TRENDING",
        "AFFINITY",
        "ONDEMAND"
        ],
        "type": "ONDEMAND",
        "rpId": "2568",
        "name": "Oma 24.01.2025",
        "description": "",
        "onDemandStreams": [
        {
            "player": "https://podcast.funkhaus-rosenheim.de/podcast/oma-24-01-2025/",
            "audioStreams": [
            {
                "streamSource": {
                    "url": "https://podcast.funkhaus-rosenheim.de/podcast-download/7913/oma-24-01-2025.mp3",
                    "mimeValue": "audio/mpeg"
                }
            }
            ]
        }
        ]
    }
    ]
}