BBC Programmes API JSON feeds

Mike Ralphson mike.ralphson at
Mon Jul 10 13:28:11 PDT 2017

Hi Anthony,

Most of the information is freely available on GitHub, specifically and in this case

The API hostname just took a bit of trial and error. :)

As to longevity, your guess is as good as mine, but probably as long as it takes the BBC to rewrite their programmes-frontend project. The only date we have been given is: "The remaining JSON feeds will remain in operation until May 1, 2018." 

I think iterating through the A-Z lists is the best way to generate a complete list of PIDs, unless you just want the aggregated schedule data for the last month, in which case I would suggest looking at


Sent: Monday, July 10, 2017 at 5:21 PM
From: "Anthony Fletcher" <anthony at>
To: "gip list" <get_iplayer at>
Subject: Re: BBC Programmes API JSON feeds

Thanks Mike - how did you discover them? Any idea of their longevity?
and is there a way of getting a complete list of PIDs other than looking
for every letter in the alphabet?


On 08 Jul 2017 at 16:36:46, Mike Ralphson wrote:
> Hi,
> I know a number of subscribers maintain their own scripts which use (or used) a number of the BBC feeds which were recently retired.
> It may be of interest that a number of the feeds are now available at:
> with URLs matching the following routes
> /aps/programmes/{pid}/episodes/{year}/{month}.json
> /aps/programmes/{pid}/episodes/last.json
> /aps/programmes/{pid}/episodes/upcoming.json
> /aps/programmes/{pid}/episodes.json
> /aps/programmes/{pid}/children.json
> /aps/programmes/{pid}/segments.json
> /aps/programmes/{pid}/series.json
> /aps/programmes/{pid}.json
> /aps/programmes/{categoryType}.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/schedules/upcoming.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/player/episodes.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/{slice}.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/schedules/{year}/{month}/calendar.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/schedules/{year}/{month}/{day}/subcategories.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}/schedules/{year}/{month}/{day}.json
> /aps/programmes/{categoryType}/{urlKeyHierarchy}.json
> /aps/{networkKey}/programmes/music/artists/charts.json
> /aps/programmes/music/artists/charts.json
> /aps/programmes/music/artists/{musicBrainzId}.json
> /aps/programmes/a-z.json
> /aps/programmes/a-z/{slice}.json
> /aps/programmes/a-z/by/{search}.json
> /aps/programmes/a-z/by/{search}/{slice}.json
> /availability/{pid}.json
> /
> /debug/{serviceName}/{serviceMethod}
> Where {categoryType} is either genres or formats, and {urlKeyHierarchy} is either a category/format such as drama, or a wider/narrower pair such as comedy/sitcoms.
> {slice} is either player or all.
> Most URLs take a 'page=' parameter.
> Best,
> Mike

More information about the get_iplayer mailing list