Every API here is available over the APIs.io API and to AI agents over MCP.
{
"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