External providers
Generated directly from the app's provider catalog — the same one that powers matching, Quick Capture, and the Settings credential editors — so it always matches the version you're running. A provider is wired into a type through an externalRef field (and optionally externalFields / external body sections); see External Metadata.
On self-hosted web, credentials come from the listed KIZUNASHELF_* environment variables; on desktop use Settings → Provider Credentials, and on iOS use More → Provider Credentials. Both store credentials in the OS keychain.
| Provider | externalRef id | Search | Episode/track sync | Credentials |
|---|---|---|---|---|
| Bangumi | bangumi | search + resolve | yes | none |
| IGDB | igdb | search + resolve | — | IGDB Client ID, IGDB Client Secret |
| TheTVDB | thetvdb | search + resolve | yes | TheTVDB API Key, TheTVDB PIN (optional) |
| Google Books | googlebooks | search + resolve | — | Google Books API Key |
| Open Library | openlibrary | search + resolve | — | none |
| Apple Podcasts | applepodcast | search + resolve | yes | none |
| Apple Music | applemusic | search + resolve | yes | none |
| Steam | steam | resolve URL/id only | — | none |
| MusicBrainz | musicbrainz | search + resolve | yes | none |
| BoardGameGeek | bgg | search + resolve | — | BGG XML API Token |
| TMDB | tmdb | search + resolve | yes | TMDB API Key |
| Discogs | discogs | search + resolve | yes | Discogs Personal Access Token (optional), Discogs Consumer Key (optional), Discogs Consumer Secret (optional) |
| MyAnimeList | myanimelist | search + resolve | yes | MyAnimeList Client ID |
| MangaUpdates | mangaupdates | search + resolve | — | none |
| Comic Vine | comicvine | search + resolve | yes | Comic Vine API Key |
| Hardcover | hardcover | search + resolve | — | Hardcover API Token |
| NeoDB | neodb | search + resolve | — | none |
| AniList | anilist | search + resolve | yes | none |
Bangumi
externalRef: bangumi — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
1 | Book (1) | |
2 | Anime (2) | |
3 | Music (3) | |
4 | Game (4) | |
6 | Real (6) | |
character | Character | |
person | Person |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
name | Name |
name_cn | Chinese name |
cover_url | Cover URL |
date | Release date |
platform | Platform |
eps | Episodes (declared) |
total_episodes | Episodes (in database) |
volumes | Volumes |
score | Score |
rank | Rank |
language | Language |
publisher | Publisher |
official_site | Official site |
isbn | ISBN |
aliases | Aliases |
director | Director |
author | Author |
genre | Genre |
tags | Tags |
meta_tags | Meta tags |
gender | Gender |
birthday | Birthday |
career | Career |
voice_actors | Voice actors |
summary | Summary |
IGDB
externalRef: igdb — Supports free-text search and resolving a pasted URL/id.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| IGDB Client ID | igdb_client_id | KIZUNASHELF_IGDB_CLIENT_ID | required |
| IGDB Client Secret | igdb_client_secret | KIZUNASHELF_IGDB_CLIENT_SECRET | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
game | Game | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
name | Name |
cover_url | Cover URL |
first_release_date | First release date |
rating | User rating |
aggregated_rating | Critic rating |
total_rating | Total rating |
total_rating_count | Total rating count |
format | Type |
franchise | Franchise |
official_site | Official site |
alternative_names | Alternative names |
genres | Genres |
platforms | Platforms |
themes | Themes |
game_modes | Game modes |
player_perspectives | Player perspectives |
game_engines | Game engines |
developers | Developers |
publishers | Publishers |
summary | Summary |
storyline | Storyline |
TheTVDB
externalRef: thetvdb — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| TheTVDB API Key | tvdb_api_key | KIZUNASHELF_TVDB_API_KEY | required |
| TheTVDB PIN (optional) | tvdb_pin | KIZUNASHELF_TVDB_PIN | optional |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
series | Series | |
movie | Movie |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
name | Name |
cover_url | Cover URL |
first_air_time | First air time |
year | Year |
status | Status |
primary_language | Primary language |
country | Region |
network | Network |
director | Director |
slug | Slug |
imdb_code | IMDb id |
tmdb_id | TheMovieDB id |
genres | Genres |
studios | Studios |
aliases | Aliases |
overview | Overview |
Google Books
externalRef: googlebooks — Supports free-text search and resolving a pasted URL/id.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| Google Books API Key | google_books_api_key | KIZUNASHELF_GOOGLE_BOOKS_API_KEY | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
book | Book | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
subtitle | Subtitle |
publisher | Publisher |
published_date | Published date |
pages | Pages |
isbn | ISBN |
language | Language |
authors | Authors |
categories | Categories |
description | Description |
Open Library
externalRef: openlibrary — Supports free-text search and resolving a pasted URL/id.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
book | Book | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
subtitle | Subtitle |
published_date | Published date |
first_published | First published |
pages | Pages |
isbn | ISBN |
language | Language |
physical_format | Physical format |
description | Description |
authors | Authors |
publishers | Publishers |
Apple Podcasts
externalRef: applepodcast — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
podcast | Podcast | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
host | Host |
feed_url | Feed URL |
genre | Genres |
Apple Music
externalRef: applemusic — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
album | Album | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
release_date | Release date |
track_count | Track count |
artists | Artists |
genre | Genres |
Steam
externalRef: steam — Resolves a pasted URL/id only — free-text search returns nothing.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
game | Game | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
name | Name |
cover_url | Cover URL |
release_date | Release date |
platform | Platform |
developers | Developers |
publishers | Publishers |
genres | Genres |
description | Description |
MusicBrainz
externalRef: musicbrainz — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
release | Release (album) | |
release-group | Release group | |
artist | Artist |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title / Name |
cover_url | Cover URL |
release_date | Release / begin date |
end_date | End date |
country | Region |
barcode | Barcode |
type | Type |
disambiguation | Disambiguation |
official_site | Official site |
artists | Artists |
label | Labels |
genres | Genres |
BoardGameGeek
externalRef: bgg — Supports free-text search and resolving a pasted URL/id.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| BGG XML API Token | bgg_api_token | KIZUNASHELF_BGG_API_TOKEN | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
boardgame | Board game | |
boardgameexpansion | Expansion |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
name | Name |
cover_url | Cover URL |
year | Year published |
platform | Platform |
players | Players |
playtime | Playing time |
min_age | Minimum age |
score | Score |
score_count | Score count |
rank | Rank |
description | Description |
designers | Designers |
artists | Artists |
publishers | Publishers |
developers | Developers |
categories | Categories |
TMDB
externalRef: tmdb — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| TMDB API Key | tmdb_api_key | KIZUNASHELF_TMDB_API_KEY | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
movie | Movie | |
tv | TV | |
person | Person |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title / Name |
cover_url | Cover URL |
original_title | Original title |
year | Year |
release_date | Release / air date |
runtime | Runtime (minutes) |
status | Status |
season_count | Season count |
episode_count | Episode count |
last_air_date | Last air date |
country | Region |
original_language | Original language |
score | Score |
score_count | Score count |
imdb_code | IMDb id |
tvdb_id | TheTVDB id |
wikidata_id | Wikidata id |
official_site | Official site |
birthday | Birthday |
death_date | Death date |
known_for | Known for |
overview | Overview |
genres | Genres |
language | Languages |
studios | Studios |
directors | Directors |
writers | Writers |
producers | Producers |
cast | Cast |
Discogs
externalRef: discogs — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| Discogs Personal Access Token | discogs_token | KIZUNASHELF_DISCOGS_TOKEN | optional |
| Discogs Consumer Key | discogs_consumer_key | KIZUNASHELF_DISCOGS_CONSUMER_KEY | optional |
| Discogs Consumer Secret | discogs_consumer_secret | KIZUNASHELF_DISCOGS_CONSUMER_SECRET | optional |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
release | Release | |
master | Master |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
year | Year |
format | Format |
artists | Artists |
genres | Genres |
styles | Styles |
label | Labels |
company | Companies |
MyAnimeList
externalRef: myanimelist — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| MyAnimeList Client ID | mal_client_id | KIZUNASHELF_MAL_CLIENT_ID | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
anime | Anime | |
manga | Manga |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
format | Type |
start_date | Start date |
end_date | End date |
status | Status |
episodes | Episodes |
chapters | Chapters |
runtime | Runtime (minutes) |
season | Season |
source | Source material |
score | Score |
synopsis | Synopsis |
genres | Genres |
studios | Studios |
MangaUpdates
externalRef: mangaupdates — Supports free-text search and resolving a pasted URL/id.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
manga | Manga | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
format | Type |
year | Year |
status | Status |
latest_chapter | Latest chapter |
score | Score |
synopsis | Synopsis |
authors | Authors |
genres | Genres |
Comic Vine
externalRef: comicvine — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| Comic Vine API Key | comicvine_api_key | KIZUNASHELF_COMICVINE_API_KEY | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
comic | Comic | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
publisher | Publisher |
start_year | Start year |
issues_count | Issue count |
description | Description |
genres | Genres |
people | People |
Hardcover
externalRef: hardcover — Supports free-text search and resolving a pasted URL/id.
| Credential | Key | Env var (web) | Required |
|---|---|---|---|
| Hardcover API Token | hardcover_api_key | KIZUNASHELF_HARDCOVER_API_KEY | required |
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
book | Book | ✓ |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
cover_url | Cover URL |
format | Format |
pages | Pages |
publish_date | Publish date |
publisher | Publisher |
isbn | ISBN |
score | Score |
synopsis | Synopsis |
authors | Authors |
genres | Genres |
NeoDB
externalRef: neodb — Supports free-text search and resolving a pasted URL/id.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
book | Book | |
movie | Movie | |
tv | Tv | |
music | Music | |
game | Game | |
podcast | Podcast | |
performance | Performance |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
original_title | Original title |
cover_url | Cover URL |
description | Description |
rating | Rating |
rating_count | Rating count |
release_date | Release date |
published_date | Published date |
pages | Pages |
isbn | ISBN |
language | Language |
series | Series |
format | Format |
episode_count | Episode count |
season_count | Season count |
season_number | Season number |
official_site | Official site |
opening_date | Opening date |
closing_date | Closing date |
tags | Tags |
authors | Authors |
translators | Translators |
publishers | Publishers |
directors | Directors |
playwrights | Playwrights |
original_creators | Original creators |
composers | Composers |
choreographers | Choreographers |
performers | Performers |
actors | Actors |
crew | Crew |
genres | Genres |
artists | Artists |
developers | Developers |
platforms | Platforms |
hosts | Hosts |
company | Company |
AniList
externalRef: anilist — Supports free-text search and resolving a pasted URL/id. Can pull an episode/track list into an entity's episodes body section.
externalTypes values (defaults marked ✓):
| Value | Meaning | Default |
|---|---|---|
anime | Anime | |
manga | Manga |
Mappable fields (for externalFields and external body sections):
| Field | Meaning |
|---|---|
title | Title |
romaji_title | Romaji title |
native_title | Native title |
cover_url | Cover URL |
format | Type |
start_date | Start date |
end_date | End date |
status | Status |
episodes | Episodes |
chapters | Chapters |
volumes | Volumes |
runtime | Runtime (minutes) |
season | Season |
source | Source material |
score | Score |
synopsis | Synopsis |
genres | Genres |
studios | Studios |