{"openapi":"3.1.0","info":{"title":"Fanart TV (BYOK) API","version":"0.1.0","description":"Fanart TV (BYOK) lets an AI assistant read your own Fanart TV data through the Fanart TV API with a key you supply (fanart.tv project API key). Read-only: 8 tools (get_movie_images, list_latest_movie_images, get_tv_show_images, list_latest_tv_show_images, get_artist_images, get_album_images, get_label_images, list_latest_artist_images). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-fanarttv.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-fanarttv/docs"},"termsOfService":"https://connectorbay.com/byok-fanarttv/terms"},"servers":[{"url":"https://byok-fanarttv.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-fanarttv/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_movie_images":{"post":{"operationId":"get_movie_images","summary":"Get all artwork links for a movie (posters, HD logos, clear art, backgrounds, banners, thumbs, disc art) with language a","description":"Get all artwork links for a movie (posters, HD logos, clear art, backgrounds, banners, thumbs, disc art) with language and like counts. Use for \"Show me the poster and logo artwork for The Lord of the Rings: The Fellowship of the Ring\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"TMDB numeric ID or IMDb ID (tt...) of the movie, for example 120 or tt0120737.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_movie_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_latest_movie_images":{"post":{"operationId":"list_latest_movie_images","summary":"List movies that recently received new artwork, with how many images were added and the total. Use for \"Which movies got","description":"List movies that recently received new artwork, with how many images were added and the total. Use for \"Which movies got new artwork recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Unix timestamp (seconds); only items with images added after it. Leave empty for the most recent batch.","title":"Since"}},"title":"list_latest_movie_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tv_show_images":{"post":{"operationId":"get_tv_show_images","summary":"Get all artwork links for a TV show (posters, logos, clear art, backgrounds, banners, thumbs, season art). Use for \"Show","description":"Get all artwork links for a TV show (posters, logos, clear art, backgrounds, banners, thumbs, season art). Use for \"Show me the artwork for the TV show Bones\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"TheTVDB numeric ID of the show, for example 75682.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_tv_show_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_latest_tv_show_images":{"post":{"operationId":"list_latest_tv_show_images","summary":"List TV shows that recently received new artwork, with how many images were added and the total. Use for \"Which TV shows","description":"List TV shows that recently received new artwork, with how many images were added and the total. Use for \"Which TV shows got new artwork recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Unix timestamp (seconds); only items with images added after it. Leave empty for the most recent batch.","title":"Since"}},"title":"list_latest_tv_show_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_artist_images":{"post":{"operationId":"get_artist_images","summary":"Get artwork links for a music artist (backgrounds, thumbs, logos, banners) and the album covers fanart.tv holds for them","description":"Get artwork links for a music artist (backgrounds, thumbs, logos, banners) and the album covers fanart.tv holds for them. Use for \"Show me the artwork for the band Evanescence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"MusicBrainz artist ID (UUID), for example f4a31f0a-51dd-4fa7-986d-3095c40c5ed9.","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_artist_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_album_images":{"post":{"operationId":"get_album_images","summary":"Get cover and disc artwork links for an album, by MusicBrainz release-group ID. Use for \"Show me the cover art for the a","description":"Get cover and disc artwork links for an album, by MusicBrainz release-group ID. Use for \"Show me the cover art for the album with MusicBrainz release group 9ba659df-5814-32f6-b95f-02b738698e7c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"MusicBrainz release-group ID (UUID) of the album.","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_album_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_label_images":{"post":{"operationId":"get_label_images","summary":"Get logo artwork links for a record label, by MusicBrainz label ID. Use for \"Show me the logo of the record label Profil","description":"Get logo artwork links for a record label, by MusicBrainz label ID. Use for \"Show me the logo of the record label Profile Records\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"MusicBrainz label ID (UUID).","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_label_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_latest_artist_images":{"post":{"operationId":"list_latest_artist_images","summary":"List music artists that recently received new artwork, with how many images were added and the total. Use for \"Which art","description":"List music artists that recently received new artwork, with how many images were added and the total. Use for \"Which artists got new artwork recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Unix timestamp (seconds); only items with images added after it. Leave empty for the most recent batch.","title":"Since"}},"title":"list_latest_artist_imagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}