{
	"swagger": "2.0",
	"info": {
		"version": "1.0",
		"x-release": "444",
		"title": "BBC iPlayer Business Layer",
		"description": "The definitive iPlayer API.",
		"x-logo": {
			"url": "http://static.bbci.co.uk/tviplayer/1.101.2/img/navigation/iplayer_pink.svg",
			"backgroundColor": "#FFFFFF"
		},
		"license": {
			"name": "MIT",
			"url": "https://opensource.org/licenses/MIT"
		},
		"contact": {
			"name": "Open iBL Project",
			"email": "ibl-team@lists.forge.bbc.co.uk",
			"url": "http://developer.bbc.co.uk/"
		},
		"x-schema-id": "https://ibl.api.bbci.co.uk/ibl/v1/schema/ibl.json"
	},
	"externalDocs": {
		"description": "BBC iPlayer documentation",
		"url": "http://smethur.st/posts/176135860"
	},
	"host": "ibl.api.bbci.co.uk",
	"basePath": "/ibl/v1",
	"securityDefinitions": {
		"api_key": {
			"type": "apiKey",
			"name": "api_key",
			"in": "query"
		},
		"basic": {
			"type": "basic",
			"description": "Used only by store purchases."
		}
	},
	"security": [
		{
			"api_key": []
		}
	],
	"schemes": [
		"http",
		"https"
	],
	"consumes": [
		"application/json"
	],
	"produces": [
		"application/json"
	],
	"paths": {
		"/programmes/{pid}": {
			"get": {
				"summary": "Programme for a given pid.",
				"description": "Get the programme for a given programme identifier.",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Programmes by parent PID_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/initial_child_count"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/programmes/{pid}/episodes": {
			"get": {
				"summary": "Child episodes for a given programme pid.",
				"description": "Get the child episodes belonging to a given programme identifier.",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Episodes by parent PID_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/initial_child_count"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/episodes/{pid}": {
			"get": {
				"summary": "Episode for a given pid.",
				"description": "Get the episode for a given episode identifier.",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Programme by PID_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/atoz/{letter}/programmes": {
			"get": {
				"summary": "Programmes by initial title character",
				"description": "Get the Programmes whose title begins with the given initial character.",
				"tags": [
					"A to Z"
				],
				"operationId": "Get_Programmes AtoZ search_",
				"parameters": [
					{
						"name": "letter",
						"in": "path",
						"required": true,
						"description": "Letter to search by, a to z or the string '0-9'",
						"type": "string",
						"pattern": "[a-z](0-9)"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					},
					{
						"$ref": "#/parameters/initial_child_count"
					},
					{
						"name": "sort",
						"in": "query",
						"required": true,
						"description": "The sort order of the results.",
						"type": "string",
						"enum": [
							"title"
						]
					},
					{
						"$ref": "#/parameters/sort_direction"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/episodes/{pid}/prerolls": {
			"get": {
				"summary": "Get Trailers (pre-rolls)",
				"description": "Get Trailers (pre-rolls)",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Trailers (pre-rolls)_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/episodes/{pid}/postrolls": {
			"get": {
				"summary": "Get Follow-ups (post-rolls)",
				"description": "Get Follow-ups (post-rolls)",
				"tags": [
					"Episodes"
				],
				"operationId": "getPostRolls",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/episodes/{pid}/next": {
			"get": {
				"summary": "Get Onward Journey",
				"description": "Get Onward Journey (next programme)",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Onward_Journey",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/clips/{pid}": {
			"get": {
				"summary": "Get Clips",
				"description": "Get Clips",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Clips_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/search-suggest": {
			"get": {
				"summary": "Search-suggest",
				"description": "Search-suggest",
				"tags": [
					"Search"
				],
				"operationId": "Search-suggest_",
				"parameters": [
					{
						"$ref": "#/parameters/q"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/channels/{channel}/schedule/{date}": {
			"get": {
				"summary": "Get schedule by channel",
				"description": "Get schedule by channel",
				"tags": [
					"Channels"
				],
				"operationId": "Get_Schedule by channel_",
				"parameters": [
					{
						"$ref": "#/parameters/channel"
					},
					{
						"name": "date",
						"in": "path",
						"required": true,
						"description": "The date to return the schedule for, yyyy-mm-dd format",
						"type": "string"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/channels/{channel}/highlights": {
			"get": {
				"summary": "List the highlights for a channel.",
				"description": "Get the editorial highlights of a given channel in TV & iPlayer.",
				"tags": [
					"Channels"
				],
				"operationId": "Get_Highlights by channel_",
				"parameters": [
					{
						"$ref": "#/parameters/channel"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"name": "live",
						"in": "query",
						"required": false,
						"description": "Whether to include live programmes",
						"type": "boolean"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/search": {
			"get": {
				"summary": "Search",
				"description": "Search",
				"tags": [
					"Search"
				],
				"operationId": "Search_",
				"parameters": [
					{
						"$ref": "#/parameters/q"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/categories": {
			"get": {
				"summary": "Get categories",
				"description": "Get the list of all the categories in TV & iPlayer.",
				"tags": [
					"Categories"
				],
				"operationId": "Get_Categories_",
				"parameters": [
					{
						"$ref": "#/parameters/lang"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/categories/{category}": {
			"get": {
				"summary": "Get sub-categories",
				"description": "Get sub-categories",
				"tags": [
					"Categories"
				],
				"operationId": "Get_Sub-categories_",
				"parameters": [
					{
						"$ref": "#/parameters/category"
					},
					{
						"$ref": "#/parameters/lang"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/categories/{category}/programmes": {
			"get": {
				"summary": "List all the programmes for a category.",
				"description": "Get the list of all the Programmes (TLEOs) for a given category in TV & iPlayer.",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Programmes by category_",
				"parameters": [
					{
						"$ref": "#/parameters/category"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/categories/{category}/episodes": {
			"get": {
				"summary": "List all the episodes for a category.",
				"description": "Get the list of all the episodes for a given category in TV & iPlayer.",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Episodes by category_",
				"parameters": [
					{
						"$ref": "#/parameters/category"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					},
					{
						"name": "sort",
						"in": "query",
						"required": false,
						"description": "The sort order of the results.",
						"type": "string",
						"enum": [
							"recent",
							"popular"
						]
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/episodes/{pid}/recommendations": {
			"get": {
				"summary": "Get programme recommendations",
				"description": "Get programme recommendations",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Programme recommendations_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/status": {
			"get": {
				"summary": "Get status",
				"description": "Get the current iPlayer business layer status. This tells the caller the status of the iPlayer data, but not necessarily the overall status of the website. In the future it might include the status of the dependent data services within the BBC.",
				"tags": [
					"Metadata"
				],
				"operationId": "Get_Status_",
				"parameters": [],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/channels": {
			"get": {
				"summary": "List all the channels.",
				"description": "Get the list of all the channels TV & iPlayer.",
				"tags": [
					"Channels"
				],
				"operationId": "Get_Channels_",
				"parameters": [
					{
						"name": "region",
						"in": "query",
						"required": false,
						"description": "The region to get the channels for.",
						"type": "string"
					},
					{
						"$ref": "#/parameters/lang"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/groups/popular/episodes": {
			"get": {
				"summary": "Get programmes popular",
				"description": "Get programmes popular",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Programmes popular_",
				"parameters": [
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					},
					{
						"$ref": "#/parameters/initial_child_count"
					},
					{
						"$ref": "#/parameters/sort"
					},
					{
						"$ref": "#/parameters/sort_direction"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/groups/{pid}/episodes": {
			"get": {
				"summary": "Get episodes by group, brand or series",
				"description": "Get episodes by group, brand or series",
				"tags": [
					"Episodes"
				],
				"operationId": "Get_Episodes by group_",
				"parameters": [
					{
						"$ref": "#/parameters/pid"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					},
					{
						"$ref": "#/parameters/initial_child_count"
					},
					{
						"$ref": "#/parameters/sort"
					},
					{
						"$ref": "#/parameters/sort_direction"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/categories/{category}/highlights": {
			"get": {
				"summary": "List the highlights for a category.",
				"description": "Get the editorial highlights of a given category in TV & iPlayer.",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Highlights by category_",
				"parameters": [
					{
						"$ref": "#/parameters/category"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/channels/{channel}/programmes": {
			"get": {
				"summary": "Get programmes by channel",
				"description": "Get programmes by channel",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Programmes by channel_",
				"parameters": [
					{
						"$ref": "#/parameters/channel"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/page"
					},
					{
						"$ref": "#/parameters/per_page"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/regions": {
			"get": {
				"summary": "List all regions",
				"description": "Get the list of all the regions TV & iPlayer.",
				"tags": [
					"Regions"
				],
				"operationId": "Get_Regions_",
				"parameters": [
					{
						"$ref": "#/parameters/lang"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/user/watching": {
			"get": {
				"summary": "Get user watching",
				"description": "Get user watching",
				"tags": [
					"User"
				],
				"operationId": "Get_User watching_",
				"parameters": [
					{
						"$ref": "#/parameters/identity_cookie"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/schema/ibl.json": {
			"get": {
				"summary": "Get schema",
				"description": "Get schema",
				"tags": [
					"Metadata"
				],
				"operationId": "Get_Schema_",
				"parameters": [],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/channels/{channel}/broadcasts": {
			"get": {
				"summary": "Get broadcasts by channel",
				"description": "Get broadcasts by channel",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Broadcasts by channel_",
				"parameters": [
					{
						"$ref": "#/parameters/channel"
					},
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					},
					{
						"$ref": "#/parameters/per_page"
					},
					{
						"name": "from",
						"in": "query",
						"required": false,
						"description": "Time to return results from, e.g. -3h",
						"type": "string"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/user/purchases": {
			"get": {
				"summary": "Get user store purchases",
				"description": "Get user store purchases",
				"tags": [
					"User"
				],
				"operationId": "Get_User store purchases_",
				"parameters": [
					{
						"$ref": "#/parameters/identity_cookie"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": [
					{
						"basic": []
					}
				]
			}
		},
		"/user/recommendations": {
			"get": {
				"summary": "Get user store recommendations",
				"description": "Get user store recommendations",
				"tags": [
					"User"
				],
				"operationId": "Get_User store recommendations_",
				"parameters": [
					{
						"$ref": "#/parameters/identity_cookie"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		},
		"/home/highlights": {
			"get": {
				"summary": "Get programme highlights",
				"description": "Get programme highlights",
				"tags": [
					"Programmes (TLEOs)"
				],
				"operationId": "Get_Programme highlights_",
				"parameters": [
					{
						"$ref": "#/parameters/lang"
					},
					{
						"$ref": "#/parameters/rights"
					},
					{
						"$ref": "#/parameters/availability"
					},
					{
						"$ref": "#/parameters/mixin"
					}
				],
				"responses": {
					"200": {
						"description": "Default response",
						"schema": {
							"$ref": "#/definitions/ibl"
						}
					}
				},
				"security": []
			}
		}
	},
	"definitions": {
		"ibl": {
			"type": "object",
			"properties": {
				"schema": {
					"type": "string"
				},
				"version": {
					"type": "string"
				},
				"status": {
					"type": "object",
					"properties": {
						"service": {
							"type": "string"
						},
						"release": {
							"type": "string"
						}
					},
					"required": [
						"service",
						"release"
					],
					"additionalProperties": false
				},
				"error": {
					"type": "object",
					"properties": {
						"details": {
							"type": "string"
						},
						"http_response_code": {
							"type": "number"
						}
					},
					"required": [
						"details",
						"http_response_code"
					],
					"additionalProperties": false
				},
				"categories": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/category"
					}
				},
				"channels": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/channel"
					}
				},
				"regions": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/region"
					}
				},
				"episodes": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/episode"
					}
				},
				"programmes": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/programme"
					}
				},
				"programme_episodes": {
					"type": "object",
					"properties": {
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						},
						"count": {
							"type": "number"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/episode"
							}
						}
					},
					"required": [
						"elements",
						"page",
						"per_page",
						"count"
					],
					"additionalProperties": false
				},
				"group_episodes": {
					"type": "object",
					"properties": {
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						},
						"count": {
							"type": "number"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/episode"
							}
						},
						"group": {
							"$ref": "#/definitions/group"
						}
					},
					"required": [
						"elements",
						"page",
						"per_page",
						"count"
					],
					"additionalProperties": false
				},
				"episode_recommendations": {
					"type": "object",
					"properties": {
						"count": {
							"type": "number"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/episode"
							}
						},
						"blend": {
							"enum": [
								"curated",
								"algorithmic"
							]
						}
					},
					"required": [
						"elements",
						"count",
						"blend"
					],
					"additionalProperties": false
				},
				"broadcasts": {
					"type": "object",
					"properties": {
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						},
						"count": {
							"type": "number"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/broadcast"
							}
						},
						"channel": {
							"$ref": "#/definitions/channel"
						}
					},
					"required": [
						"elements",
						"page",
						"per_page",
						"count",
						"channel"
					],
					"additionalProperties": false
				},
				"schedule": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/broadcast"
							}
						},
						"channel": {
							"$ref": "#/definitions/channel"
						}
					},
					"required": [
						"elements",
						"channel"
					],
					"additionalProperties": false
				},
				"category_programmes": {
					"type": "object",
					"properties": {
						"count": {
							"type": "number"
						},
						"category": {
							"$ref": "#/definitions/category"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/programme"
							}
						},
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						}
					},
					"required": [
						"category",
						"page",
						"count",
						"per_page",
						"elements"
					],
					"additionalProperties": false
				},
				"atoz_programmes": {
					"type": "object",
					"properties": {
						"count": {
							"type": "number"
						},
						"character": {
							"type": "string"
						},
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/programme"
							}
						},
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						}
					},
					"required": [
						"character",
						"page",
						"count",
						"per_page",
						"elements"
					],
					"additionalProperties": false
				},
				"home_highlights": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"x-anyOf": [
									{
										"$ref": "#/definitions/episode"
									},
									{
										"$ref": "#/definitions/group"
									},
									{
										"$ref": "#/definitions/promotion"
									}
								]
							}
						}
					},
					"required": [
						"elements"
					],
					"additionalProperties": false
				},
				"channel_highlights": {
					"type": "object",
					"properties": {
						"channel": {
							"$ref": "#/definitions/channel"
						},
						"elements": {
							"type": "array",
							"items": {
								"x-anyOf": [
									{
										"$ref": "#/definitions/episode"
									},
									{
										"$ref": "#/definitions/group"
									},
									{
										"$ref": "#/definitions/promotion"
									}
								]
							}
						}
					},
					"required": [
						"channel",
						"elements"
					],
					"additionalProperties": false
				},
				"category_highlights": {
					"type": "object",
					"properties": {
						"category": {
							"$ref": "#/definitions/category"
						},
						"elements": {
							"type": "array",
							"items": {
								"x-anyOf": [
									{
										"$ref": "#/definitions/episode"
									},
									{
										"$ref": "#/definitions/group"
									},
									{
										"$ref": "#/definitions/promotion"
									}
								]
							}
						}
					},
					"required": [
						"category",
						"elements"
					],
					"additionalProperties": false
				},
				"prerolls": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/trailer"
					}
				},
				"postrolls": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/trailer"
					}
				},
				"search": {
					"type": "object",
					"properties": {
						"query": {
							"type": "string"
						},
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						},
						"count": {
							"type": "number"
						},
						"results": {
							"type": "array",
							"items": {
								"x-anyOf": [
									{
										"$ref": "#/definitions/episode"
									},
									{
										"$ref": "#/definitions/programme"
									},
									{
										"$ref": "#/definitions/search_group"
									}
								]
							}
						}
					},
					"required": [
						"results",
						"query"
					],
					"additionalProperties": false
				},
				"search_suggest": {
					"type": "object",
					"properties": {
						"query": {
							"type": "string"
						},
						"results": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/programme"
							}
						}
					},
					"required": [
						"results",
						"query"
					],
					"additionalProperties": false
				},
				"watching": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/watching"
							}
						},
						"count": {
							"type": "number"
						},
						"count_all": {
							"type": "number"
						}
					},
					"required": [
						"elements",
						"count",
						"count_all"
					],
					"additionalProperties": false
				},
				"user_recommendations": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/user_recommendation"
							}
						},
						"rec_source": {
							"type": "string"
						},
						"rec_set": {
							"type": "string"
						}
					},
					"required": [
						"elements",
						"rec_source",
						"rec_set"
					],
					"additionalProperties": false
				},
				"added": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/added"
							}
						},
						"count": {
							"type": "number"
						},
						"count_all": {
							"type": "number"
						}
					},
					"required": [
						"elements",
						"count",
						"count_all"
					],
					"additionalProperties": false
				},
				"purchases": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/episode"
							}
						},
						"count": {
							"type": "number"
						},
						"page": {
							"type": "number"
						},
						"per_page": {
							"type": "number"
						},
						"value_added_material": {
							"type": "boolean"
						},
						"revocations": {
							"type": "boolean"
						}
					},
					"required": [
						"elements",
						"page",
						"per_page",
						"count",
						"revocations",
						"value_added_material"
					],
					"additionalProperties": false
				},
				"versions": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/store_version"
					}
				},
				"next": {
					"type": "object",
					"properties": {
						"programme": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/episode"
							},
							"minItems": 0,
							"maxItems": 1
						}
					}
				},
				"category": {
					"$ref": "#/definitions/category"
				},
				"trailers": {
					"type": "object",
					"properties": {
						"elements": {
							"type": "array",
							"items": {
								"$ref": "#/definitions/clip"
							}
						}
					},
					"required": [
						"elements"
					],
					"additionalProperties": false
				},
				"clips": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/clip"
					},
					"maxItems": 1
				}
			},
			"required": [
				"schema",
				"version"
			],
			"additionalProperties": false
		},
		"category": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"category"
					]
				},
				"title": {
					"type": "string"
				},
				"kind": {
					"enum": [
						"genre",
						"accessibility",
						"national"
					]
				},
				"child_episode_count": {
					"type": "number"
				},
				"child_programme_count": {
					"type": "number"
				},
				"parent_category": {
					"type": "string"
				},
				"contextual_title": {
					"type": "string"
				},
				"sub_categories": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/category"
					}
				}
			},
			"required": [
				"id",
				"title",
				"type",
				"kind"
			],
			"additionalProperties": false
		},
		"channel": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"channel"
					]
				},
				"title": {
					"type": "string"
				},
				"has_schedule": {
					"type": "boolean"
				},
				"master_brand_id": {
					"type": "string"
				},
				"master_brand_title": {
					"type": "string"
				},
				"on_air": {
					"type": "boolean"
				}
			},
			"required": [
				"id",
				"title",
				"type",
				"has_schedule",
				"master_brand_id",
				"master_brand_title"
			],
			"additionalProperties": false
		},
		"region": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"short_id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"region"
					]
				},
				"title": {
					"type": "string"
				},
				"kind": {
					"enum": [
						"regional",
						"national"
					]
				}
			},
			"required": [
				"id",
				"short_id",
				"type",
				"title",
				"kind"
			],
			"additionalProperties": false
		},
		"episode": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"episode",
						"episode_large"
					]
				},
				"title": {
					"type": "string"
				},
				"original_title": {
					"type": "string"
				},
				"live": {
					"type": "boolean"
				},
				"images": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"image"
							]
						},
						"standard": {
							"type": "string"
						},
						"inherited_from": {
							"type": "string"
						}
					},
					"required": [
						"type",
						"standard"
					],
					"additionalProperties": false
				},
				"has_credits": {
					"type": "boolean"
				},
				"signed": {
					"type": "boolean"
				},
				"audio_described": {
					"type": "boolean"
				},
				"status": {
					"enum": [
						"available",
						"unavailable"
					]
				},
				"requires_tv_licence": {
					"type": "boolean"
				},
				"requires_sign_in": {
					"type": "boolean"
				},
				"tleo_id": {
					"type": "string"
				},
				"guidance": {
					"type": "boolean"
				},
				"subtitle": {
					"type": "string"
				},
				"editorial_subtitle": {
					"type": "string"
				},
				"editorial_title": {
					"type": "string"
				},
				"synopses": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						},
						"editorial": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"versions": {
					"type": "array",
					"items": {
						"x-anyOf": [
							{
								"type": "object",
								"properties": {
									"id": {
										"type": "string"
									},
									"type": {
										"enum": [
											"version",
											"version_large"
										]
									},
									"hd": {
										"type": "boolean"
									},
									"download": {
										"type": "boolean"
									},
									"kind": {
										"type": "string"
									},
									"duration": {
										"type": "object",
										"properties": {
											"text": {
												"type": "string"
											},
											"value": {
												"type": "string"
											}
										},
										"required": [
											"text",
											"value"
										],
										"additionalProperties": false
									},
									"rrc": {
										"type": "object",
										"properties": {
											"url": {
												"type": "string"
											},
											"description": {
												"type": "object",
												"properties": {
													"small": {
														"type": "string"
													},
													"large": {
														"type": "string"
													}
												},
												"required": [
													"small",
													"large"
												],
												"additionalProperties": false
											}
										},
										"required": [
											"description"
										],
										"additionalProperties": false
									},
									"guidance": {
										"type": "object",
										"properties": {
											"id": {
												"type": "string"
											},
											"text": {
												"type": "object",
												"properties": {
													"small": {
														"type": "string"
													},
													"medium": {
														"type": "string"
													},
													"large": {
														"type": "string"
													}
												},
												"additionalProperties": false
											}
										},
										"required": [
											"id"
										],
										"additionalProperties": false
									},
									"first_broadcast": {
										"type": "string"
									},
									"credits_start": {
										"type": "number"
									},
									"service_id": {
										"type": "string"
									},
									"availability": {
										"type": "object",
										"properties": {
											"start": {
												"type": "string"
											},
											"end": {
												"type": "string"
											},
											"remaining": {
												"type": "object",
												"properties": {
													"text": {
														"type": "string"
													}
												},
												"required": [
													"text"
												],
												"additionalProperties": false
											}
										},
										"required": [
											"start"
										],
										"additionalProperties": false
									}
								},
								"required": [
									"id",
									"type",
									"hd",
									"download",
									"duration",
									"kind",
									"availability"
								],
								"additionalProperties": false
							},
							{
								"type": "object",
								"properties": {
									"id": {
										"type": "string"
									},
									"type": {
										"enum": [
											"store_version"
										]
									},
									"store_id": {
										"type": "string"
									},
									"store_profile": {
										"type": "string"
									},
									"hd": {
										"type": "boolean"
									},
									"kind": {
										"type": "string"
									},
									"download": {
										"type": "boolean"
									},
									"duration": {
										"type": "object",
										"properties": {
											"text": {
												"type": "string"
											},
											"value": {
												"type": "string"
											}
										},
										"required": [
											"text",
											"value"
										],
										"additionalProperties": false
									},
									"guidance": {
										"type": "object",
										"properties": {
											"id": {
												"type": "string"
											},
											"text": {
												"type": "object",
												"properties": {
													"small": {
														"type": "string"
													},
													"medium": {
														"type": "string"
													},
													"large": {
														"type": "string"
													}
												},
												"additionalProperties": false
											}
										},
										"required": [
											"id"
										],
										"additionalProperties": false
									},
									"store_session": {
										"type": "object",
										"properties": {
											"token": {
												"type": "string"
											},
											"stats": {
												"type": "object",
												"properties": {
													"parentPID": {
														"type": "string"
													},
													"parentPIDType": {
														"type": "string"
													},
													"viewerId": {
														"type": "string"
													},
													"contentType": {
														"type": "string"
													},
													"contentVariant": {
														"type": "string"
													},
													"episodeName": {
														"type": "string"
													},
													"assetName": {
														"type": "string"
													},
													"productVariant": {
														"type": "string"
													}
												}
											},
											"ceiling": {
												"type": "number"
											}
										},
										"required": [
											"token",
											"stats"
										],
										"additionalProperties": false
									}
								},
								"required": [
									"id",
									"type",
									"store_id",
									"store_profile",
									"hd",
									"download",
									"duration",
									"kind"
								],
								"additionalProperties": false
							}
						]
					}
				},
				"parent_id": {
					"type": "string"
				},
				"suppliers": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"id": {
								"type": "string"
							},
							"title": {
								"type": "string"
							}
						},
						"required": [
							"id",
							"title"
						]
					},
					"additionalProperties": false
				},
				"tleo_type": {
					"enum": [
						"episode",
						"brand",
						"series"
					]
				},
				"categories": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"next_broadcast": {
					"type": "object",
					"properties": {
						"channel_title": {
							"type": "string"
						},
						"scheduled_start": {
							"type": "string"
						}
					},
					"required": [
						"channel_title",
						"scheduled_start"
					],
					"additionalProperties": false
				},
				"labels": {
					"type": "object",
					"properties": {
						"editorial": {
							"type": "string"
						},
						"time": {
							"type": "string"
						},
						"category": {
							"type": "string"
						},
						"editorial_category": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"master_brand": {
					"$ref": "#/definitions/master_brand"
				},
				"parent_position": {
					"type": "number"
				},
				"release_date_time": {
					"type": "string"
				},
				"lexical_sort_letter": {
					"type": "string"
				},
				"release_date": {
					"type": "string"
				},
				"related_links": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"id": {
								"type": "string"
							},
							"url": {
								"type": "string"
							},
							"kind": {
								"type": "string"
							},
							"title": {
								"type": "string"
							},
							"type": {
								"enum": [
									"link"
								]
							}
						},
						"required": [
							"id",
							"url",
							"type",
							"kind",
							"title"
						],
						"additionalProperties": false
					}
				},
				"promoted": {
					"type": "boolean"
				}
			},
			"required": [
				"id",
				"type",
				"title",
				"images",
				"signed",
				"audio_described",
				"status",
				"tleo_id",
				"guidance",
				"synopses",
				"versions",
				"suppliers",
				"tleo_type",
				"categories",
				"master_brand",
				"lexical_sort_letter",
				"requires_sign_in"
			],
			"additionalProperties": false
		},
		"programme": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"programme",
						"programme_large"
					]
				},
				"title": {
					"type": "string"
				},
				"labels": {
					"type": "object",
					"properties": {
						"category": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"tleo_type": {
					"enum": [
						"brand",
						"series",
						"episode"
					]
				},
				"synopses": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"lexical_sort_letter": {
					"type": "string"
				},
				"images": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"image"
							]
						},
						"standard": {
							"type": "string"
						},
						"inherited_from": {
							"type": "string"
						}
					},
					"required": [
						"type",
						"standard"
					],
					"additionalProperties": false
				},
				"master_brand": {
					"$ref": "#/definitions/master_brand"
				},
				"suppliers": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"id": {
								"type": "string"
							},
							"title": {
								"type": "string"
							}
						},
						"required": [
							"id",
							"title"
						]
					},
					"additionalProperties": false
				},
				"categories": {
					"type": "array",
					"items": {
						"type": "string"
					}
				},
				"status": {
					"enum": [
						"available",
						"unavailable"
					]
				},
				"count": {
					"type": "number"
				},
				"initial_children": {
					"type": "array",
					"items": {
						"$ref": "#/definitions/episode"
					}
				}
			},
			"required": [
				"id",
				"type",
				"title",
				"synopses",
				"lexical_sort_letter",
				"images",
				"master_brand",
				"suppliers",
				"categories",
				"status",
				"count",
				"initial_children"
			],
			"additionalProperties": false
		},
		"master_brand": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"titles": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						}
					},
					"required": [
						"small",
						"medium",
						"large"
					],
					"additionalProperties": false
				},
				"ident_id": {
					"type": "string"
				},
				"attribution": {
					"type": "string"
				}
			},
			"required": [
				"id",
				"titles",
				"attribution"
			],
			"additionalProperties": false
		},
		"group": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"group",
						"group_large"
					]
				},
				"title": {
					"type": "string"
				},
				"group_type": {
					"enum": [
						"tleo",
						"curated"
					]
				},
				"stacked": {
					"type": "boolean"
				},
				"images": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"image"
							]
						},
						"standard": {
							"type": "string"
						},
						"vertical": {
							"type": "string"
						}
					},
					"required": [
						"type",
						"standard",
						"vertical"
					],
					"additionalProperties": false
				},
				"episode_sort_direction": {
					"type": "string"
				},
				"synopses": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"master_brand": {
					"$ref": "#/definitions/master_brand"
				},
				"related_links": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"kind": {
								"type": "string"
							},
							"url": {
								"type": "string"
							},
							"title": {
								"type": "string"
							}
						},
						"required": [
							"kind",
							"url",
							"title"
						],
						"additionalProperties": false
					}
				},
				"initial_children": {
					"type": "array",
					"items": {
						"x-anyOf": [
							{
								"$ref": "#/definitions/episode"
							},
							{
								"$ref": "#/definitions/broadcast"
							}
						]
					}
				},
				"count": {
					"type": "number"
				}
			},
			"required": [
				"id",
				"type"
			],
			"additionalProperties": false
		},
		"broadcast": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"episode_id": {
					"type": "string"
				},
				"version_id": {
					"type": "string"
				},
				"service_id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"broadcast"
					]
				},
				"scheduled_start": {
					"type": "string"
				},
				"scheduled_end": {
					"type": "string"
				},
				"transmission_start": {
					"type": "string"
				},
				"transmission_end": {
					"type": "string"
				},
				"duration": {
					"type": "object",
					"properties": {
						"text": {
							"type": "string"
						},
						"value": {
							"type": "string"
						}
					},
					"required": [
						"value",
						"text"
					],
					"additionalProperties": false
				},
				"blanked": {
					"type": "boolean"
				},
				"repeat": {
					"type": "boolean"
				},
				"episode": {
					"$ref": "#/definitions/episode"
				},
				"channel_title": {
					"type": "string"
				},
				"available_on_hd_service": {
					"type": [
						"string",
						"null"
					]
				}
			},
			"required": [
				"id",
				"type",
				"scheduled_start",
				"scheduled_end",
				"repeat",
				"blanked",
				"episode",
				"episode_id",
				"version_id",
				"service_id"
			],
			"additionalProperties": false
		},
		"promotion": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"promotion"
					]
				},
				"title": {
					"type": "string"
				},
				"subtitle": {
					"type": "string"
				},
				"url": {
					"type": "string"
				},
				"synopses": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"images": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"image"
							]
						},
						"standard": {
							"type": "string"
						},
						"inherited_from": {
							"type": "string"
						}
					},
					"required": [
						"type",
						"standard"
					],
					"additionalProperties": false
				},
				"labels": {
					"type": "object",
					"properties": {
						"promotion": {
							"type": "string"
						}
					},
					"required": [
						"promotion"
					],
					"additionalProperties": false
				}
			},
			"required": [
				"id",
				"type"
			],
			"additionalProperties": false
		},
		"trailer": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"trailer"
					]
				},
				"title": {
					"type": "string"
				},
				"kind": {
					"enum": [
						"available_now",
						"coming_soon",
						"other"
					]
				},
				"version_id": {
					"type": "string"
				}
			},
			"required": [
				"id",
				"type",
				"title",
				"kind",
				"version_id"
			],
			"additionalProperties": false
		},
		"search_group": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"search_group"
					]
				},
				"episode": {
					"$ref": "#/definitions/episode"
				}
			},
			"required": [
				"id",
				"type",
				"episode"
			],
			"additionalProperties": false
		},
		"watching": {
			"type": "object",
			"properties": {
				"urn": {
					"type": "string"
				},
				"type": {
					"enum": [
						"watching"
					]
				},
				"episode": {
					"$ref": "#/definitions/episode"
				},
				"programme": {
					"$ref": "#/definitions/programme"
				},
				"version": {
					"$ref": "#/definitions/version"
				},
				"status": {
					"enum": [
						"current",
						"next"
					]
				},
				"offset": {
					"type": "number"
				},
				"progress": {
					"type": "number"
				},
				"remaining": {
					"type": "number"
				},
				"has_next": {
					"type": "boolean"
				}
			},
			"required": [
				"type",
				"urn",
				"episode",
				"programme",
				"version",
				"has_next"
			],
			"additionalProperties": false
		},
		"user_recommendation": {
			"type": "object",
			"properties": {
				"algorithm": {
					"type": "string"
				},
				"type": {
					"enum": [
						"user_recommendation"
					]
				},
				"episode": {
					"$ref": "#/definitions/episode"
				}
			},
			"required": [
				"algorithm",
				"type",
				"episode"
			],
			"additionalProperties": false
		},
		"added": {
			"type": "object",
			"properties": {
				"urn": {
					"type": "string"
				},
				"type": {
					"enum": [
						"added"
					]
				},
				"programme": {
					"$ref": "#/definitions/programme"
				}
			},
			"required": [
				"urn",
				"type",
				"programme"
			],
			"additionalProperties": false
		},
		"store_version": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"store_version"
					]
				},
				"store_id": {
					"type": "string"
				},
				"store_profile": {
					"type": "string"
				},
				"hd": {
					"type": "boolean"
				},
				"kind": {
					"type": "string"
				},
				"download": {
					"type": "boolean"
				},
				"duration": {
					"type": "object",
					"properties": {
						"text": {
							"type": "string"
						},
						"value": {
							"type": "string"
						}
					},
					"required": [
						"text",
						"value"
					],
					"additionalProperties": false
				},
				"guidance": {
					"type": "object",
					"properties": {
						"id": {
							"type": "string"
						},
						"text": {
							"type": "object",
							"properties": {
								"small": {
									"type": "string"
								},
								"medium": {
									"type": "string"
								},
								"large": {
									"type": "string"
								}
							},
							"additionalProperties": false
						}
					},
					"required": [
						"id"
					],
					"additionalProperties": false
				},
				"store_session": {
					"type": "object",
					"properties": {
						"token": {
							"type": "string"
						},
						"stats": {
							"type": "object",
							"properties": {
								"parentPID": {
									"type": "string"
								},
								"parentPIDType": {
									"type": "string"
								},
								"viewerId": {
									"type": "string"
								},
								"contentType": {
									"type": "string"
								},
								"contentVariant": {
									"type": "string"
								},
								"episodeName": {
									"type": "string"
								},
								"assetName": {
									"type": "string"
								},
								"productVariant": {
									"type": "string"
								}
							}
						},
						"ceiling": {
							"type": "number"
						}
					},
					"required": [
						"token",
						"stats"
					],
					"additionalProperties": false
				}
			},
			"required": [
				"id",
				"type",
				"store_id",
				"store_profile",
				"hd",
				"download",
				"duration",
				"kind"
			],
			"additionalProperties": false
		},
		"clip": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"clip"
					]
				},
				"title": {
					"type": "string"
				},
				"images": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"image"
							]
						},
						"standard": {
							"type": "string"
						},
						"inherited_from": {
							"type": "string"
						}
					},
					"required": [
						"type",
						"standard"
					],
					"additionalProperties": false
				},
				"tleo_id": {
					"type": "string"
				},
				"synopses": {
					"type": "object",
					"properties": {
						"small": {
							"type": "string"
						},
						"medium": {
							"type": "string"
						},
						"large": {
							"type": "string"
						},
						"editorial": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"versions": {
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"id": {
								"type": "string"
							},
							"type": {
								"enum": [
									"version",
									"version_large"
								]
							},
							"hd": {
								"type": "boolean"
							},
							"download": {
								"type": "boolean"
							},
							"kind": {
								"type": "string"
							},
							"duration": {
								"type": "object",
								"properties": {
									"text": {
										"type": "string"
									},
									"value": {
										"type": "string"
									}
								},
								"required": [
									"text",
									"value"
								],
								"additionalProperties": false
							},
							"rrc": {
								"type": "object",
								"properties": {
									"url": {
										"type": "string"
									},
									"description": {
										"type": "object",
										"properties": {
											"small": {
												"type": "string"
											},
											"large": {
												"type": "string"
											}
										},
										"required": [
											"small",
											"large"
										],
										"additionalProperties": false
									}
								},
								"required": [
									"description"
								],
								"additionalProperties": false
							},
							"guidance": {
								"type": "object",
								"properties": {
									"id": {
										"type": "string"
									},
									"text": {
										"type": "object",
										"properties": {
											"small": {
												"type": "string"
											},
											"medium": {
												"type": "string"
											},
											"large": {
												"type": "string"
											}
										},
										"additionalProperties": false
									}
								},
								"required": [
									"id"
								],
								"additionalProperties": false
							},
							"first_broadcast": {
								"type": "string"
							},
							"credits_start": {
								"type": "number"
							},
							"service_id": {
								"type": "string"
							},
							"availability": {
								"type": "object",
								"properties": {
									"start": {
										"type": "string"
									},
									"end": {
										"type": "string"
									},
									"remaining": {
										"type": "object",
										"properties": {
											"text": {
												"type": "string"
											}
										},
										"required": [
											"text"
										],
										"additionalProperties": false
									}
								},
								"required": [
									"start"
								],
								"additionalProperties": false
							}
						},
						"required": [
							"id",
							"type",
							"hd",
							"download",
							"duration",
							"kind",
							"availability"
						],
						"additionalProperties": false
					}
				},
				"tleo_type": {
					"enum": [
						"episode",
						"brand",
						"series"
					]
				},
				"labels": {
					"type": "object",
					"properties": {
						"editorial": {
							"type": "string"
						}
					},
					"additionalProperties": false
				},
				"master_brand": {
					"$ref": "#/definitions/master_brand"
				},
				"promotion_type": {
					"enum": [
						"available_now",
						"coming_soon"
					]
				},
				"onward_journey": {
					"type": "object",
					"properties": {
						"type": {
							"enum": [
								"episode"
							]
						},
						"id": {
							"type": "string"
						}
					},
					"additionalProperties": false
				}
			},
			"required": [
				"id",
				"type",
				"title",
				"images",
				"tleo_id",
				"synopses",
				"versions",
				"master_brand"
			],
			"additionalProperties": false
		},
		"version": {
			"type": "object",
			"properties": {
				"id": {
					"type": "string"
				},
				"type": {
					"enum": [
						"version",
						"version_large"
					]
				},
				"hd": {
					"type": "boolean"
				},
				"download": {
					"type": "boolean"
				},
				"kind": {
					"type": "string"
				},
				"duration": {
					"type": "object",
					"properties": {
						"text": {
							"type": "string"
						},
						"value": {
							"type": "string"
						}
					},
					"required": [
						"text",
						"value"
					],
					"additionalProperties": false
				},
				"rrc": {
					"type": "object",
					"properties": {
						"url": {
							"type": "string"
						},
						"description": {
							"type": "object",
							"properties": {
								"small": {
									"type": "string"
								},
								"large": {
									"type": "string"
								}
							},
							"required": [
								"small",
								"large"
							],
							"additionalProperties": false
						}
					},
					"required": [
						"description"
					],
					"additionalProperties": false
				},
				"guidance": {
					"type": "object",
					"properties": {
						"id": {
							"type": "string"
						},
						"text": {
							"type": "object",
							"properties": {
								"small": {
									"type": "string"
								},
								"medium": {
									"type": "string"
								},
								"large": {
									"type": "string"
								}
							},
							"additionalProperties": false
						}
					},
					"required": [
						"id"
					],
					"additionalProperties": false
				},
				"first_broadcast": {
					"type": "string"
				},
				"credits_start": {
					"type": "number"
				},
				"service_id": {
					"type": "string"
				},
				"availability": {
					"type": "object",
					"properties": {
						"start": {
							"type": "string"
						},
						"end": {
							"type": "string"
						},
						"remaining": {
							"type": "object",
							"properties": {
								"text": {
									"type": "string"
								}
							},
							"required": [
								"text"
							],
							"additionalProperties": false
						}
					},
					"required": [
						"start"
					],
					"additionalProperties": false
				}
			},
			"required": [
				"id",
				"type",
				"hd",
				"download",
				"duration",
				"kind",
				"availability"
			],
			"additionalProperties": false
		}
	},
	"parameters": {
		"pid": {
			"name": "pid",
			"in": "path",
			"required": true,
			"description": "The programme identifier.",
			"type": "string",
			"pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$",
			"minLength": 8
		},
		"rights": {
			"name": "rights",
			"in": "query",
			"required": true,
			"description": "The rights group to limit results to.",
			"type": "string",
			"enum": [
				"mobile",
				"tv",
				"web"
			],
			"default": "web"
		},
		"availability": {
			"name": "availability",
			"in": "query",
			"required": true,
			"description": "Whether to return all, or available programmes",
			"type": "string",
			"enum": [
				"all",
				"available"
			],
			"default": "available"
		},
		"initial_child_count": {
			"name": "initial_child_count",
			"in": "query",
			"required": true,
			"description": "The depth to return child entities.",
			"type": "integer",
			"minimum": 1,
			"maximum": 4,
			"default": 4
		},
		"mixin": {
			"name": "mixin",
			"in": "query",
			"required": false,
			"description": "Request additional data in the output",
			"type": "array",
			"collectionFormat": "multi",
			"items": {
				"type": "string"
			},
			"enum": [
				"live",
				"promotions"
			]
		},
		"page": {
			"name": "page",
			"in": "query",
			"required": true,
			"description": "The page index.",
			"type": "integer",
			"format": "int64"
		},
		"per_page": {
			"name": "per_page",
			"in": "query",
			"required": true,
			"description": "The number of results to return.",
			"type": "integer",
			"format": "int64"
		},
		"sort_direction": {
			"name": "sort_direction",
			"in": "query",
			"required": true,
			"description": "Whether to sort ascending or descending",
			"type": "string",
			"enum": [
				"asc",
				"desc"
			]
		},
		"q": {
			"name": "q",
			"in": "query",
			"required": true,
			"description": "The term to search for.",
			"type": "string"
		},
		"lang": {
			"name": "lang",
			"in": "query",
			"required": true,
			"type": "string",
			"description": "The language for any applicable localised strings.",
			"enum": [
				"en",
				"cy",
				"ga",
				"gd",
				"pi"
			]
		},
		"channel": {
			"name": "channel",
			"in": "path",
			"required": true,
			"description": "The channel identifier to limit results to.",
			"type": "string"
		},
		"category": {
			"name": "category",
			"in": "path",
			"required": true,
			"description": "The category identifier to return results from.",
			"type": "string"
		},
		"sort": {
			"name": "sort",
			"in": "query",
			"required": true,
			"description": "The sort order of the results.",
			"type": "string"
		},
		"identity_cookie": {
			"name": "identity_cookie",
			"in": "query",
			"required": true,
			"description": "The BBC-id cookie value",
			"type": "number",
			"format": "double"
		}
	}
}