The Open Nitro Project is joined by the Open iBL Project, and full Open-API (swagger) specifications now exist for both.

Both the input (parameters etc) and output (response models) of the Nitro API are automatically generated from the BBC’s API specification and XSD schema respectively.

The iBL input-side is manually generated but the response models are directly produced from the BBC JSON schema with just a few transformations to cope with differences between the Swagger schema specification and JSON schema.

Both specifications have been accepted by APIs-guru (a Wikipedia for web APIs) so are available automatically in several linked projects.

The current version of the iBL API is v1.0 release 366.

Between release 360 and 363 the BBC iBL team fixed a couple of issues I reported to them via email. A couple of typo’s in the JSON Schema meant the model definitions were not being referenced properly. There was also a missing model (store_version). Many thanks to the iBL guys for fixing this. The API has gained some editorial information with respect to episode categories and titles.

iBL Swagger documentation

The Nitro API continues to be verbosely self-documenting. A schema change now allows mixins to declare which filters affect their behaviour. How useful this information is, is possibly a different question. The first example documents the interaction between the available_versions mixin and the payment_type filter.

In March support was added for unstable mixins. The schema allows for unstable sorts and filters too. Hopefully unstable relates to reproducibility, pagination etc, rather than support levels, as Nitro already defines release_status of alpha, beta, supported and deprecated.

Answering my own question from a previous post, turning on debug information in the availabilities feed was as simple as adding a debug=true parameter to the Nitro call. This undocumented parameter has been patched into the Swagger documentation.

Nitro Swagger documentation


14 April 2016