Gracenote GN IDS API

The GN IDS API is the only write surface Gracenote publishes. It lets content providers create, retrieve, update, delete and publish programs into Gracenote-licensed datasets across 85+ countries using Gracenote's video IDs — movie roots, versions and presentations, show roots, versions, presentations, seasons and episodes, plus images, catalogs, bulk batches and exports. 45 of its 74 operations mutate state.

Operations 74

GET /bulk/movies/batches Retrieve bulk movie batches. #
POST /bulk/movies/batches Create a new bulk movies batch. #
GET /bulk/movies/batches/{gnID} Search for movie batch using its GnID. #
GET /bulk/programs/exports Returns a paginated collection of exports in a source's catalog. #
POST /bulk/programs/exports creates a new export with user provided filters #
GET /bulk/programs/exports/{gnID} #
GET /bulk/programs/exports/{gnID}/results Fetches the results for an export by its GNID #
POST /bulk/publish Submit multiple presentations for publish. #
GET /bulk/shows/batches Retrieve bulk show batches. #
POST /bulk/shows/batches Create a new bulk shows batch. #
GET /bulk/shows/batches/{gnID} Search for show batch using its GnID. #
POST /catalogPrograms Adds presentations to a catalog. #
PATCH /catalogPrograms Remove presentation(s) from a Catalog. #
GET /catalogs Query Catalogs. #
PUT /catalogs Update a Catalog. #
POST /catalogs Create a new Catalog. #
GET /catalogs/{gnID} Query Catalog using gnID. #
DELETE /catalogs/{gnID} Delete Catalog. #
GET /gnvocabulary Retrieve the Gracenote Vocabulary. #
GET /images #
POST /images Create a new image. #
GET /images/{gnID} Query an image using its gnID. #
PUT /images/{gnID} Update an existing image. #
DELETE /images/{gnID} Delete an image using its gnID. #
POST /movies Create a movie root. #
GET /movies/{gnID} Query for a movie's root with the provided gnID. #
PUT /movies/{gnID} Update a movie root identified by the provided gnID. #
DELETE /movies/{gnID} Delete a movie's root with the provided gnID. #
POST /movies/{rootGnID}/versions Create a movie version under a movie root given the root's gnID. #
GET /movies/versions Query for movie versions which match the provided search criteria. #
GET /movies/versions/{gnID} Query for a version of a movie with the provided gnID. #
PUT /movies/versions/{gnID} Update a movie version identified by the provided gnID. #
DELETE /movies/versions/{gnID} Delete a movie's version with the provided gnID. #
POST /movies/versions/{versionGnID}/presentations Create a movie presentation under a movie version given the version's gnID. #
PATCH /movies/versions/presentationRelationships Map movie presentations to versions. #
DELETE /movies/versions/presentationRelationships/{gnID} Delete version mapping from a movie presentation. #
GET /movies/versions/presentations Query for movie presentations associated with the provided filter criteria. #
POST /movies/versions/presentations Create a new movie presentation without a movie version. #
GET /movies/versions/presentations/{gnID} Query for a movie presentation with the provided gnID. #
PUT /movies/versions/presentations/{gnID} Update a movie presentation identified by the provided gnID. #
DELETE /movies/versions/presentations/{gnID} Delete a presentation of a movie with the provided gnID. #
GET /programImages Search for program-image mappings. #
POST /programImages Map an image to a presentation (movie, show, season or episode) using their gnIDs. #
PATCH /programImages Delete a mapping between an image and a presentation (movie, show, season or episode) using their gnIDs. #
GET /programSummaries Returns a paginated collection of program summaries in a source's catalog. The query supports optional filtering and sorting. #
GET /publications Retrieve presentations' publish status. #
POST /publish Submit a presentation for publish. #
POST /shows Create a show root. #
GET /shows/{gnID} Query for the root of a show with the provided gnID. #
PUT /shows/{gnID} Update a show root identified by the provided gnID. #
DELETE /shows/{gnID} Delete a show's root with the provided gnID. #
POST /shows/{gnID}/versions Create a show version under a show root given the root's gnID. #
GET /shows/versions Query for show versions which match the provided search criteria. #
GET /shows/versions/{gnID} Query for a show's version with the provided gnID. #
PUT /shows/versions/{gnID} Update a show version identified by the provided gnID. #
DELETE /shows/versions/{gnID} Delete a show's version with the provided gnID. #
POST /shows/versions/{gnID}/presentations Create a show presentation under a show version given the version's gnID. #
PATCH /shows/versions/presentationRelationships Map show presentations to versions. #
DELETE /shows/versions/presentationRelationships/{gnID} Delete version mapping from a show presentation. #
GET /shows/versions/presentations Query for show presentations associated with the provided filter criteria. #
POST /shows/versions/presentations Create a new show presentation without a show version. #
GET /shows/versions/presentations/{gnID} Query for a presentation of a show with the provided gnID. #
PUT /shows/versions/presentations/{gnID} Update a show presentation identified by the provided gnID. #
DELETE /shows/versions/presentations/{gnID} Delete a show's presentation with the provided gnID. #
POST /shows/versions/presentations/{gnID}/seasons Create a season of a show with the provided show presentation gnID. #
GET /shows/versions/presentations/seasons #
GET /shows/versions/presentations/seasons/{gnID} Query for a season of a show with the provided gnID. #
PUT /shows/versions/presentations/seasons/{gnID} Update season identified by the provided season gnID. #
DELETE /shows/versions/presentations/seasons/{gnID} Delete a show's season with the provided gnID. #
POST /shows/versions/presentations/seasons/{gnID}/episodes Create an episode of a show with the provided show season gnID. #
GET /shows/versions/presentations/seasons/episodes Query for episodes of a show with the provided show presentation and/or season gnID. #
GET /shows/versions/presentations/seasons/episodes/{gnID} Query for an episode of a show with the provided gnID. #
PUT /shows/versions/presentations/seasons/episodes/{gnID} Update season identified by the provided season gnID. #
DELETE /shows/versions/presentations/seasons/episodes/{gnID} Delete a show's episode with the provided gnID. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gn-ids-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gracenote-gn-ids-api-openapi.json Raw ↑
{
  "openapi": "3.1.1",
  "info": {
    "title": "GN IDS API v1.9.3",
    "description": "The purpose of this application is to provide an API to create, retrieve, update, delete,\nand publish client programs.",
    "version": "1.9.3"
  },
  "servers": [
    {
      "url": "/proxy/gnids/api/v1"
    }
  ],
  "tags": [
    {
      "name": "movie-root"
    },
    {
      "name": "movie-version"
    },
    {
      "name": "movie-presentation"
    },
    {
      "name": "show-root"
    },
    {
      "name": "show-version"
    },
    {
      "name": "show-presentation"
    },
    {
      "name": "show-season"
    },
    {
      "name": "show-episode"
    },
    {
      "name": "program-summaries"
    },
    {
      "name": "publications"
    },
    {
      "name": "publish"
    },
    {
      "name": "catalog"
    },
    {
      "name": "images"
    },
    {
      "name": "vocabulary"
    },
    {
      "name": "export"
    }
  ],
  "paths": {
    "/bulk/movies/batches": {
      "get": {
        "tags": [
          "bulk"
        ],
        "summary": "Retrieve bulk movie batches.",
        "description": "Retrieves a paginated array of movie batch resources. Supports query parameters for `limit`, `page`, `sortField` (created, updated),\nand `sortDirection` (ASC, DESC) to control result set.",
        "operationId": "queryMovieBatches",
        "parameters": [
          {
            "$ref": "#/components/parameters/apiKeyParam"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Field by which to sort batches by.",
            "schema": {
              "type": "string",
              "default": "updated",
              "enum": [
                "created",
                "updated"
              ]
            }
          },
          {
            "name": "sortDirection",
            "in": "query",
            "description": "Direction by which to sort the search results.",
            "schema": {
              "type": "string",
              "default": "DESC",
              "enum": [
                "ASC",
                "asc",
                "DESC",
                "desc"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "BatchesResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchesResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequestError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "request body must not be empty"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "bad_request"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        400
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "UnauthorizedError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "authentication failed"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "unauthorized"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        401
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "internal server error"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "internal_server_error"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        500
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "bulk"
        ],
        "summary": "Create a new bulk movies batch.",
        "description": "Creates a new movie batch. Accepts a JSON payload adhering to the `MoviePayload` schema for batch creation.",
        "operationId": "createMovieBatch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoviePayload"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "MovieBatchResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovieBatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequestValidationError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "see fields for details."
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "bad_request"
                      ]
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "examples": [
                        {
                          "subType": {
                            "error": "subType is a required field"
                          }
                        }
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        400
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "UnauthorizedError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "authentication failed"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "unauthorized"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        401
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "ForbiddenError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "cannot use title language \"cs\": not entitled"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "forbidden"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        403
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "RequestEntityTooLargeError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "request size exceeds 25MB limit"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "request_entity_too_large"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/bulk/movies/batches"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        413
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "UnprocessableEntityErrorBulkMovies",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "validation errors"
                      ]
                    },
                    "descriptionDetails": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": {
                          "type": "object"
                        }
                      },
                      "examples": [
                        [
                          {
                            "fields": {
                              "title.value": {
                                "error": "title value string exceeds the maximum length of 120"
                              }
                            },
                            "index": "roots[0].versions[0].presentations[0]",
                            "message": "title exceeds max length",
                            "type": "required_field"
                          },
                          {
                            "index": "roots[2].versions[1]",
                            "message": "user is not entitled to language \"fr\"",
                            "type": "entitlement_error"
                          }
                        ]
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "unprocessable_entity"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/bulk/movies/batches"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "81fcfc04-2182-4567-963f-5g0a9a629a15"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        422
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "internal server error"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "internal_server_error"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        500
                      ]
                    }
                  }
                }
              }
            }
          },
          "598": {
            "description": "RequestReadTimeout",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "request read timed out"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "request_read_timeout"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/bulk/movies/batches"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        598
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "x-codegen-request-body-name": "payload",
        "parameters": [
          {
            "$ref": "#/components/parameters/apiKeyParam"
          }
        ]
      }
    },
    "/bulk/movies/batches/{gnID}": {
      "get": {
        "tags": [
          "bulk"
        ],
        "summary": "Search for movie batch using its GnID.",
        "description": "Retrieves a specific movie batch resource identified by its `gnID` path parameter.",
        "operationId": "queryMovieBatch",
        "parameters": [
          {
            "$ref": "#/components/parameters/apiKeyParam"
          },
          {
            "name": "gnID",
            "in": "path",
            "description": "The Gracenote ID of the movie batch to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "MovieBatchResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MovieBatchResponse"
                }
              }
            }
          },
          "401": {
            "description": "UnauthorizedError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "authentication failed"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "unauthorized"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        401
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "NotFoundError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "Meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "\"foo-bar\""
                          ]
                        }
                      }
                    },
                    "code": {
                      "type": "integer",
                      "format": "int64"
                    },
                    "description": {
                      "type": "string"
                    },
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "internal server error"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "internal_server_error"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        500
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/bulk/programs/exports": {
      "get": {
        "tags": [
          "export"
        ],
        "summary": "Returns a paginated collection of exports in a source's catalog.",
        "description": "it provides information for all exports to a source with current export statuses",
        "operationId": "getExports",
        "parameters": [
          {
            "$ref": "#/components/parameters/apiKeyParam"
          },
          {
            "name": "limit",
            "in": "query",
            "required": true,
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Field by which to sort batches by.",
            "schema": {
              "type": "string",
              "default": "updated",
              "enum": [
                "created",
                "updated"
              ]
            }
          },
          {
            "name": "sortDirection",
            "in": "query",
            "description": "Direction by which to sort the search results.",
            "schema": {
              "type": "string",
              "default": "DESC",
              "enum": [
                "ASC",
                "asc",
                "DESC",
                "desc"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "ExportsResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportsResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequestError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "request body must not be empty"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "bad_request"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        400
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "UnauthorizedError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "authentication failed"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "unauthorized"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182-454f-963f-5f0f9a621d72"
                          ]
                        }
                      }
                    },
                    "status": {
                      "type": "integer",
                      "format": "int64",
                      "examples": [
                        401
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "ForbiddenError",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "examples": [
                        "cannot use title language \"cs\": not entitled"
                      ]
                    },
                    "error": {
                      "type": "string",
                      "examples": [
                        "forbidden"
                      ]
                    },
                    "instance": {
                      "type": "string",
                      "examples": [
                        "/api/v1/shows"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "rayID": {
                          "type": "string",
                          "examples": [
                            "52fdfc07-2182

# --- truncated at 32 KB (998 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gracenote/refs/heads/main/openapi/gracenote-gn-ids-api-openapi.json