BBC iPlayer Business Layer icon

BBC iPlayer Business Layer

The definitive iPlayer API

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://ibl.api.bbci.co.uk/ibl/v1"
    },
    {
      "url": "http://ibl.api.bbci.co.uk/ibl/v1"
    }
  ],
  "info": {
    "contact": {
      "email": "ibl-team@lists.forge.bbc.co.uk",
      "name": "Open iBL Project",
      "url": "http://developer.bbc.co.uk/"
    },
    "description": "The definitive iPlayer API.",
    "license": {
      "name": "MIT",
      "url": "https://opensource.org/licenses/MIT"
    },
    "title": "BBC iPlayer Business Layer",
    "version": "1.0",
    "x-apisguru-categories": [
      "media"
    ],
    "x-logo": {
      "backgroundColor": "#FFFFFF",
      "url": "https://api.apis.guru/v2/cache/logo/https_avatars0.githubusercontent.com_u_828722.png"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://raw.githubusercontent.com/Mermade/bbcparse/master/iblApi/openapi.yaml",
        "version": "3.0"
      }
    ],
    "x-providerName": "bbci.co.uk",
    "x-release": "1.0.0-844",
    "x-schema-id": "https://ibl.api.bbci.co.uk/ibl/v1/schema/ibl.json",
    "x-unofficialSpec": true
  },
  "externalDocs": {
    "description": "BBC iPlayer documentation",
    "url": "http://smethur.st/posts/176135860"
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "paths": {
    "/atoz/{letter}/programmes": {
      "get": {
        "description": "Get the Programmes whose title begins with the given initial character.",
        "operationId": "Get_Programmes AtoZ search_",
        "parameters": [
          {
            "description": "Letter to search by, a to z or the string '0-9'",
            "in": "path",
            "name": "letter",
            "required": true,
            "schema": {
              "pattern": "[a-z](0-9)",
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          },
          {
            "$ref": "#/components/parameters/initial_child_count"
          },
          {
            "description": "The sort order of the results.",
            "in": "query",
            "name": "sort",
            "required": true,
            "schema": {
              "enum": [
                "title"
              ],
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/sort_direction"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Programmes by initial title character",
        "tags": [
          "A to Z"
        ]
      }
    },
    "/categories": {
      "get": {
        "description": "Get the list of all the categories in TV & iPlayer.",
        "operationId": "Get_Categories_",
        "parameters": [
          {
            "$ref": "#/components/parameters/lang"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get categories",
        "tags": [
          "Categories"
        ]
      }
    },
    "/categories/{category}": {
      "get": {
        "description": "Get sub-categories",
        "operationId": "Get_Sub-categories_",
        "parameters": [
          {
            "$ref": "#/components/parameters/category"
          },
          {
            "$ref": "#/components/parameters/lang"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get sub-categories",
        "tags": [
          "Categories"
        ]
      }
    },
    "/categories/{category}/episodes": {
      "get": {
        "description": "Get the list of all the episodes for a given category in TV & iPlayer.",
        "operationId": "Get_Episodes by category_",
        "parameters": [
          {
            "$ref": "#/components/parameters/category"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          },
          {
            "description": "The sort order of the results.",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "enum": [
                "recent",
                "popular"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List all the episodes for a category.",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/categories/{category}/highlights": {
      "get": {
        "description": "Get the editorial highlights of a given category in TV & iPlayer.",
        "operationId": "Get_Highlights by category_",
        "parameters": [
          {
            "$ref": "#/components/parameters/category"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List the highlights for a category.",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/categories/{category}/programmes": {
      "get": {
        "description": "Get the list of all the Programmes (TLEOs) for a given category in TV & iPlayer.",
        "operationId": "Get_Programmes by category_",
        "parameters": [
          {
            "$ref": "#/components/parameters/category"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List all the programmes for a category.",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/channels": {
      "get": {
        "description": "Get the list of all the channels TV & iPlayer.",
        "operationId": "Get_Channels_",
        "parameters": [
          {
            "description": "The region to get the channels for.",
            "in": "query",
            "name": "region",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/lang"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List all the channels.",
        "tags": [
          "Channels"
        ]
      }
    },
    "/channels/{channel}/broadcasts": {
      "get": {
        "description": "Get broadcasts by channel",
        "operationId": "Get_Broadcasts by channel_",
        "parameters": [
          {
            "$ref": "#/components/parameters/channel"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          },
          {
            "$ref": "#/components/parameters/per_page"
          },
          {
            "description": "Time to return results from, e.g. -3h",
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get broadcasts by channel",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/channels/{channel}/highlights": {
      "get": {
        "description": "Get the editorial highlights of a given channel in TV & iPlayer.",
        "operationId": "Get_Highlights by channel_",
        "parameters": [
          {
            "$ref": "#/components/parameters/channel"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "description": "Whether to include live programmes",
            "in": "query",
            "name": "live",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List the highlights for a channel.",
        "tags": [
          "Channels"
        ]
      }
    },
    "/channels/{channel}/programmes": {
      "get": {
        "description": "Get programmes by channel",
        "operationId": "Get_Programmes by channel_",
        "parameters": [
          {
            "$ref": "#/components/parameters/channel"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get programmes by channel",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/channels/{channel}/schedule/{date}": {
      "get": {
        "description": "Get schedule by channel",
        "operationId": "Get_Schedule by channel_",
        "parameters": [
          {
            "$ref": "#/components/parameters/channel"
          },
          {
            "description": "The date to return the schedule for, yyyy-mm-dd format",
            "in": "path",
            "name": "date",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get schedule by channel",
        "tags": [
          "Channels"
        ]
      }
    },
    "/clips/{pid}": {
      "get": {
        "description": "Get Clips",
        "operationId": "Get_Clips_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get Clips",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/episodes/{pid}": {
      "get": {
        "description": "Get the episode for a given episode identifier.",
        "operationId": "Get_Programme by PID_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Episode for a given pid.",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/episodes/{pid}/next": {
      "get": {
        "description": "Get Onward Journey (next programme)",
        "operationId": "Get_Onward_Journey",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get Onward Journey",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/episodes/{pid}/postrolls": {
      "get": {
        "description": "Get Follow-ups (post-rolls)",
        "operationId": "getPostRolls",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get Follow-ups (post-rolls)",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/episodes/{pid}/prerolls": {
      "get": {
        "description": "Get Trailers (pre-rolls)",
        "operationId": "Get_Trailers (pre-rolls)_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get Trailers (pre-rolls)",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/episodes/{pid}/recommendations": {
      "get": {
        "description": "Get programme recommendations",
        "operationId": "Get_Programme recommendations_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get programme recommendations",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/groups/popular/episodes": {
      "get": {
        "description": "Get programmes popular",
        "operationId": "Get_Programmes popular_",
        "parameters": [
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          },
          {
            "$ref": "#/components/parameters/initial_child_count"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/sort_direction"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get programmes popular",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/groups/{pid}/episodes": {
      "get": {
        "description": "Get episodes by group, brand or series",
        "operationId": "Get_Episodes by group_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/per_page"
          },
          {
            "$ref": "#/components/parameters/initial_child_count"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/sort_direction"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get episodes by group, brand or series",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/home/highlights": {
      "get": {
        "description": "Get programme highlights",
        "operationId": "Get_Programme highlights_",
        "parameters": [
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/mixin"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get programme highlights",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/programmes/{pid}": {
      "get": {
        "description": "Get the programme for a given programme identifier.",
        "operationId": "Get_Programmes by parent PID_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/initial_child_count"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Programme for a given pid.",
        "tags": [
          "Programmes (TLEOs)"
        ]
      }
    },
    "/programmes/{pid}/episodes": {
      "get": {
        "description": "Get the child episodes belonging to a given programme identifier.",
        "operationId": "Get_Episodes by parent PID_",
        "parameters": [
          {
            "$ref": "#/components/parameters/pid"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          },
          {
            "$ref": "#/components/parameters/initial_child_count"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Child episodes for a given programme pid.",
        "tags": [
          "Episodes"
        ]
      }
    },
    "/regions": {
      "get": {
        "description": "Get the list of all the regions TV & iPlayer.",
        "operationId": "Get_Regions_",
        "parameters": [
          {
            "$ref": "#/components/parameters/lang"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "List all regions",
        "tags": [
          "Regions"
        ]
      }
    },
    "/schema/ibl.json": {
      "get": {
        "description": "Get schema",
        "operationId": "Get_Schema_",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get schema",
        "tags": [
          "Metadata"
        ]
      }
    },
    "/search": {
      "get": {
        "description": "Search",
        "operationId": "Search_",
        "parameters": [
          {
            "$ref": "#/components/parameters/q"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Search",
        "tags": [
          "Search"
        ]
      }
    },
    "/search-suggest": {
      "get": {
        "description": "Search-suggest",
        "operationId": "Search-suggest_",
        "parameters": [
          {
            "$ref": "#/components/parameters/q"
          },
          {
            "$ref": "#/components/parameters/lang"
          },
          {
            "$ref": "#/components/parameters/rights"
          },
          {
            "$ref": "#/components/parameters/availability"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Search-suggest",
        "tags": [
          "Search"
        ]
      }
    },
    "/status": {
      "get": {
        "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.",
        "operationId": "Get_Status_",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get status",
        "tags": [
          "Metadata"
        ]
      }
    },
    "/user/purchases": {
      "get": {
        "description": "Get user store purchases",
        "operationId": "Get_User store purchases_",
        "parameters": [
          {
            "$ref": "#/components/parameters/identity_cookie"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [
          {
            "basic": []
          }
        ],
        "summary": "Get user store purchases",
        "tags": [
          "User"
        ]
      }
    },
    "/user/recommendations": {
      "get": {
        "description": "Get user store recommendations",
        "operationId": "Get_User store recommendations_",
        "parameters": [
          {
            "$ref": "#/components/parameters/identity_cookie"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get user store recommendations",
        "tags": [
          "User"
        ]
      }
    },
    "/user/watching": {
      "get": {
        "description": "Get user watching",
        "operationId": "Get_User watching_",
        "parameters": [
          {
            "$ref": "#/components/parameters/identity_cookie"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ibl"
                }
              }
            },
            "description": "Default response"
          }
        },
        "security": [],
        "summary": "Get user watching",
        "tags": [
          "User"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "availability": {
        "description": "Whether to return all, or available programmes",
        "in": "query",
        "name": "availability",
        "required": true,
        "schema": {
          "default": "available",
          "enum": [
            "all",
            "available"
          ],
          "type": "string"
        }
      },
      "category": {
        "description": "The category identifier to return results from.",
        "in": "path",
        "name": "category",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "channel": {
        "description": "The channel identifier to limit results to.",
        "in": "path",
        "name": "channel",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "identity_cookie": {
        "description": "The BBC-id cookie value",
        "in": "query",
        "name": "identity_cookie",
        "required": true,
        "schema": {
          "format": "double",
          "type": "number"
        }
      },
      "initial_child_count": {
        "description": "The depth to return child entities.",
        "in": "query",
        "name": "initial_child_count",
        "required": true,
        "schema": {
          "default": 4,
          "maximum": 4,
          "minimum": 1,
          "type": "integer"
        }
      },
      "lang": {
        "description": "The language for any applicable localised strings.",
        "in": "query",
        "name": "lang",
        "required": true,
        "schema": {
          "enum": [
            "en",
            "cy",
            "ga",
            "gd",
            "pi"
          ],
          "type": "string"
        }
      },
      "mixin": {
        "description": "Request additional data in the output",
        "explode": true,
        "in": "query",
        "name": "mixin",
        "required": false,
        "schema": {
          "enum": [
            "live",
            "promotions"
          ],
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "page": {
        "description": "The page index.",
        "in": "query",
        "name": "page",
        "required": true,
        "schema": {
          "format": "int64",
          "type": "integer"
        }
      },
      "per_page": {
        "description": "The number of results to return.",
        "in": "query",
        "name": "per_page",
        "required": true,
        "schema": {
          "format": "int64",
          "type": "integer"
        }
      },
      "pid": {
        "description": "The programme identifier.",
        "in": "path",
        "name": "pid",
        "required": true,
        "schema": {
          "minLength": 8,
          "pattern": "^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$",
          "type": "string"
        }
      },
      "q": {
        "description": "The term to search for.",
        "in": "query",
        "name": "q",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "rights": {
        "description": "The rights group to limit results to.",
        "in": "query",
        "name": "rights",
        "required": true,
        "schema": {
          "default": "web",
          "enum": [
            "mobile",
            "tv",
            "web"
          ],
          "type": "string"
        }
      },
      "sort": {
        "description": "The sort order of the results.",
        "in": "query",
        "name": "sort",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "sort_direction": {
        "description": "Whether to sort ascending or descending",
        "in": "query",
        "name": "sort_direction",
        "required": true,
        "schema": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string"
        }
      }
    },
    "schemas": {
      "added": {
        "additionalProperties": false,
        "properties": {
          "programme": {
            "$ref": "#/components/schemas/programme"
          },
          "type": {
            "enum": [
              "added"
            ]
          },
          "urn": {
            "type": "string"
          }
        },
        "required": [
          "urn",
          "type",
          "programme"
        ],
        "type": "object"
      },
      "broadcast": {
        "additionalProperties": false,
        "properties": {
          "available_on_hd_service": {
            "nullable": true,
            "type": "string"
          },
          "blanked": {
            "type": "boolean"
          },
          "channel_title": {
            "type": "string"
          },
          "duration": {
            "additionalProperties": false,
            "properties": {
              "text": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "value",
              "text"
            ],
            "type": "object"
          },
          "episode": {
            "$ref": "#/components/schemas/episode"
          },
          "episode_id": {
            "type": "string"
          },
          "events": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string"
                },
                "system": {
                  "type": "string"
                },
                "time": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "system",
                "time"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "id": {
            "type": "string"
          },
          "repeat": {
            "type": "boolean"
          },
          "scheduled_end": {
            "type": "string"
          },
          "scheduled_start": {
            "type": "string"
          },
          "service_id": {
            "type": "string"
          },
          "transmission_end": {
            "type": "string"
          },
          "transmission_start": {
            "type": "string"
          },
          "type": {
            "enum": [
              "broadcast"
            ]
          },
          "version_id": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "scheduled_start",
          "scheduled_end",
          "repeat",
          "blanked",
          "episode",
          "episode_id",
          "version_id",
          "service_id"
        ],
        "type": "object"
      },
      "category": {
        "additionalProperties": false,
        "properties": {
          "child_episode_count": {
            "type": "number"
          },
          "child_programme_count": {
            "type": "number"
          },
          "contextual_title": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "genre",
              "accessibility",
              "national",
              "childrens"
            ]
          },
          "parent_category": {
            "type": "string"
          },
          "sub_categories": {
            "items": {
              "$ref": "#/components/schemas/category"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "category"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "kind"
        ],
        "type": "object"
      },
      "channel": {
        "additionalProperties": false,
        "properties": {
          "has_schedule": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "master_brand_id": {
            "type": "string"
          },
          "master_brand_title": {
            "type": "string"
          },
          "on_air": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "channel"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "has_schedule",
          "master_brand_id",
          "master_brand_title"
        ],
        "type": "object"
      },
      "clip": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "images": {
            "additionalProperties": false,
            "properties": {
              "inherited_from": {
                "type": "string"
              },
              "standard": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "image"
                ]
              }
            },
            "required": [
              "type",
              "standard"
            ],
            "type": "object"
          },
          "labels": {
            "additionalProperties": false,
            "properties": {
              "category": {
                "type": "string"
              },
              "editorial": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "master_brand": {
            "$ref": "#/components/schemas/master_brand"
          },
          "onward_journey": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "episode"
                ]
              }
            },
            "type": "object"
          },
          "promotion_type": {
            "enum": [
              "available_now",
              "coming_soon"
            ]
          },
          "synopses": {
            "additionalProperties": false,
            "properties": {
              "editorial": {
                "type": "string"
              },
              "large": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "tleo_id": {
            "type": "string"
          },
          "tleo_type": {
            "enum": [
              "episode",
              "brand",
              "series"
            ]
          },
          "type": {
            "enum": [
              "clip"
            ]
          },
          "versions": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "availability": {
                  "additionalProperties": false,
                  "properties": {
                    "accurate_start": {
                      "type": "string"
                    },
                    "end": {
                      "type": "string"
                    },
                    "remaining": {
                      "additionalProperties": false,
                      "properties": {
                        "text": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "text"
                      ],
                      "type": "object"
                    },
                    "start": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "start"
                  ],
                  "type": "object"
                },
                "credits_start": {
                  "type": "number"
                },
                "download": {
                  "type": "boolean"
                },
                "duration": {
                  "additionalProperties": false,
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "text",
                    "value"
                  ],
                  "type": "object"
                },
                "events": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "offset": {
                            "type": "integer"
                          },
                          "system": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "system",
                          "offset"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "system": {
                            "type": "string"
                          },
                          "time": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "system",
                          "time"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "first_broadcast": {
                  "type": "string"
                },
                "first_broadcast_date_time": {
                  "type": "string"
                },
                "guidance": {
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "text": {
                      "additionalProperties": false,
                      "properties": {
                        "large": {
                          "type": "string"
                        },
                        "medium": {
                          "type": "string"
                        },
                        "small": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "hd": {
                  "type": "boolean"
                },
                "id": {
                  "type": "string"
                },
                "interactions": {
                  "items": {
                    "$ref": "#/components/schemas/interaction"
                  },
                  "type": "array"
                },
                "kind": {
                  "enum": [
                    "legal",
                    "editorial",
                    "technical-replacement",
                    "original",
                    "iplayer-version",
                    "lengthened",
                    "shortened",
                    "pre-watershed",
                    "post-watershed",
                    "warnings-higher",
                    "warnings-lower",
                    "warnings-none",
                    "duplication",
                    "open-subtitled",
                    "other",
                    "audio-described",
                    "signed",
                    "webcast",
                    "simulcast"
                  ]
                },
                "rrc": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "additionalProperties": false,
                      "properties": {
                        "large": {
                          "type": "string"
                        },
                        "small": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "small",
                        "large"
                      ],
                      "type": "object"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "description"
                  ],
                  "type": "object"
                },
                "service_id": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "version",
                    "version_large"
                  ]
                },
                "uhd": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "type",
                "hd",
                "uhd",
                "download",
                "duration",
                "kind",
                "availability"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "type",
          "title",
          "images",
          "tleo_id",
          "synopses",
          "versions",
          "master_brand"
        ],
        "type": "object"
      },
      "episode": {
        "additionalProperties": false,
        "properties": {
          "audio_described": {
            "type": "boolean"
          },
          "categories": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "childrens": {
            "type": "boolean"
          },
          "editorial_subtitle": {
            "type": "string"
          },
          "editorial_title": {
            "type": "string"
          },
          "event_group_id": {
            "type": "string"
          },
          "guidance": {
            "type": "boolean"
          },
          "has_credits": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "additionalProperties": false,
            "properties": {
              "character_image": {
                "type": "string"
              },
              "inherited_from": {
                "type": "string"
              },
              "live": {
                "type": "string"
              },
              "portrait": {
                "type": "string"
              },
              "promotional": {
                "type": "string"
              },
              "promotional_with_logo": {
                "type": "string"
              },
              "standard": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "image"
                ]
              }
            },
            "required": [
              "type",
              "standard"
            ],
            "type": "object"
          },
          "labels": {
            "additionalProperties": false,
            "properties": {
              "category": {
                "type": "string"
              },
              "editorial": {
                "type": "string"
              },
              "editorial_category": {
                "type": "string"
              },
              "time": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "lexical_sort_letter": {
            "type": "string"
          },
          "live": {
            "type": "boolean"
          },
          "live_subtitle": {
            "type": "string"
          },
          "live_title": {
            "type": "string"
          },
          "master_brand": {
            "$ref": "#/components/schemas/master_brand"
          },
          "next_broadcast": {
            "additionalProperties": false,
            "properties": {
              "channel_title": {
                "type": "string"
              },
              "scheduled_start": {
                "type": "string"
              }
            },
            "required": [
              "channel_title",
              "scheduled_start"
            ],
            "type": "object"
          },
          "numeric_tleo_position": {
            "type": "number"
          },
          "original_title": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "parent_position": {
            "type": "number"
          },
          "preview_id": {
            "type": "string"
          },
          "programme_type": {
            "enum": [
              "narrative",
              "sequential",
              "self-contained",
              "strand",
              "unclassified",
              "one-off"
            ]
          },
          "promoted": {
            "type": "boolean"
          },
          "related_links": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "type": {
                  "enum": [
                    "link"
                  ]
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "url",
                "type",
                "kind",
                "title"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "release_date": {
            "type": "string"
          },
          "release_date_time": {
            "type": "string"
          },
          "requires_ab": {
            "items": {
              "enum": [
                "u13",
                "u16",
                "u18",
                "o18"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          },
          "requires_sign_in": {
            "type": "boolean"
          },
          "requires_tv_licence": {
            "type": "boolean"
          },
          "signed": {
            "type": "boolean"
          },
          "slice_id": {
            "type": "string"
          },
          "slice_subtitle": {
            "type": "string"
          },
          "status": {
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "subtitle": {
            "type": "string"
          },
          "synopses": {
            "additionalProperties": false,
            "properties": {
              "editorial": {
                "type": "string"
              },
              "large": {
                "type": "string"
              },
              "live": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "preview": {
                "type": "string"
              },
              "programme_small": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "tests": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "active"
                  ],
                  "type": "string"
                },
                "variants": {
                  "items": {
                    "properties": {
                      "data": {
                        "properties": {
                          "images": {
                            "properties": {
                              "standard": {
                                "type": "string"
                              },
                              "type": {
                                "enum": [
                                  "episode",
                                  "episode_large"
                                ]
                              }
                            },
                            "required": [
                              "type",
                              "standard"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "images"
                        ],
                        "type": "object"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "data"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "id",
                "variants",
                "status"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "tleo_id": {
            "type": "string"
          },
          "tleo_type": {
            "enum": [
              "episode",
              "brand",
              "series"
            ]
          },
          "type": {
            "enum": [
              "episode",
              "episode_large"
            ]
          },
          "versions": {
            "items": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "properties": {
                    "availability": {
                      "additionalProperties": false,
                      "properties": {
                        "accurate_start": {
                          "type": "string"
                        },
                        "end": {
                          "type": "string"
                        },
                        "remaining": {
                          "additionalProperties": false,
                          "properties": {
                            "text": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "text"
                          ],
                          "type": "object"
                        },
                        "start": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "start"
                      ],
                      "type": "object"
                    },
                    "credits_start": {
                      "type": "number"
                    },
                    "download": {
                      "type": "boolean"
                    },
                    "duration": {
                      "additionalProperties": false,
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "text",
                        "value"
                      ],
                      "type": "object"
                    },
                    "events": {
                      "items": {
                        "oneOf": [
                          {
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "offset": {
                                "type": "integer"
                              },
                              "system": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "system",
                              "offset"
                            ],
                            "type": "object"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "system": {
                                "type": "string"
                              },
                              "time": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "name",
                              "system",
                              "time"
                            ],
                            "type": "object"
                          }
                        ]
                      },
                      "type": "array"
                    },
                    "first_broadcast": {
                      "type": "string"
                    },
                    "first_broadcast_date_time": {
                      "type": "string"
                    },
                    "guidance": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "text": {
                          "additionalProperties": false,
                          "properties": {
                            "large": {
                              "type": "string"
                            },
                            "medium": {
                              "type": "string"
                            },
                            "small": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "type": "object"
                    },
                    "hd": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "interactions": {
                      "items": {
                        "$ref": "#/components/schemas/interaction"
                      },
                      "type": "array"
                    },
                    "kind": {
                      "enum": [
                        "legal",
                        "editorial",
                        "technical-replacement",
                        "original",
                        "iplayer-version",
                        "lengthened",
                        "shortened",
                        "pre-watershed",
                        "post-watershed",
                        "warnings-higher",
                        "warnings-lower",
                        "warnings-none",
                        "duplication",
                        "open-subtitled",
                        "other",
                        "audio-described",
                        "signed",
                        "webcast",
                        "simulcast"
                      ]
                    },
                    "rrc": {
                      "additionalProperties": false,
                      "properties": {
                        "description": {
                          "additionalProperties": false,
                          "properties": {
                            "large": {
                              "type": "string"
                            },
                            "small": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "small",
                            "large"
                          ],
                          "type": "object"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "description"
                      ],
                      "type": "object"
                    },
                    "service_id": {
                      "type": "string"
                    },
                    "type": {
                      "enum": [
                        "version",
                        "version_large"
                      ]
                    },
                    "uhd": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "hd",
                    "uhd",
                    "download",
                    "duration",
                    "kind",
                    "availability"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "download": {
                      "type": "boolean"
                    },
                    "duration": {
                      "additionalProperties": false,
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "value": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "text",
                        "value"
                      ],
                      "type": "object"
                    },
                    "guidance": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "text": {
                          "additionalProperties": false,
                          "properties": {
                            "large": {
                              "type": "string"
                            },
                            "medium": {
                              "type": "string"
                            },
                            "small": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "type": "object"
                    },
                    "hd": {
                      "type": "boolean"
                    },
                    "id": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "store_id": {
                      "type": "string"
                    },
                    "store_profile": {
                      "type": "string"
                    },
                    "store_session": {
                      "additionalProperties": false,
                      "properties": {
                        "ceiling": {
                          "type": "number"
                        },
                        "stats": {
                          "properties": {
                            "assetName": {
                              "type": "string"
                            },
                            "contentType": {
                              "type": "string"
                            },
                            "contentVariant": {
                              "type": "string"
                            },
                            "episodeName": {
                              "type": "string"
                            },
                            "parentPID": {
                              "type": "string"
                            },
                            "parentPIDType": {
                              "type": "string"
                            },
                            "productVariant": {
                              "type": "string"
                            },
                            "viewerId": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "token": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "token",
                        "stats"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "enum": [
                        "store_version"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "store_id",
                    "store_profile",
                    "hd",
                    "download",
                    "duration",
                    "kind"
                  ],
                  "type": "object"
                }
              ]
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "type",
          "title",
          "images",
          "signed",
          "audio_described",
          "status",
          "tleo_id",
          "guidance",
          "synopses",
          "versions",
          "tleo_type",
          "categories",
          "master_brand",
          "lexical_sort_letter",
          "requires_sign_in"
        ],
        "type": "object"
      },
      "group": {
        "additionalProperties": false,
        "properties": {
          "count": {
            "type": "number"
          },
          "episode_sort_direction": {
            "type": "string"
          },
          "group_type": {
            "enum": [
              "tleo",
              "curated",
              "automated",
              "event"
            ]
          },
          "id": {
            "type": "string"
          },
          "images": {
            "additionalProperties": false,
            "properties": {
              "standard": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "image"
                ]
              },
              "vertical": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "standard",
              "vertical"
            ],
            "type": "object"
          },
          "initial_children": {
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/episode"
                },
                {
                  "$ref": "#/components/schemas/broadcast"
                }
              ]
            },
            "type": "array"
          },
          "master_brand": {
            "$ref": "#/components/schemas/master_brand"
          },
          "related_links": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "url",
                "title"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "short_title": {
            "type": "string"
          },
          "stacked": {
            "type": "boolean"
          },
          "synopses": {
            "additionalProperties": false,
            "properties": {
              "large": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "group",
              "group_large"
            ]
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "ibl": {},
      "interaction": {
        "additionalProperties": false,
        "properties": {
          "interaction_points": {
            "additionalProperties": false,
            "properties": {
              "show_from": {
                "type": "number"
              },
              "skip_to": {
                "type": "number"
              }
            },
            "required": [
              "show_from",
              "skip_to"
            ],
            "type": "object"
          },
          "subtype": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "enum": [
                  "intro",
                  "recap",
                  "this-episode-preview",
                  "next-episode-teaser"
                ]
              }
            ]
          },
          "title": {
            "additionalProperties": false,
            "properties": {
              "long": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "enum": [
                      "Skip intro",
                      "Skip recap",
                      "Skip preview"
                    ]
                  }
                ]
              },
              "short": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "enum": [
                      "Skip"
                    ]
                  }
                ]
              }
            },
            "required": [
              "short",
              "long"
            ],
            "type": "object"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "enum": [
                  "skip"
                ]
              }
            ]
          }
        },
        "required": [
          "title",
          "type",
          "subtype",
          "interaction_points"
        ],
        "type": "object"
      },
      "master_brand": {
        "additionalProperties": false,
        "properties": {
          "attribution": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "ident_id": {
            "type": "string"
          },
          "titles": {
            "additionalProperties": false,
            "properties": {
              "large": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "required": [
              "small",
              "medium",
              "large"
            ],
            "type": "object"
          }
        },
        "required": [
          "id",
          "titles",
          "attribution"
        ],
        "type": "object"
      },
      "programme": {
        "additionalProperties": false,
        "properties": {
          "categories": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "count": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "images": {
            "additionalProperties": false,
            "properties": {
              "inherited_from": {
                "type": "string"
              },
              "standard": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "image"
                ]
              }
            },
            "required": [
              "type",
              "standard"
            ],
            "type": "object"
          },
          "initial_children": {
            "items": {
              "$ref": "#/components/schemas/episode"
            },
            "type": "array"
          },
          "labels": {
            "additionalProperties": false,
            "properties": {
              "category": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "lexical_sort_letter": {
            "type": "string"
          },
          "master_brand": {
            "$ref": "#/components/schemas/master_brand"
          },
          "programme_type": {
            "enum": [
              "narrative",
              "sequential",
              "self-contained",
              "strand",
              "unclassified",
              "one-off"
            ]
          },
          "status": {
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "synopses": {
            "additionalProperties": false,
            "properties": {
              "large": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "tleo_type": {
            "enum": [
              "brand",
              "series",
              "episode"
            ]
          },
          "type": {
            "enum": [
              "programme",
              "programme_large"
            ]
          }
        },
        "required": [
          "id",
          "type",
          "title",
          "synopses",
          "lexical_sort_letter",
          "images",
          "master_brand",
          "categories",
          "status",
          "count",
          "initial_children"
        ],
        "type": "object"
      },
      "promotion": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "images": {
            "additionalProperties": false,
            "properties": {
              "inherited_from": {
                "type": "string"
              },
              "standard": {
                "type": "string"
              },
              "type": {
                "enum": [
                  "image"
                ]
              }
            },
            "required": [
              "type",
              "standard"
            ],
            "type": "object"
          },
          "labels": {
            "additionalProperties": false,
            "properties": {
              "promotion": {
                "type": "string"
              }
            },
            "required": [
              "promotion"
            ],
            "type": "object"
          },
          "subtitle": {
            "type": "string"
          },
          "synopses": {
            "additionalProperties": false,
            "properties": {
              "large": {
                "type": "string"
              },
              "medium": {
                "type": "string"
              },
              "small": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "promotion"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "region": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "regional",
              "national"
            ]
          },
          "short_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "region"
            ]
          }
        },
        "required": [
          "id",
          "short_id",
          "type",
          "title",
          "kind"
        ],
        "type": "object"
      },
      "search_group": {
        "additionalProperties": false,
        "properties": {
          "episode": {
            "$ref": "#/components/schemas/episode"
          },
          "id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "search_group"
            ]
          }
        },
        "required": [
          "id",
          "type",
          "episode"
        ],
        "type": "object"
      },
      "store_version": {
        "additionalProperties": false,
        "properties": {
          "download": {
            "type": "boolean"
          },
          "duration": {
            "additionalProperties": false,
            "properties": {
              "text": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "text",
              "value"
            ],
            "type": "object"
          },
          "guidance": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "text": {
                "additionalProperties": false,
                "properties": {
                  "large": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string"
                  },
                  "small": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "hd": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "store_id": {
            "type": "string"
          },
          "store_profile": {
            "type": "string"
          },
          "store_session": {
            "additionalProperties": false,
            "properties": {
              "ceiling": {
                "type": "number"
              },
              "stats": {
                "properties": {
                  "assetName": {
                    "type": "string"
                  },
                  "contentType": {
                    "type": "string"
                  },
                  "contentVariant": {
                    "type": "string"
                  },
                  "episodeName": {
                    "type": "string"
                  },
                  "parentPID": {
                    "type": "string"
                  },
                  "parentPIDType": {
                    "type": "string"
                  },
                  "productVariant": {
                    "type": "string"
                  },
                  "viewerId": {
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "token": {
                "type": "string"
              }
            },
            "required": [
              "token",
              "stats"
            ],
            "type": "object"
          },
          "type": {
            "enum": [
              "store_version"
            ]
          }
        },
        "required": [
          "id",
          "type",
          "store_id",
          "store_profile",
          "hd",
          "download",
          "duration",
          "kind"
        ],
        "type": "object"
      },
      "trailer": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "available_now",
              "watch_now",
              "coming_soon",
              "streaming_now_sounds",
              "other"
            ]
          },
          "message": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "enum": [
              "trailer"
            ]
          },
          "version_id": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "title",
          "kind",
          "version_id",
          "message"
        ],
        "type": "object"
      },
      "user_recommendation": {
        "additionalProperties": false,
        "properties": {
          "algorithm": {
            "type": "string"
          },
          "episode": {
            "$ref": "#/components/schemas/episode"
          },
          "type": {
            "enum": [
              "user_recommendation"
            ]
          }
        },
        "required": [
          "algorithm",
          "type",
          "episode"
        ],
        "type": "object"
      },
      "version": {
        "additionalProperties": false,
        "properties": {
          "availability": {
            "additionalProperties": false,
            "properties": {
              "accurate_start": {
                "type": "string"
              },
              "end": {
                "type": "string"
              },
              "remaining": {
                "additionalProperties": false,
                "properties": {
                  "text": {
                    "type": "string"
                  }
                },
                "required": [
                  "text"
                ],
                "type": "object"
              },
              "start": {
                "type": "string"
              }
            },
            "required": [
              "start"
            ],
            "type": "object"
          },
          "credits_start": {
            "type": "number"
          },
          "download": {
            "type": "boolean"
          },
          "duration": {
            "additionalProperties": false,
            "properties": {
              "text": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "required": [
              "text",
              "value"
            ],
            "type": "object"
          },
          "events": {
            "items": {
              "oneOf": [
                {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "offset": {
                      "type": "integer"
                    },
                    "system": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "system",
                    "offset"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "system": {
                      "type": "string"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "system",
                    "time"
                  ],
                  "type": "object"
                }
              ]
            },
            "type": "array"
          },
          "first_broadcast": {
            "type": "string"
          },
          "first_broadcast_date_time": {
            "type": "string"
          },
          "guidance": {
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "text": {
                "additionalProperties": false,
                "properties": {
                  "large": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string"
                  },
                  "small": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "hd": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "interactions": {
            "items": {
              "$ref": "#/components/schemas/interaction"
            },
            "type": "array"
          },
          "kind": {
            "enum": [
              "legal",
              "editorial",
              "technical-replacement",
              "original",
              "iplayer-version",
              "lengthened",
              "shortened",
              "pre-watershed",
              "post-watershed",
              "warnings-higher",
              "warnings-lower",
              "warnings-none",
              "duplication",
              "open-subtitled",
              "other",
              "audio-described",
              "signed",
              "webcast",
              "simulcast"
            ]
          },
          "rrc": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "additionalProperties": false,
                "properties": {
                  "large": {
                    "type": "string"
                  },
                  "small": {
                    "type": "string"
                  }
                },
                "required": [
                  "small",
                  "large"
                ],
                "type": "object"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "description"
            ],
            "type": "object"
          },
          "service_id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "version",
              "version_large"
            ]
          },
          "uhd": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "type",
          "hd",
          "uhd",
          "download",
          "duration",
          "kind",
          "availability"
        ],
        "type": "object"
      },
      "watching": {
        "additionalProperties": false,
        "properties": {
          "episode": {
            "$ref": "#/components/schemas/episode"
          },
          "has_next": {
            "type": "boolean"
          },
          "offset": {
            "type": "number"
          },
          "programme": {
            "$ref": "#/components/schemas/programme"
          },
          "progress": {
            "type": "number"
          },
          "remaining": {
            "type": "number"
          },
          "status": {
            "enum": [
              "current",
              "next",
              "ended"
            ]
          },
          "type": {
            "enum": [
              "watching"
            ]
          },
          "urn": {
            "type": "string"
          },
          "version": {
            "$ref": "#/components/schemas/version"
          }
        },
        "required": [
          "type",
          "urn",
          "episode",
          "programme",
          "version",
          "has_next"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "api_key": {
        "in": "query",
        "name": "api_key",
        "type": "apiKey"
      },
      "basic": {
        "description": "Used only by store purchases.",
        "scheme": "basic",
        "type": "http"
      }
    }
  }
}