Retrieve recent on-demand content from a specific station
/stations/{rpuid}/ondemand
Returns all information about on-demand content from a specific station. This is organised into a paginated array with the most recent items appearing first.
Endpoint
Base URL: https://api.radioplayer.org/v2/stations/{rpuid}/ondemand
Request Parameters
Header Fields
To find out how to correctly construct authentication headers for the Radioplayer Partner API (WRAPI) please see the Authentication guide.
Path Parameters
Lookup on-demand content by station id
/v2/stations/8261163/ondemand
PATH PARAMETER | VALUE |
---|---|
{rpuid} |
Specifies a single station object by its rpuid. This identifier can be found by querying the /stations endpoint. |
Query Parameters
QUERY PARAMETER | VALUE |
---|---|
page |
Optional. If the results are paginated, this specifies which page is returned. |
size |
Optional. This specifies the maximum number of results to return in the response. If not set, all results will be returned in paginated form. |
Response
When successful, the HTTP status code in the response header is 200 OK.
An array of onDemandStreams objects, children of a specific station object and listed in chronological order with the most recent first, are returned in JSON format (or on special request, XML supported by the RadioDNS schema).
content-type: application/json; charset=utf-8
x-ratelimit-limit: 300000
x-ratelimit-remaining: 285030
x-ratelimit-reset: 1585699200
If there is an error, the header returns an error status code.
The WRAPI also includes information about your monthly request quota in the returned header:
This includes information on:
- Your total monthly quota
- How many requests you have remaining for the month
- When the quota will be reset, given as a UNIX timestamp.
Example Response Body
{
"data": [
{
"id": "8261163:5a4832072d4cace08cbf4d6c3d4d80dbc5a0d1575c70ce0c65da4e7e9eaa3d83",
"name": "Afternoon Stretch - Thu 17 Apr",
"description": "3-4pm\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-15_1744898401.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T14:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-15_1744898401.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:30da7403263568a16467e3e9891012d6015d97289b1bc448a19a45d357b0d9a6",
"name": "Afternoon Stretch - Thu 17 Apr",
"description": "2-3pm 10 Today (exercise for older people) Followed by:\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-14_1744894801.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T13:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-14_1744894801.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:ef1fe53616c6d13322a713eaa66a1ab5b242a86330293e4897b0b015d569095d",
"name": "Speech Based Programmes - Thu 17 Apr",
"description": "1-2pm JD's Showbiz Razzle DazzleJacqui Drake talks to people connected with theatre. She chats to them about their involvement, their love of the arts, how they got started and plays their favourite show tunes.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-13_1744891201.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T12:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-13_1744891201.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:3d4aaddf1e48fc2b0341d7b1868a8051aaabdbb11e0da12135e6b195d796eef3",
"name": "One to One - Thu 17 Apr",
"description": "12-1pm A guest in the studio talking to Carole Moss about their life and choosing their favourite tracks of music.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-12_1744887601.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T11:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-12_1744887601.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:6350c91cee9c890753a7d3d1e1a3f15198f60f5211887513420665a5d5cc8eed",
"name": "Bradford and Beyond - Thu 17 Apr",
"description": "11-12am Slices of Bradford life.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-11_1744884001.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T10:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-11_1744884001.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:1c817457a1d7af04a3a8cf7ca5843ad7efab87fea576c4b725b3d8a3bc2840ac",
"name": "Democracy Now! - Thu 17 Apr",
"description": "10-11am Democracy Now! The daily, global, independent news hour hosted by award-winning journalists.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-10_1744880401.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T09:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-10_1744880401.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:a41fadf52d03fa47bc28cb62396cbb2ecffc370372dfd9dc5d21f72245c11702",
"name": "Speech Based Programmes - Thu 17 Apr",
"description": "9-10am Another chance to hear a BCB programme.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-9_1744876801.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T08:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-9_1744876801.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:e63f9026d497dd6ffa45a4004982e8accf921cc0d958b51d6d669d4898af479f",
"name": "Breakfast Show - Thu 17 Apr",
"description": "8-9am The best way to kick start your day with the BCB breakfast team.\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-8_1744873201.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-17T07:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_17-04-25_4-8_1744873201.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:d1bd34c6648b1a7bfcf41a56c584f9f73ece9d3dd147b3edaac272abbb70bda5",
"name": "Specialist Music - Wed 16 Apr",
"description": "11-12pm Dream Machine RadioPresented by Mark Haslam\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_16-04-25_3-23_1744840801.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-16T22:00:01.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_16-04-25_3-23_1744840801.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
},
{
"id": "8261163:7748e0f92ea721742f736ff7fbe94012a4da78b0fcb1465d35be29205a7d0256",
"name": "Specialist Music - Wed 16 Apr",
"description": "10-11pm Griffs Magic Theatre - where the price of entry is your mind...\tFile download (0:00 mins | 0 MB)",
"rpId": "1163",
"rpuid": "8261163",
"onDemandStreams": [
{
"bitRate": {
"target": 0,
"variable": false
},
"streamSource": {
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_16-04-25_3-22_1744837202.mp3",
"mimeValue": "audio/mpeg"
},
"availableStart": "2025-04-16T21:00:02.000Z",
"availableStop": "2025-05-13T18:35:02.558Z"
}
],
"series": {
"id": "1584"
},
"links": [
{
"url": "https://podcasts.canstream.co.uk/bcb/audio/bcb_16-04-25_3-22_1744837202.mp3",
"mimeValue": "audio/mpeg",
"language": "en",
"index": 0
}
],
"multimedia": [
{
"type": "logo_unrestricted",
"url": "https://podcasts.canstream.co.uk/bcb/images/itunescover.jpg",
"width": 1400,
"height": 1400,
"language": "en",
"mimeValue": "image/jpeg",
"index": 0
}
],
"languageCode": "en",
"podcastTitle": "BCB Listen Again",
"podcastLongName": "BCB 106.6fm - Bradford Community Broadcasting",
"country": "826"
}
]
}
The returned response body consists of a meta
and data
object.
The possible meta
field values for this endpoint are:
FIELD | VALUE |
---|---|
paginated |
Optional, Boolean. Sets how or if results are grouped into pages. In this endpoint, paginated is set to true . For more information on pagination, see the API Documentation index. |
nesting |
Optional, Boolean. Indicates whether full data objects are nested within other objects. In this endpoint, nesting is set to false .For more information on nesting, see the API Documentation index. |
dataType |
Object type returned by the request. In this case the object is ondemand . |
count |
Optional, string. A number describing how many items are in the data set. |
fromCache |
Optional, Boolean. Indicates whether this data came from cached data For more information on caching, please see the API Documentation index. |
cacheExpiresAt |
Optional. UNIX timestamp indicating when the cache will expire. For more information on caching, please see the API Documentation index. |
pageSize |
Optional, Integer. The number of results returned for each page. |
firstPage |
Optional, Boolean. Whether the current result is the first page. |
lastPage |
Optional, Boolean. Whether the current result is the last page. |
totalPages |
Optional, Integer. The total number of pages returned. |
pageNumber |
Optional, Integer. The current page number (starting at 0). |
The possible data
field values for this endpoint are:
FIELD | VALUE |
---|---|
country |
Integer. ISO numeric country code of the station that published the OD content. |
description |
Optional, String. A short (128 char max) description of the episode of the programme. |
id |
String. This is an identifier which refers to the episode of the show. |
languageCode |
String. The ISO language code (e.g., "en" for English) representing the language of the content. |
links |
Optional, Array. An array of links related to the content, often containing direct URLs to audio files. |
links ↳ url |
URL. The URL of the linked resource, typically pointing to an audio file. |
links ↳ mimeValue |
String. The MIME type of the linked resource (e.g., "audio/mpeg"). |
links ↳ language |
String. Language code for the linked resource. |
links ↳ index |
Integer. Priority index for the link, where lower values indicate higher priority. |
locations ↳ scheduledStart |
Optional, date. Where a series has been broadcast, there will be one or many pairs of scheduledStart and scheduledStop entries relating to the start and end times when the programme was originally broadcast. RFC3339 formatted date. |
locations ↳ scheduledStop |
Optional, date. RFC 3339 formatted date, rules as above, marking end date/time of original broadcast. |
multimedia |
Array. Where provided, this is an array of visual assets such as episode or series images depicting the programme. There may be none, one or many images available. |
multimedia ↳ url |
URL. The URL of the visual asset. |
multimedia ↳ mimeValue |
String. A string describing the MIME type of the visual asset such as image/jpeg. |
multimedia ↳ language |
String. Language of the image asset. Useful for image that may display lines of text. |
multimedia ↳ width |
Integer. The width of the visual asset in pixels. |
multimedia ↳ height |
Integer. The height of the visual asset in pixels. |
multimedia ↳ index |
Integer. Where multiple images are provided, this value indicates the image to attempt to use first, where the lower the value, the higher the priority. |
multimedia ↳ type |
String. The type of multimedia asset, e.g., "logo_unrestricted". |
name |
String. A string describing the title of the episode. |
onDemandStreams |
Optional, Array. An array of audio streams representing the programme. There may be multiple streams for a single broadcast and where provided, their child elements are outlined below. |
onDemandStreams ↳ streamSource ↳ url |
Optional, URL. Where a programme has an audio stream available, this URL determines its location. If no URL is stated, it should be assumed the broadcast is not available for replay. |
onDemandStreams ↳ streamSource ↳ mimeValue |
Optional, String. A string representing the MIME type of the associated stream URL. |
onDemandStreams ↳ bitRate ↳ target |
Integer. An integer describing the audio bitrate in bits per second (bps). In the event of a variable or average bitrate stream, this figure is the target bitrate but is subject to the expected variations. |
onDemandStreams ↳ bitRate ↳ variable |
Boolean. Indicates whether the bitrate is variable or fixed. When true, the bitrate may fluctuate around the target value. |
onDemandStreams ↳ availableStart |
Date. An RFC 3339 formatted date value describing the date beyond which it is permissible to make the stream available for playback by the public. The stream must not be made available before this date. |
onDemandStreams ↳ availableStop |
Date. An RFC 3339 formatted date describing the final date, beyond which you must cease distribution of the audio stream. The public must not be able to access the stream after this point. |
podcastTitle |
Optional, String. The title of the podcast series to which this episode belongs. |
podcastLongName |
Optional, String. The full, descriptive name of the podcast, often including the station name. |
rpId |
String. A station identifier, typically shorter than the rpuid. |
rpuid |
String. A unique identifier relating to the radio station that published the OD content. |
series |
Object. Where an on-demand episode is part of a series, this object provides additional information. |
series ↳ id |
String. An identifier of the parent series to which this episode relates. |