Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.1.1",
"info": {
"title": "Nexus API v1.1.5",
"description": "This is the OpenAPI spec for Gracenote's Nexus API. \n\nNote that data model additions, such as new keys and new values, can occur without a change to the version number.\n\nAPI Guidelines:\nThe Nexus API attempts to be 'self documenting' in that the complete data model is generally returned, so expect to see null fields. When a field comes back as null, it implies that this field isn't supported by the current object whereas an empty string implies that the field is supported, but missing. For example, an unranked tennis player will have \"\" for their 'rank' while the NBA standings will have null for 'matchesDrawn' because the NBA does not allow draws.\n\nThe Nexus API is pre-sorted, so expect that all responses with arrays have been pre-sorted for best practices.\n\nNexus API keys are entitled to different sets of data and functionality - this reflects the features that have been licensed for that key. A 403 return code will be returned when attempting to access features that a key is not entitled for.\n\nNote that among the new experimental endpoints, there will be some that are intended for LLM usage and thus follow some different API philosophies to reduce processing and payload size - such as forgoing the _meta_ and _data_ sections and omitting empty fields.\n\n[About Nexus Auto](https://gracenote.com/products/nexus-auto/)\n",
"contact": {
"email": "nexusengineering@nielsen.com"
},
"version": "v1.1.5"
},
"servers": [
{
"url": "/proxy/nexus/v1"
}
],
"tags": [
{
"name": "Collections",
"description": "API endpoints related to curated content collections."
},
{
"name": "Video",
"description": "API endpoints related to video program content."
},
{
"name": "Music",
"description": "API endpoints related to music content."
},
{
"name": "Podcasts",
"description": "API endpoints related to podcast metadata."
},
{
"name": "Search",
"description": "API endpoints related to content search."
},
{
"name": "RadioStations",
"description": "API endpoints related to radio station metadata."
},
{
"name": "Sports",
"description": "API endpoints related to sports content."
},
{
"name": "Settings",
"description": "API endpoints related to configuration."
},
{
"name": "Experimental",
"description": "API endpoints related to forthcoming features."
},
{
"name": "Deprecated",
"description": "API endpoints to be removed in a future release."
}
],
"paths": {
"/programbundles": {
"get": {
"tags": [
"Deprecated"
],
"description": "__Deprecated. Use the /collections endpoint with VIDEOPROGRAMS as the item type instead.__",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/omitCatalogsParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/programBundles": {
"get": {
"tags": [
"Deprecated"
],
"description": "__Deprecated. Use the /collections endpoint with VIDEOPROGRAMS as the item type instead.__",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/omitCatalogsParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/programs/{programID}": {
"get": {
"tags": [
"Video"
],
"description": "Fetch details of a specific program identified by the programID. The content will be filtered based on apiKey's entitled streaming catalogs and optional parameter `omitCatalogIDs`.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "programID",
"in": "path",
"description": "The unique identifier of the program.",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/omitCatalogsParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramsResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/catalogs": {
"get": {
"tags": [
"Settings"
],
"description": "Fetch a list of entitled music and video streaming catalogs for the specified contentMarket. The list will be filtered based on apiKey's entitled streaming catalogs.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StreamingCatalogsResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of leagues for the specified contentMarket. The list will be filtered based on apiKey's entitlement and optional parameter `topOnly`.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/topParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LeaguesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch details of a specific league identified by the leagueID. The league object indicates whether it includes standings, rankings, phases and matches.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LeaguesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/standings": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of standings identified by the leagueID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StandingsResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/rankings": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of rankings identified by the leagueID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RankingsResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/matches": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of matches identified by the leagueID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/statusParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MatchesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/conferences/{conferenceID}/matches": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of matches for the given league conference, for example, if you want to only get back matches for the NCAA Atlantic 10 Conference.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "conferenceID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/statusParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MatchesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/divisions/{divisionID}/matches": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of matches for the given division, for example, if you want to only get back matches for the MLB AL East Division.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "divisionID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/statusParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MatchesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/overalls/{overallID}/matches": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of matches for the given overall. Many rankings and some standings have overallIDs and this allows the developer to fetch only matches featuring top ranked participants. For example, if you want to only get back matches for the top 25 WNCAAB teams, use the overallID that comes back with the WNCAAB rankings response.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "overallID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/statusParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MatchesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/leagues/{leagueID}/phases": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of phases identified by the leagueID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "leagueID",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/statusParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhasesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/phases/{phaseID}": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch details of a specific phase identified by the phaseID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "phaseID",
"in": "path",
"description": "The unique identifier of the phase.",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhasesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/matches/{matchID}": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch the details of a specific match identified by the matchID. Please note that fetching match with status CURRENT up to every 5 seconds for updated information is recommended.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "matchID",
"in": "path",
"required": true,
"description": "The unique identifier of the match.",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MatchesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/teams/{teamID}": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch the details of a specific team identified by the teamID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "teamID",
"in": "path",
"required": true,
"description": "The unique identifier of the team.",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/languageParam"
},
{
"$ref": "#/components/parameters/contentMarketParam"
},
{
"$ref": "#/components/parameters/encodingParam"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TeamsResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/errorResponse400"
},
"401": {
"$ref": "#/components/responses/errorResponse401"
},
"403": {
"$ref": "#/components/responses/errorResponse403"
},
"404": {
"$ref": "#/components/responses/errorResponse404"
},
"429": {
"$ref": "#/components/responses/errorResponse429"
},
"4XX": {
"$ref": "#/components/responses/errorResponse4XX"
},
"5XX": {
"$ref": "#/components/responses/errorResponse5XX"
}
}
}
},
"/teams/{teamID}/matches": {
"get": {
"tags": [
"Sports"
],
"description": "Fetch a list of matches identified by the teamID.",
"parameters": [
{
"$ref": "#/components/parameters/apiKeyParam"
},
{
"name": "teamID",
"in": "path",
"required": true,
"description": "The unique identifier of the team.",
"schema":
# --- truncated at 32 KB (179 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gracenote/refs/heads/main/openapi/gracenote-nexus-api-openapi.json