Entdecken
33 Adressen. Ohne Zusage — sie gehören zum Innenteil der Anwendung und können sich mit jeder Fassung ändern. Wer sich auf etwas verlassen muss, nimmt die zugesagten dreizehn.
GET
/api/arr/{media_type}/options
may change
Quality profiles and target folders
For the choice shown before adding something. Profiles blocked for this account are not returned at all, rather than being offered and refused later.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichttierstandard | uhd queryAntwort
quality_profilesListe von ArrOption Pflichtroot_foldersListe von ArrRootFolder Pflichtdefault_quality_profile_idZahl oder nulldefault_root_folderText oder nullroot_folder_choiceja/neinquality_profile_choiceja/neinAufbau der Antwort
{
"quality_profiles": [
{
"id": "number",
"name": "string"
}
],
"root_folders": [
{
"path": "string",
"free_space": "number | null"
}
],
"default_quality_profile_id": "number | null",
"default_root_folder": "string | null",
"root_folder_choice": "boolean",
"quality_profile_choice": "boolean"
}
GET
/api/browse/{media_type}
may change
Everything under a keyword or studio
All titles for one keyword or one studio, paged.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichtkeyword_idZahl oder null querycompany_idZahl oder null querypageZahl queryAntwort
labelText PflichtpageMediaPage PflichtAufbau der Antwort
{
"label": "string",
"page": {
"page": "number",
"total_pages": "number",
"total_results": "number",
"items": [
{}
],
"demo": "boolean",
"arr_warning": "string | null"
}
}
GET
/api/calendar
may change
What arrives when
What appears in the given period - your own holdings and new releases. There is deliberately no region parameter: the region comes from the profile, so a calendar cannot show dates for a country the viewer does not live in.
Felder und Aufbau
Parameter
date_fromText oder null querydate_toText oder null querysourcesall | mine | new querydate_typedigital | kino querynoisesinnvoll | studios | known | none queryAntwort
date_fromText Pflichtdate_toText PflichtdaysListe von CalendarDayarr_warningText oder nulltmdb_warningText oder nulldemoja/neinAufbau der Antwort
{
"date_from": "string",
"date_to": "string",
"days": [
{
"date": "string",
"entries": [
{}
]
}
],
"arr_warning": "string | null",
"tmdb_warning": "string | null",
"demo": "boolean"
}
GET
/api/detail/tv/{tmdb_id}/season/{season_number}
may change
Episodes of one season
The episodes of a season, including which of them are already here.
Felder und Aufbau
Parameter
tmdb_idZahl path Pflichtseason_numberZahl path PflichtAntwort
season_numberZahl PflichtnameText PflichtoverviewTextair_dateText oder nullepisodesListe von EpisodeInfoAufbau der Antwort
{
"season_number": "number",
"name": "string",
"overview": "string",
"air_date": "string | null",
"episodes": [
{
"episode_number": "number",
"name": "string",
"overview": "string",
"air_date": "string | null",
"runtime_minutes": "number | null",
"still_url": "string | null",
"vote_average": "number",
"available": "boolean"
}
]
}
GET
/api/detail/{media_type}/{tmdb_id}
may change
Everything about one title
Cast, studios, keywords and recommendations, plus whether it is already in the library.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichttmdb_idZahl path PflichtAntwort
media_typemovie | tv Pflichttmdb_idZahl Pflichttvdb_idZahl oder nulltitleText Pflichtoriginal_titleText oder nulloverviewTextposter_urlText oder nullbackdrop_urlText oder nullrelease_dateText oder nullvote_averageZahlvote_countZahlgenresListe von Textruntime_minutesZahl oder nullcertificationText oder nulloriginal_languageText oder nullorigin_countryListe von TextseasonsListe von SeasonInfostatusTextstatus_uhdText oder nullwatchedja/neinwatched_onListe von Textwatched_not_onListe von TextpathText oder nullpath_uhdText oder nulluhd_in_standardja/neintaglineTexthomepageText oder nullstatus_textTextoriginal_countryListe von Textspoken_languagesListe von TextbudgetZahl oder nullrevenueZahl oder nullstudiosListe von NamedRefkeywordsListe von NamedReftrailerTrailer oder nullwatchWatchProviders oder nullin_my_subscriptionsListe von Textwatchingja/neinrequested_by_meja/neinmy_feedbackMeineRueckmeldung oder nullopen_ticketja/neincastListe von CastMembercrewListe von CrewMemberrecommendationsListe von MediaItemseasons_totalZahl oder nullepisodes_totalZahl oder nullseries_statusTextnetworksListe von NamedRefAufbau der Antwort
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
GET
/api/detail/{media_type}/{tmdb_id}/recommendations
may change
A different set of recommendations
For the "show me others" button. The pool is fixed and always sorted the same way; runde only cuts a different slice out of it, so the button cannot loop.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichttmdb_idZahl path PflichtrundeZahl queryAntwort
itemsListe von MediaItem PflichtrundeZahl PflichtrundenZahl PflichtAufbau der Antwort
{
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"runde": "number",
"runden": "number"
}
GET
/api/discover/{media_type}
may change
Discover titles
Browsable lists of movies or shows with the usual filters - genre, year, rating, provider.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichtdate_fromText oder null querydate_toText oder null querylanguageText oder null queryregionText oder null querygenre_idZahl oder null querysortnewest | rating | popular querypageZahl queryfeature_lengthja/nein querymin_ratingZahl oder null queryhide_unratedja/nein queryreleased_in_regionja/nein querystudio_idZahl oder null queryknown_onlyja/nein queryAntwort
pageZahl Pflichttotal_pagesZahl Pflichttotal_resultsZahl PflichtitemsListe von MediaItem Pflichtdemoja/neinarr_warningText oder nullAufbau der Antwort
{
"page": "number",
"total_pages": "number",
"total_results": "number",
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"demo": "boolean",
"arr_warning": "string | null"
}
GET
/api/favorites
may change
Your own marked titles
Filtered by the age limit of the calling account. The filtering is necessary because title and image come from Nexview's own table here, not from TMDB, and would otherwise bypass the check.
Felder und Aufbau
Antwort
media_typemovie | tv Pflichttmdb_idZahl PflichttitleText Pflichtposter_urlText oder null Pflichtcreated_atZeitpunkt (ISO 8601) PflichtAufbau der Antwort
[
{
"media_type": "movie | tv",
"tmdb_id": "number",
"title": "string",
"poster_url": "string | null",
"created_at": "ISO 8601"
}
]
POST
/api/favorites
may change
Mark a title
Marking something twice is not an error.
Felder und Aufbau
Anfragekörper
media_typemovie | tv Pflichttmdb_idZahl PflichttitleTextposter_urlText oder nullAntwort
media_typemovie | tv Pflichttmdb_idZahl PflichttitleText Pflichtposter_urlText oder null Pflichtcreated_atZeitpunkt (ISO 8601) PflichtAufbau der Antwort
{
"media_type": "movie | tv",
"tmdb_id": "number",
"title": "string",
"poster_url": "string | null",
"created_at": "ISO 8601"
}
GET
/api/favorites/people
may change
Your own marked people
Newest first.
Felder und Aufbau
Antwort
person_idZahl PflichtnameText Pflichtphoto_urlText oder null PflichtdepartmentText Pflichtcreated_atZeitpunkt (ISO 8601) PflichtAufbau der Antwort
[
{
"person_id": "number",
"name": "string",
"photo_url": "string | null",
"department": "string",
"created_at": "ISO 8601"
}
]
POST
/api/favorites/people
may change
Mark a person
Doing it twice is not an error.
Felder und Aufbau
Anfragekörper
person_idZahl PflichtnameTextphoto_urlText oder nulldepartmentTextAntwort
person_idZahl PflichtnameText Pflichtphoto_urlText oder null PflichtdepartmentText Pflichtcreated_atZeitpunkt (ISO 8601) PflichtAufbau der Antwort
{
"person_id": "number",
"name": "string",
"photo_url": "string | null",
"department": "string",
"created_at": "ISO 8601"
}
DELETE
/api/favorites/people/{person_id}
may change
Unmark a person
Removes the person from your favourites.
Felder und Aufbau
Parameter
person_idZahl path Pflicht
DELETE
/api/favorites/{media_type}/{tmdb_id}
may change
Unmark a title
What was not marked stays unmarked - no error.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichttmdb_idZahl path Pflicht
GET
/api/genres/{media_type}
may change
Available genres
The genres TMDB knows for this media type, in the language of the calling account.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtAntwort
idZahl PflichtnameText PflichtAufbau der Antwort
[
{
"id": "number",
"name": "string"
}
]
GET
/api/home/curated
may change
Recommendations based on your favourites
Only what is not already here. Movies and shows - the first version looked at movies only, which left anyone who marks only shows with an empty row.
Felder und Aufbau
Antwort
has_favoritesja/nein PflichtitemsListe von MediaItem PflichtAufbau der Antwort
{
"has_favorites": "boolean",
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
]
}
GET
/api/home/recent
may change
Recently arrived
Titles that finished downloading, visible to everyone. ⚠️ Each entry also names who requested it. That is wanted inside a household and may not be wanted on a wall-mounted screen. Plot and backdrop come from TMDB; if that fails, the entries stay but look plainer.
Felder und Aufbau
Antwort
request_idZahl Pflichtmedia_typemovie | tv Pflichttmdb_idZahl PflichttitleText PflichtoverviewTextposter_urlText oder nullbackdrop_urlText oder nullrelease_dateText oder nullvote_averageZahlruntime_minutesZahl oder nullgenresListe von Textcompleted_atZeitpunkt (ISO 8601) oder nullrequested_byText Pflichtrequester_avatarText oder nullseasonsListe von ZahlAufbau der Antwort
[
{
"request_id": "number",
"media_type": "movie | tv",
"tmdb_id": "number",
"title": "string",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"runtime_minutes": "number | null",
"genres": [
"string"
],
"completed_at": "ISO 8601 | null",
"requested_by": "string",
"requester_avatar": "string | null"
}
]
GET
/api/home/trending
may change
What is popular right now
Without the things that are already here. Deliberately filtered: a suggestion you can neither request nor want, because it is already downloaded, is not a suggestion.
Felder und Aufbau
Antwort
media_typemovie | tv Pflichttmdb_idZahl Pflichttvdb_idZahl oder nulltitleText Pflichtoriginal_titleText oder nulloverviewTextposter_urlText oder nullbackdrop_urlText oder nullrelease_dateText oder nullvote_averageZahlvote_countZahlgenresListe von Textruntime_minutesZahl oder nullcertificationText oder nulloriginal_languageText oder nullorigin_countryListe von TextseasonsListe von SeasonInfostatusTextstatus_uhdText oder nullwatchedja/neinwatched_onListe von Textwatched_not_onListe von TextpathText oder nullpath_uhdText oder nulluhd_in_standardja/neinAufbau der Antwort
[
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
]
GET
/api/media/{media_type}/{tmdb_id}
may change
Details for one title
Overview, cast, ratings, runtime, and whether it is already in the library.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichttmdb_idZahl path PflichtAntwort
media_typemovie | tv Pflichttmdb_idZahl Pflichttvdb_idZahl oder nulltitleText Pflichtoriginal_titleText oder nulloverviewTextposter_urlText oder nullbackdrop_urlText oder nullrelease_dateText oder nullvote_averageZahlvote_countZahlgenresListe von Textruntime_minutesZahl oder nullcertificationText oder nulloriginal_languageText oder nullorigin_countryListe von TextseasonsListe von SeasonInfostatusTextstatus_uhdText oder nullwatchedja/neinwatched_onListe von Textwatched_not_onListe von TextpathText oder nullpath_uhdText oder nulluhd_in_standardja/neinAufbau der Antwort
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
GET
/api/people
may change
People to browse and search
Filtered by department, paged. Without q, the most-asked-about people of that department.
Felder und Aufbau
Parameter
qText querydepartmentacting | directing | writing querypageZahl queryAntwort
itemsListe von PersonSummary Pflichthas_moreja/nein PflichtAufbau der Antwort
{
"items": [
{
"person_id": "number",
"name": "string",
"photo_url": "string | null",
"department": "string",
"known_for": "string"
}
],
"has_more": "boolean"
}
GET
/api/person/{person_id}
may change
One person
Photo, biography and their best-known titles.
Felder und Aufbau
Parameter
person_idZahl path PflichtAntwort
person_idZahl PflichtnameText PflichtbiographyTextphoto_urlText oder nullbirthdayText oder nulldeathdayText oder nullplace_of_birthText oder nullknown_for_departmentTextcreditsListe von PersonCreditAufbau der Antwort
{
"person_id": "number",
"name": "string",
"biography": "string",
"photo_url": "string | null",
"birthday": "string | null",
"deathday": "string | null",
"place_of_birth": "string | null",
"known_for_department": "string",
"credits": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"kind": "string",
"title": "string",
"character": "string",
"poster_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"status": "string",
"watched": "boolean",
"status_uhd": "string | null",
"watched_on": [
"string"
],
"watched_not_on": [
"string"
]
}
]
}
GET
/api/ratings/movie
may change
Ratings for several movies at once
Deliberately its own call rather than part of the lists: the values come from Radarr, and twenty round trips would slow a page down for something nobody looks at first.
Felder und Aufbau
Parameter
idsText query Pflicht
GET
/api/search/{media_type}
may change
Search movies or shows
Finds titles by name. Results are paged and come from TMDB in the language of the calling account.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtqText query PflichtpageZahl queryAntwort
pageZahl Pflichttotal_pagesZahl Pflichttotal_resultsZahl PflichtitemsListe von MediaItem Pflichtdemoja/neinarr_warningText oder nullAufbau der Antwort
{
"page": "number",
"total_pages": "number",
"total_results": "number",
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"demo": "boolean",
"arr_warning": "string | null"
}
POST
/api/stoebern/filmabend/ergebnis/{media_type}
may change
Turn the answers into a shortlist
runde is the "roll again": the same answers in the same round always give the same stack, so going back and forth does not reshuffle what somebody was about to pick.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtAnfragekörper
antwortenObjekt PflichtrundeZahlAntwort
itemsListe von MediaItem PflichtrundeZahl PflichtantwortenObjekt Pflichtquelle_leerja/neinerschoepftja/neindemoja/neinAufbau der Antwort
{
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"runde": "number",
"antworten": "object",
"quelle_leer": "boolean",
"erschoepft": "boolean",
"demo": "boolean"
}
GET
/api/stoebern/filmabend/fragen/{media_type}
may change
The whole question tree
Tailored to this person and delivered at once. The interface walks it itself - a round trip per question would be too slow for something meant to feel like a conversation.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtAntwort
kennungText PflichtantwortenListe von Text Pflichtentfaellt_wennObjekt Pflichtantworten_entfallen_wennObjektAufbau der Antwort
[
{
"kennung": "string",
"antworten": [
"string"
],
"entfaellt_wenn": "object",
"antworten_entfallen_wenn": "object"
}
]
GET
/api/stoebern/filter/{media_type}
may change
Filter in plain questions
Six human questions instead of thirteen sliders. Deliberately not bolted onto discover: that page stays as it is.
Felder und Aufbau
Parameter
media_typemovie | tv path Pflichtzeitegal | kurz | mittel | lang querygenresText oder null queryohne_genresText oder null queryepocheText querybekanntheitegal | bekannt | geheimtipp querysortierungrating | popular | newest querybestandegal | nur_vorhanden | nur_neu querypageZahl queryanzahlZahl queryAntwort
itemsListe von MediaItem PflichtpageZahl Pflichttotal_pagesZahl Pflichtseiten_durchsuchtZahl Pflichterschoepftja/nein PflichtjahrzehnteListe von Zahldemoja/neinarr_warningText oder nullAufbau der Antwort
{
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"page": "number",
"total_pages": "number",
"seiten_durchsucht": "number",
"erschoepft": "boolean",
"jahrzehnte": [
"number"
],
"demo": "boolean",
"arr_warning": "string | null"
}
GET
/api/stoebern/regal/{media_type}/{kennung}
may change
The contents of one shelf
bestand filters by what is already here on the server. The discover page filters in the browser first, which on a full library leaves visible gaps in the grid.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtkennungText path PflichtpageZahl querybestandegal | nur_vorhanden | nur_neu queryanzahlZahl queryAntwort
kennungText PflichtitemsListe von MediaItem PflichtpageZahl Pflichttotal_pagesZahl Pflichtseiten_durchsuchtZahl Pflichterschoepftja/nein Pflichtdemoja/neinarr_warningText oder nullAufbau der Antwort
{
"kennung": "string",
"items": [
{
"media_type": "movie | tv",
"tmdb_id": "number",
"tvdb_id": "number | null",
"title": "string",
"original_title": "string | null",
"overview": "string",
"poster_url": "string | null",
"backdrop_url": "string | null",
"release_date": "string | null",
"vote_average": "number",
"vote_count": "number",
"genres": [
"string"
],
"runtime_minutes": "number | null",
"certification": "string | null"
}
],
"page": "number",
"total_pages": "number",
"seiten_durchsucht": "number",
"erschoepft": "boolean",
"demo": "boolean",
"arr_warning": "string | null"
}
GET
/api/stoebern/regale/{media_type}
may change
Which shelves exist
Without a single TMDB call. The titles inside are fetched per shelf afterwards, so the overview appears immediately instead of waiting on a dozen lookups.
Felder und Aufbau
Parameter
media_typemovie | tv path PflichtAntwort
kennungText PflichtgruppeText PflichtkategorieText Pflichtpersoenlichja/nein PflichttitelText oder nullAufbau der Antwort
[
{
"kennung": "string",
"gruppe": "string",
"kategorie": "string",
"persoenlich": "boolean",
"titel": "string | null"
}
]
GET
/api/streaming
may change
Streaming providers
The catalogue for the region, the account's own selection, and where that region came from.
Felder und Aufbau
Antwort
regionText Pflichtregion_selbst_gewaehltja/nein PflichtdiensteListe von DienstOut PflichtmeineListe von Text PflichtAufbau der Antwort
{
"region": "string",
"region_selbst_gewaehlt": "boolean",
"dienste": [
{
"slug": "string",
"name": "string",
"logo_url": "string | null"
}
],
"meine": [
"string"
]
}
PUT
/api/streaming
may change
Replace your provider selection
Replaces the whole selection rather than changing one entry. One tick more or less is the same operation as "deselect everything".
Felder und Aufbau
Anfragekörper
slugsListe von TextAntwort
regionText Pflichtregion_selbst_gewaehltja/nein PflichtdiensteListe von DienstOut PflichtmeineListe von Text PflichtAufbau der Antwort
{
"region": "string",
"region_selbst_gewaehlt": "boolean",
"dienste": [
{
"slug": "string",
"name": "string",
"logo_url": "string | null"
}
],
"meine": [
"string"
]
}
GET
/api/studios
may change
Known movie studios
A pick list of well-known studios. Only meaningful for movies.
Felder und Aufbau
Antwort
idZahl PflichtnameText PflichtAufbau der Antwort
[
{
"id": "number",
"name": "string"
}
]
GET
/api/watch
may change
What you are waiting for
Titles marked as "tell me when this arrives".
Felder und Aufbau
Antwort
media_typeText Pflichttmdb_idZahl PflichttitleText Pflichtposter_urlText oder null Pflichtcreated_atText PflichtAufbau der Antwort
[
{
"media_type": "string",
"tmdb_id": "number",
"title": "string",
"poster_url": "string | null",
"created_at": "string"
}
]
DELETE
/api/watch/{media_type}/{tmdb_id}
may change
Stop waiting for a title
No 404 if nothing was marked: the goal is "stop telling me about this", and that is satisfied either way.
Felder und Aufbau
Parameter
media_typeText path Pflichttmdb_idZahl path PflichtAntwort
watchingja/nein PflichtAufbau der Antwort
{
"watching": "boolean"
}
PUT
/api/watch/{media_type}/{tmdb_id}
may change
Wait for a title
Clicking twice is a double click, not an error. Deliberately PUT and not POST: the call describes a state, not an event.
Felder und Aufbau
Parameter
media_typeText path Pflichttmdb_idZahl path PflichtAnfragekörper
titleTextposter_urlText oder nullAntwort
watchingja/nein PflichtAufbau der Antwort
{
"watching": "boolean"
}