{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "BBC Nitro API", "x-logo": { "url": "https://developer.bbc.co.uk/sites/default/files/Nitro%20On%20White.png" }, "x-apiClientRegistration": { "url": "https://developer.bbc.co.uk/user/register" }, "description": "BBC Nitro is the BBC's application programming interface (API) for BBC Programmes Metadata.", "termsOfService": "http://www.bbc.co.uk/terms/", "contact": { "name": "Open Nitro Project", "email": "Jon.Billings@bbc.co.uk", "url": "http://developer.bbc.co.uk/" }, "license": { "name": "Nitro Public License", "url": "https://developer.bbc.co.uk/nitropubliclicence/" } }, "externalDocs": { "description": "Nitro for developers", "url": "https://developer.bbc.co.uk/nitro" }, "host": "programmes.api.bbc.com", "basePath": "/nitro/api", "tags": [ { "name": "feeds", "description": "Nitro data feeds" }, { "name": "schema", "description": "Nitro metadata" } ], "schemes": [ "http" ], "consumes": [ "application/json" ], "produces": [ "application/json", "application/xml" ], "paths": { "/programmes": { "get": { "description": "Fetch metadata about Programmes (brands, series, episodes, clips). By applying different filter restrictions this feed can be used in many ways, for example to retrieve all series belonging to a brand, all the episodes and/or clips for a specific series, or any TLEO objects for a masterbrand. Other filters permit restricting to specific formats and/or genres, and you can request specific versions (for example Signed or Audio-Described). Parameters may be combined in any way suitable for your application.", "tags": [ "feeds" ], "summary": "Start here for programmes metadata: Brands, Series, Episodes and Clips", "operationId": "listProgrammes", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort numerically by position in group, ascending\n* sort alphabetically by PID, descending\n* sort numerically by position, ascending\n* sort by promotion rank, ascending\n* sort chronologically by release date, descending\n* sort by weighting of search term (use with q parameter)\n* sort chronologically by scheduled start time/date, ascending\n* sort alphabetically by title, ascending\n* sort by title librarian style (ignoring leading 'The', 'A', etc), ascending\n* sort by root pid and then preorder tree sort. Requires entities to have release date.\n* sort numerically by number of views (most popular first - faster most_popular)\n", "type": "string", "required": false, "enum": [ "group_position", "pid", "position", "promotion", "release_date", "relevance", "scheduled_start", "strict_title", "title", "tree", "views" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending", "descending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* mixin to return the alternate images for a programme\n* mixin to return ancestor programme titles\n* mixin to return programme availability information\n* mixin to return information about programmes that are currently available\n* mixin to return information about contributors to a programme\n* mixin to return original version duration in programme concept entities\n* mixin to return list of genre groupings\n* mixin to add image information for a programme\n* mixin to add embeddable information for a programme\n* mixin to return the programmes which appear before and after a programme (as determined by the sort applied in the request)\n* mixin to return information about related links to a programme\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "alternate_images", "ancestor_titles", "availability", "available_versions", "contributions", "duration", "genre_groupings", "images", "is_embeddable", "previous_next", "related_links" ] }, { "name": "audio_described", "in": "query", "description": "filter for subset of programmes that are audio-described", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "true", "false" ] }, { "name": "availability", "in": "query", "description": "filter for subset of programmes that have availability", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "available", "pending" ] }, { "name": "availability_entity_type", "in": "query", "description": "additional filter when availability=available", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "episode", "clip" ] }, { "name": "availability_type", "in": "query", "description": "filter for a subset of programmes that are available for a given type", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "ondemand" ] }, { "name": "children_of", "in": "query", "description": "filter for subset of programmes that have PID as immediate parent", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "descendants_of", "in": "query", "description": "filter for subset of programmes that have PID as ancestor", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "duration", "in": "query", "description": "filter for subset of programmes that have given duration", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "short", "medium", "long" ] }, { "name": "entity_type", "in": "query", "description": "filter for subset of programmes that have given entity type", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "brand", "series", "episode", "clip" ] }, { "name": "format", "in": "query", "description": "filter for subset of programmes with format", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "genre", "in": "query", "description": "filter for subset of programmes with genre", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "group", "in": "query", "description": "filter for subset of programmes which belong to the given group pid", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "initial_letter", "in": "query", "description": "filter for subset of programmes with title beginning with initial letter librarian style (ignoring leading 'The', 'An' (Welsh), etc) 0-9 a-z", "type": "string", "minLength": 1, "maxLength": 1, "required": false }, { "name": "initial_letter_end", "in": "query", "description": "Programmes with (librarian) titles whose initial letter is equal/before given letter. Use with initial_letter_start for a range", "type": "string", "minLength": 1, "maxLength": 1, "required": false }, { "name": "initial_letter_start", "in": "query", "description": "Programmes with (librarian) titles whose initial letter is equal/after given letter. Use with initial_letter_end for range.", "type": "string", "minLength": 1, "maxLength": 1, "required": false }, { "name": "initial_letter_strict", "in": "query", "description": "filter for subset of programmes with title beginning with initial letter", "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 1 }, "collectionFormat": "multi", "required": false }, { "name": "item", "in": "query", "description": "filter for subset of programmes with linked to versions which have the given item pids", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "master_brand", "in": "query", "description": "filter for subset of programmes with master_brand", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "media_set", "in": "query", "description": "filter for subset of programmes with media set", "type": "string", "required": false }, { "name": "media_type", "in": "query", "description": "filter for subset of programmes with media type", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "audio", "audio_video" ] }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for programmes by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for programmes by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "people", "in": "query", "description": "filter for subset of programmes with contributions by given people PID", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of programmes having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "promoted_for", "in": "query", "description": "filter for subset of programmes which are promoted for given service", "type": "string", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of programmes matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "signed", "in": "query", "description": "filter for subset of programmes that are signed", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "exclusive", "inclusive", "exclude" ] }, { "name": "tag_name", "in": "query", "description": "filter for subset of programmes with tag", "type": "string", "required": false }, { "name": "tag_scheme", "in": "query", "description": "filter for subset of programmes with a tag", "type": "string", "required": false }, { "name": "tleo", "in": "query", "description": "filter for subset of programmes that are TLEOs", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "true", "false" ] }, { "name": "version", "in": "query", "description": "filter for subset of programmes with given PID as one of their versions", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/availabilities": { "get": { "description": "Discover details of on-demand availability for programmes and their versions", "tags": [ "feeds" ], "summary": "Discover details of on-demand availability for programmes and their versions", "operationId": "listAvailability", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort chronologically by scheduled start time/date, ascending\n", "type": "string", "required": false, "enum": [ "scheduled_start" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending", "descending" ] }, { "name": "availability", "in": "query", "description": "filter for subset of availabilities", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "available" ] }, { "name": "descendants_of", "in": "query", "description": "filter for subset of availabilities that have PID as ancestor", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "media_set", "in": "query", "description": "filter for subset of availabilities with media set", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "territory", "in": "query", "description": "filter for availabilities in given territory", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "uk", "nonuk", "world" ] } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/broadcasts": { "get": { "description": "Fetch metadata about linear Broadcasts and Services, allowing the generation of Television and Radio schedules and other datasets for broadcast items.", "tags": [ "feeds" ], "summary": "Build schedules and find metadata for TV and radio broadcasts", "operationId": "listBroadcasts", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort chronologically by scheduled start time/date, ascending\n", "type": "string", "required": false, "enum": [ "start_date" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending", "descending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* return ancestor programme titles\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "titles" ] }, { "name": "authority", "in": "query", "description": "filter for subset of broadcasts that have given authority", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "descendants_of", "in": "query", "description": "filter for subset of broadcasts that are descendants of the given programme PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "end_from", "in": "query", "description": "filter for subset of broadcasts that end on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "end_to", "in": "query", "description": "filter for subset of broadcasts that end on or earlier than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "format", "in": "query", "description": "filter for subset of broadcasts that are classified in the given format ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "genre", "in": "query", "description": "filter for subset of broadcasts that are classified in the given genre ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "id", "in": "query", "description": "filter for subset of broadcasts that have given identifier", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "item", "in": "query", "description": "filter for subset of broadcasts with the given item performed on it", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "people", "in": "query", "description": "filter for subset of broadcasts that have given contributor", "type": "string", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of broadcasts having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of broadcasts matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "schedule_day", "in": "query", "description": "filter for subset of broadcasts that start on the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "schedule_day_from", "in": "query", "description": "filter for subset of broadcasts that start on or after the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "schedule_day_to", "in": "query", "description": "filter for subset of broadcasts that start on or before the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "service_master_brand", "in": "query", "description": "filter for subset of broadcasts with given service master brand", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "sid", "in": "query", "description": "filter for subset of broadcasts that are on the specified linear service", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "start_from", "in": "query", "description": "filter for subset of broadcasts that start on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "start_to", "in": "query", "description": "filter for subset of broadcasts that start on or earlier than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "version", "in": "query", "description": "filter for subset of broadcasts with given PID as their parent version", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/groups": { "get": { "description": "Find metadata for curated groups: seasons, collections, galleries or franchises", "tags": [ "feeds" ], "summary": "Find metadata for curated groups: seasons, collections, galleries or franchises", "operationId": "listGroups", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort alphabetically by PID\n", "type": "string", "required": false, "enum": [ "pid" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "descending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* mixin to return the alternate images for a group\n* mixin to return links to programme entities that group belongs to\n* mixin to add image information for a group\n* mixin to return related links for the group\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "alternate_images", "group_for", "images", "related_links" ] }, { "name": "for_descendants_of", "in": "query", "description": "filter for groups related to given programme or its descendants", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "for_programme", "in": "query", "description": "filter for subset of groups directly related to a given programme", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "group", "in": "query", "description": "filter for subset of groups which belong to the given group pid", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "group_type", "in": "query", "description": "filter for subset of groups that have the given group type", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "collection", "franchise", "gallery", "season" ] }, { "name": "member", "in": "query", "description": "filter for subset of groups which contain an entity with the given pid as a member", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for groups by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for groups by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of seasons, collections, galleries or franchises having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of groups matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/images": { "get": { "description": "Find metadata for images", "tags": [ "feeds" ], "summary": "Find metadata for images", "operationId": "listImages", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort numerically by position, ascending only\n* sort alphabetically by PID\n", "type": "string", "required": false, "enum": [ "group_position", "pid" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending", "descending" ] }, { "name": "group", "in": "query", "description": "filter for images belonging to the given group (i.e. Gallery)", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "image_type", "in": "query", "description": "filter for images by type", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "standard", "podcast", "store", "portrait", "letterbox" ] }, { "name": "is_alternate_image_for", "in": "query", "description": "filter for alternate images by entity PID", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "is_image_for", "in": "query", "description": "filter for images by entity PID", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for images by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for images by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of images having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of images matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/items": { "get": { "description": "Look inside programmes to find segments: chapters, tracks and more", "tags": [ "feeds" ], "summary": "Look inside programmes to find segments: chapters, tracks and more", "operationId": "listItems", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort by pid, descending\n", "type": "string", "required": false, "enum": [ "pid" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "descending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* mixin to return information about contributors to items\n* mixin to add image information for an item\n* mixin to return programme segment events, works in conjunction with programme or segment_event filters\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "contributions", "images", "play_event" ] }, { "name": "authority", "in": "query", "description": "filter for subset of items that have an ID issued by the given authority", "type": "string", "required": false }, { "name": "id", "in": "query", "description": "filter for subset of items having given ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "id_type", "in": "query", "description": "filter for subset of items that have given an ID of the given type", "type": "string", "required": false }, { "name": "item_type", "in": "query", "description": "filter for specific type(s) of items", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "chapter", "highlight", "music", "speech", "other" ] }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for items by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for items by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "people", "in": "query", "description": "filter for subset of items that have specified person involved", "type": "string", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of items matching one of the given PIDs", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "programme", "in": "query", "description": "filter for subset of items that are part of the given programme", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of items matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "segment_event", "in": "query", "description": "filter for item with the given segment_event", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/master_brands": { "get": { "description": "List all Master Brands", "tags": [ "feeds" ], "summary": "List all Master Brands", "operationId": "listMasterbrands", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort by mid, ascending\n", "type": "string", "required": false, "enum": [ "mid" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* mixin to add image information for a masterbrand\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "images" ] }, { "name": "mid", "in": "query", "description": "filter for subset of masterbrands that have given identifier", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for masterbrands by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for masterbrands by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of masterbrands matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/people": { "get": { "description": "Find the people behind and in programmes: cast, crew, guests and more", "tags": [ "feeds" ], "summary": "Find the people behind and in programmes: cast, crew, guests and more", "operationId": "listPeople", "parameters": [ { "name": "authority", "in": "query", "description": "filter for subset of people that have an ID issued by the given authority", "type": "string", "required": false }, { "name": "has_external_id", "in": "query", "description": "filter for people who have an external identifier", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "true", "false" ] }, { "name": "id", "in": "query", "description": "filter for subset of people having given ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "id_type", "in": "query", "description": "filter for subset of people that have given an ID of the given type", "type": "string", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for people by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for people by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of people having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "programme", "in": "query", "description": "filter for subset of people that have contributed to the given programme pid", "type": "string", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of people matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/pips": { "get": { "description": "Look inside pips entities", "tags": [ "feeds" ], "summary": "Look inside pips entities", "operationId": "listPips", "parameters": [ { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "q", "in": "query", "description": "filter for subset of programmes matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/promotions": { "get": { "description": "Discover metadata for content promotions", "tags": [ "feeds" ], "summary": "Discover metadata for content promotions", "operationId": "listPromotions", "parameters": [ { "name": "mixin", "in": "query", "description": "Mixins:\n* mixin to return information about related links to a promotion\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "related_links" ] }, { "name": "context", "in": "query", "description": "filter for subset of promotions belonging to a given context", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for promotions by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for promotions by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of promotions having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "promoted_by", "in": "query", "description": "filter for subset of promotions having given promoted by", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "promoted_for", "in": "query", "description": "filter for subset of promotions having given promoted for", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of promotions matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "status", "in": "query", "description": "filter for subset of promotions with status", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "current" ] } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/schedules": { "get": { "description": "Build schedules and find metadata for TV and radio broadcasts and webcasts", "tags": [ "feeds" ], "summary": "Build schedules and find metadata for TV and radio broadcasts and webcasts", "operationId": "listSchedules", "parameters": [ { "name": "sort", "in": "query", "description": "Sorts:\n* sort chronologically by scheduled start time/date, ascending\n", "type": "string", "required": false, "enum": [ "start_date" ] }, { "name": "sort_direction", "in": "query", "description": "Sort direction", "type": "string", "required": false, "enum": [ "ascending", "descending" ] }, { "name": "mixin", "in": "query", "description": "Mixins:\n* return ancestor programme titles\n* mixin to add image information for broadcasts and webcasts\n", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "ancestor_titles", "images" ] }, { "name": "authority", "in": "query", "description": "filter for subset of broadcasts and webcasts that have given authority", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "descendants_of", "in": "query", "description": "filter for subset of broadcasts and webcasts that are descendants of the given programme PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "end_from", "in": "query", "description": "filter for subset of broadcasts and webcasts that end on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "end_to", "in": "query", "description": "filter for subset of broadcasts and webcasts that end on or earlier than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "format", "in": "query", "description": "filter for subset of broadcasts and webcasts that are classified in the given format ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "genre", "in": "query", "description": "filter for subset of broadcasts and webcasts that are classified in the given genre ID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "group", "in": "query", "description": "filter for subset of broadcasts and webcasts that have programmes in the given group", "type": "string", "minLength": 8, "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "required": false }, { "name": "id", "in": "query", "description": "filter for subset of broadcasts and webcasts that have given identifier", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "id_type", "in": "query", "description": "filter for subset of broadcasts and webcasts that have given id type", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "item", "in": "query", "description": "filter for subset of broadcasts and webcasts with the given item performed on it", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for broadcasts and webcasts by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for broadcasts and webcasts by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "people", "in": "query", "description": "filter for subset of broadcasts and webcasts that have given contributor", "type": "string", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of broadcasts and webcasts having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of broadcasts and webcasts matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "repeat", "in": "query", "description": "filter to show either only repeats or non-repeats", "type": "boolean", "required": false }, { "name": "schedule_day", "in": "query", "description": "filter for subset of broadcasts and webcasts that start on the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "schedule_day_from", "in": "query", "description": "filter for subset of broadcasts and webcasts that start on or after the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "schedule_day_to", "in": "query", "description": "filter for subset of broadcasts and webcasts that start on or before the specified day (BBC time)", "type": "string", "format": "date", "required": false }, { "name": "service_master_brand", "in": "query", "description": "filter for subset of broadcasts and webcasts with given service master brand", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "sid", "in": "query", "description": "filter for subset of broadcasts and webcasts that are on the specified linear service", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "start_from", "in": "query", "description": "filter for subset of broadcasts and webcasts that start on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "start_to", "in": "query", "description": "filter for subset of broadcasts and webcasts that start on or earlier than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "version", "in": "query", "description": "filter for subset of broadcasts and webcasts with given PID as their parent version", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/services": { "get": { "description": "Information about the linear services used for broadcast transmissions", "tags": [ "feeds" ], "summary": "Information about the linear services used for broadcast transmissions", "operationId": "listServices", "parameters": [ { "name": "end_from", "in": "query", "description": "Return services that end on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "end_to", "in": "query", "description": "filter for subset of broadcasts that end on or earlier than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "mid", "in": "query", "description": "filter for services by masterbrand MID", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for services by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for services by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "q", "in": "query", "description": "filter for subset of services matching supplied keyword/phrase (boolean operators permitted)", "type": "string", "required": false }, { "name": "service_type", "in": "query", "description": "filter for specified type of linear services. one of: TV, Local Radio, National Radio, Regional Radio", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "TV", "Local Radio", "National Radio", "Regional Radio", "Interactive" ] }, { "name": "sid", "in": "query", "description": "filter for specified linear service", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "start_from", "in": "query", "description": "Return services that start on or later than the specified datetime", "type": "string", "format": "date-time", "required": false }, { "name": "start_to", "in": "query", "description": "Return services that start earlier than the specified datetime", "type": "string", "format": "date-time", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/versions": { "get": { "description": "Metadata on editorial programme versions: original, signed, audio-described, etc", "tags": [ "feeds" ], "summary": "Metadata on editorial programme versions: original, signed, audio-described, etc", "operationId": "listVersions", "parameters": [ { "name": "availability", "in": "query", "description": "filter for subset of versions that have availability", "type": "array", "collectionFormat": "multi", "items": { "format": "string" }, "required": false, "enum": [ "available" ] }, { "name": "descendants_of", "in": "query", "description": "filter for subset of versions having given programme PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "media_set", "in": "query", "description": "filter for subset of versions with availability in the given media set", "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "required": false }, { "name": "page", "in": "query", "description": "which page of results to return", "type": "integer", "default": 1, "minimum": 1, "required": false }, { "name": "page_size", "in": "query", "description": "number of results in each page", "type": "integer", "default": 10, "maximum": 300, "required": false }, { "name": "partner_id", "in": "query", "description": "filter for versions by partner ID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "partner_pid", "in": "query", "description": "filter for versions by partner PID", "type": "array", "default": "s0000001", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false }, { "name": "pid", "in": "query", "description": "filter for subset of versions having given PID", "type": "array", "items": { "type": "string", "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$", "minLength": 8 }, "collectionFormat": "multi", "required": false } ], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/": { "get": { "description": "Get API definition", "summary": "Get API definition", "tags": [ "schema" ], "operationId": "getAPI", "parameters": [], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } }, "/schema": { "get": { "description": "Get Schema definition", "summary": "Get Schema definition", "tags": [ "schema" ], "operationId": "getXSD", "parameters": [], "responses": { "200": { "description": "Nitro response" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/ErrorModel" } } } } } }, "definitions": { "ErrorModel": { "type": "object", "properties": { "fault": { "type": "object", "properties": { "faultString": { "type": "string" }, "detail": { "type": "object", "properties": { "errorcode": { "type": "string" } } } } } } } }, "securityDefinitions": { "api_key": { "type": "apiKey", "name": "api_key", "in": "query" } }, "security": [ { "api_key": [] } ] }