Zum Inhalt springen
Bereich

Konten

94 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 neunzehn.

94 Adressen

POST /api/auth/login may change

Sign in

Exchanges username or e-mail and password for an access token. The refresh token comes back as an HttpOnly cookie rather than in the body, so no script in the page can read it. Repeated failures slow the endpoint down deliberately.

Felder und Aufbau

Anfragekörper

FeldArt
usernameText Pflicht
passwordText Pflicht

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number"
}

POST /api/auth/logout may change

Sign out of this browser

Ends the session of this browser on the server and clears the cookie. Afterwards no token of that session works any more - neither a copy of the cookie taken earlier nor the access token still in use. Without an authentication check, on purpose: anyone who wants to sign out should be able to, even if their access token expired long ago; only the session whose token comes with the request is ended. Other devices stay signed in - to end them all, see the sign-out-everywhere endpoint.

GET /api/auth/me may change

Your own account

Everything the calling account knows about itself: name, role, language, theme, quota settings and linked media-server accounts.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

PATCH /api/auth/me may change

Change your own account

Display name, language, region, theme and notification preferences. The username is not among them: it appears in requests, approvals and the Radarr/Sonarr labels, and changing it afterwards would tear those traces apart.

Felder und Aufbau

Anfragekörper

FeldArt
display_nameText oder null
languageText oder null
themeText oder null
mail_download_completeja/nein oder null
mail_request_pendingja/nein oder null
mail_request_decidedja/nein oder null
mail_feedbackja/nein oder null
mail_ticketja/nein oder null
mail_watchja/nein oder null
mail_user_importedja/nein oder null
mail_mediaserver_reconnectja/nein oder null
mail_storageja/nein oder null
mail_child_wishja/nein oder null
mail_cleanupja/nein oder null
push_download_completeja/nein oder null
push_request_pendingja/nein oder null
push_request_decidedja/nein oder null
push_feedbackja/nein oder null
push_ticketja/nein oder null
push_watchja/nein oder null
push_user_importedja/nein oder null
push_mediaserver_reconnectja/nein oder null
push_storageja/nein oder null
push_child_wishja/nein oder null
discover_regionText oder null

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

DELETE /api/auth/me/avatar may change

Remove your profile picture

Deletes the picture file and falls back to the generated initials.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

POST /api/auth/me/avatar may change

Upload a profile picture

Accepts PNG, JPEG, GIF and WebP. The image is scaled down and re-encoded on the server, so what ends up stored is not the file that was sent.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

PUT /api/auth/me/email may change

Change your own e-mail address

The new address only counts as confirmed once the link in the mail has been clicked - otherwise anyone could enter somebody else's address. Until then the old one stays in force for password resets.

Felder und Aufbau

Anfragekörper

FeldArt
emailText Pflicht

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

POST /api/auth/me/password may change

Change your own password

Changes the password and signs out every other device. Since 0.21 any token older than password_changed_at is refused, so a copy somebody made of your session stops working the moment you change it.

Felder und Aufbau

Anfragekörper

FeldArt
current_passwordText Pflicht
new_passwordText Pflicht

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number"
}

POST /api/auth/me/resend-verification may change

Send the confirmation mail again

Requests a fresh confirmation mail for an address that has not been confirmed yet.

Felder und Aufbau

Antwort

FeldArt
sentja/nein Pflicht
errorText oder null

Aufbau der Antwort

{
  "sent": "boolean",
  "error": "string | null"
}

GET /api/auth/me/schluessel may change

Your own API tokens

Lists the tokens belonging to the calling account - name, preview, whether it may only read, when it expires and when it was last used. Never the token itself; that exists once, at creation.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
nameText Pflicht
vorschauText Pflicht
nur_lesenja/nein Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) oder null Pflicht
last_used_atZeitpunkt (ISO 8601) oder null Pflicht
rueckkanalText oder null
rueckkanal_bereitja/nein

Aufbau der Antwort

[
  {
    "id": "number",
    "name": "string",
    "vorschau": "string",
    "nur_lesen": "boolean",
    "created_at": "ISO 8601",
    "expires_at": "ISO 8601 | null",
    "last_used_at": "ISO 8601 | null",
    "rueckkanal": "string | null",
    "rueckkanal_bereit": "boolean"
  }
]

POST /api/auth/me/schluessel may change

Create an API token

⚠️ The plain text appears in this one response and nowhere else. Afterwards only a checksum remains, and not even an administrator can look it up. A token inherits the rights of the account it belongs to; nur_lesen restricts it to GET requests. Child accounts cannot create tokens.

Felder und Aufbau

Anfragekörper

FeldArt
nameText Pflicht
nur_lesenja/nein
tageZahl oder null

Antwort

FeldArt
idZahl Pflicht
nameText Pflicht
vorschauText Pflicht
nur_lesenja/nein Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) oder null Pflicht
last_used_atZeitpunkt (ISO 8601) oder null Pflicht
rueckkanalText oder null
rueckkanal_bereitja/nein
schluesselText Pflicht

Aufbau der Antwort

{
  "id": "number",
  "name": "string",
  "vorschau": "string",
  "nur_lesen": "boolean",
  "created_at": "ISO 8601",
  "expires_at": "ISO 8601 | null",
  "last_used_at": "ISO 8601 | null",
  "rueckkanal": "string | null",
  "rueckkanal_bereit": "boolean",
  "schluessel": "string"
}

DELETE /api/auth/me/schluessel/{schluessel_id} may change

Revoke one of your tokens

Takes effect immediately - anything using that token is locked out from the next request onwards. You can only revoke your own; an administrator can see foreign tokens but not switch them off.

Felder und Aufbau

Parameter

schluessel_idZahl path Pflicht

DELETE /api/auth/me/schluessel/{schluessel_id}/rueckkanal may change

Stop Nexview calling that integration back

The key stays valid. Only the callback address goes away, so the integration keeps working but has to ask for changes instead of being told about them. Use this when a Home Assistant moved or was reinstalled and its old address no longer answers.

Felder und Aufbau

Parameter

schluessel_idZahl path Pflicht

POST /api/auth/me/ueberall-abmelden may change

Sign out everywhere

Ends every session of this account on every device, including the one making the call, without changing the password. ⚠️ The way out that did not exist before 0.22. Ordinary sign-out only ends the session of this browser; a session on another device, one you no longer have in hand, is only reached from here.

Felder und Aufbau

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number"
}

GET /api/auth/oidc/{slug}/callback may change

Return from a provider set up before 1.1

The redirect address providers knew until Nexview 1.0.1. Entries carried over from then keep it as their own; it leads to the same return.

Felder und Aufbau

Parameter

slugText path Pflicht

POST /api/auth/refresh may change

Renew the access token

The refresh token is read from the HttpOnly cookie, not from the request body. The new pair belongs to the same session, so signing out later ends it together with every earlier copy. Tokens from before 1.0.0 carry no session and are refused; those clients sign in once.

Felder und Aufbau

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number"
}

GET /api/children may change

Your own child accounts

The child profiles belonging to the calling account. Anyone without children gets an empty list. Child accounts are not accounts of their own: they are sub-profiles of a parent, and everything they cause runs against the parent's quota.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
display_nameText oder null Pflicht
ageZahl oder null Pflicht
is_activeja/nein Pflicht
languageText Pflicht
child_trailersja/nein
genresListe von Text Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

[
  {
    "id": "number",
    "username": "string",
    "display_name": "string | null",
    "age": "number | null",
    "is_active": "boolean",
    "language": "string",
    "child_trailers": "boolean",
    "genres": [
      "string"
    ],
    "created_at": "ISO 8601",
    "last_login_at": "ISO 8601 | null"
  }
]

POST /api/children may change

Create a child profile

Needs permission from an administrator first. The child gets its own sign-in and its own set of enabled categories, but no media-server link and no quota of its own.

Felder und Aufbau

Anfragekörper

FeldArt
usernameText Pflicht
passwordText Pflicht
ageZahl Pflicht
display_nameText oder null
genresListe von Text oder null
child_trailersja/nein
languageText oder null

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
display_nameText oder null Pflicht
ageZahl oder null Pflicht
is_activeja/nein Pflicht
languageText Pflicht
child_trailersja/nein
genresListe von Text Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "display_name": "string | null",
  "age": "number | null",
  "is_active": "boolean",
  "language": "string",
  "child_trailers": "boolean",
  "genres": [
    "string"
  ],
  "created_at": "ISO 8601",
  "last_login_at": "ISO 8601 | null"
}

GET /api/children/genres may change

The categories a child can be given

The selectable categories in their fixed order. The interface fetches them here rather than listing them itself - otherwise there would be two lists that drift apart.

POST /api/children/request-permission may change

Ask to be allowed child profiles

A button, not a form: the text is fixed, so nobody has to invent one. Lands as a ticket with the administrators.

GET /api/children/wishes may change

Wishes waiting for your decision

What the children of the calling account have wished for and nobody has decided yet.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
child_idZahl Pflicht
child_nameText Pflicht
media_typeText Pflicht
tmdb_idZahl Pflicht
titleText Pflicht
poster_pathText oder null Pflicht
in_my_subscriptionsListe von Text
release_dateText oder null Pflicht
created_atText Pflicht

Aufbau der Antwort

[
  {
    "id": "number",
    "child_id": "number",
    "child_name": "string",
    "media_type": "string",
    "tmdb_id": "number",
    "title": "string",
    "poster_path": "string | null",
    "in_my_subscriptions": [
      "string"
    ],
    "release_date": "string | null",
    "created_at": "string"
  }
]

POST /api/children/wishes/{wish_id}/decline may change

Turn down a wish

The child is told, and the wish is closed. Nothing is requested.

Felder und Aufbau

Parameter

wish_idZahl path Pflicht

Anfragekörper

FeldArt
noteText oder null

POST /api/children/wishes/{wish_id}/release may change

Turn a wish into a request

The wish becomes a request in the parent's name. The title is fetched from their point of view: it is their request, against their quota and their age settings.

Felder und Aufbau

Parameter

wish_idZahl path Pflicht

Anfragekörper

FeldArt
quality_profile_idZahl oder null
root_folder_pathText oder null
seasonZahl oder null
episodesListe von Zahl oder null
monitor_futureja/nein
fassungText oder null
tierstandard | uhd

Antwort

FeldArt
idZahl Pflicht
media_typemovie | tv Pflicht
fassungText oder null Pflicht
tierstandard | uhd Pflicht
tmdb_idZahl Pflicht
titleText Pflicht
poster_pathText oder null Pflicht
release_dateText oder null Pflicht
statuspending_approval | approved | searching | downloaded | rejected | failed | cancelled | deleted | deferred Pflicht
quality_profile_idZahl oder null Pflicht
quality_profile_uhdja/nein
root_folder_pathText oder null Pflicht
seasonZahl oder null Pflicht
episodesListe von Zahl oder null
from_watchlistja/nein Pflicht
arr_linkedja/nein
requested_atZeitpunkt (ISO 8601) Pflicht
approved_atZeitpunkt (ISO 8601) oder null Pflicht
completed_atZeitpunkt (ISO 8601) oder null Pflicht
approved_by_nameText oder null
last_checked_atZeitpunkt (ISO 8601) oder null
laedt_fortschrittZahl oder null
laedt_seitZeitpunkt (ISO 8601) oder null
rejection_reasonText oder null Pflicht
regel_nameText oder null
darf_trotzdem_fragenja/nein
trotzdem_gefragtja/nein
error_messageText oder null Pflicht
error_detailObjekt oder null
ratingZahl oder null Pflicht
feedbackText oder null Pflicht
rated_atZeitpunkt (ISO 8601) oder null Pflicht
rating_outdatedja/nein
feedback_replyText oder null Pflicht
replied_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

{
  "id": "number",
  "media_type": "movie | tv",
  "fassung": "string | null",
  "tier": "standard | uhd",
  "tmdb_id": "number",
  "title": "string",
  "poster_path": "string | null",
  "release_date": "string | null",
  "status": "pending_approval | approved | searching | downloaded | rejected | failed | cancelled | deleted | deferred",
  "quality_profile_id": "number | null",
  "quality_profile_uhd": "boolean",
  "root_folder_path": "string | null",
  "season": "number | null",
  "episodes": [
    "number"
  ]
}

DELETE /api/children/{child_id} may change

Delete a child profile

Removes the profile and its sign-in. Requests already made in the parent's name are unaffected - they were never the child's.

Felder und Aufbau

Parameter

child_idZahl path Pflicht

PATCH /api/children/{child_id} may change

Change a child profile

Display name, enabled categories and age limit.

Felder und Aufbau

Parameter

child_idZahl path Pflicht

Anfragekörper

FeldArt
display_nameText oder null
ageZahl oder null
is_activeja/nein oder null
genresListe von Text oder null
child_trailersja/nein oder null
languageText oder null

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
display_nameText oder null Pflicht
ageZahl oder null Pflicht
is_activeja/nein Pflicht
languageText Pflicht
child_trailersja/nein
genresListe von Text Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "display_name": "string | null",
  "age": "number | null",
  "is_active": "boolean",
  "language": "string",
  "child_trailers": "boolean",
  "genres": [
    "string"
  ],
  "created_at": "ISO 8601",
  "last_login_at": "ISO 8601 | null"
}

POST /api/children/{child_id}/password may change

Set a child's password

The parent sets it directly. A child has no e-mail address, so there is no reset link to send.

Felder und Aufbau

Parameter

child_idZahl path Pflicht

Anfragekörper

FeldArt
passwordText Pflicht

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
display_nameText oder null Pflicht
ageZahl oder null Pflicht
is_activeja/nein Pflicht
languageText Pflicht
child_trailersja/nein
genresListe von Text Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "display_name": "string | null",
  "age": "number | null",
  "is_active": "boolean",
  "language": "string",
  "child_trailers": "boolean",
  "genres": [
    "string"
  ],
  "created_at": "ISO 8601",
  "last_login_at": "ISO 8601 | null"
}

GET /api/children/{child_id}/preview/backdrops may change

Preview: the child's backdrops

What the child sees behind its start page. Part of the preview, so a parent can check what they have enabled without signing in as the child.

Felder und Aufbau

Parameter

child_idZahl path Pflicht

GET /api/children/{child_id}/preview/categories may change

Preview: the child's start page

The start page exactly as this child would see it - one tile per enabled category.

Felder und Aufbau

Parameter

child_idZahl path Pflicht
media_typeText query

Antwort

FeldArt
rubrikText Pflicht
bilderListe von Text Pflicht

Aufbau der Antwort

[
  {
    "rubrik": "string",
    "bilder": [
      "string"
    ]
  }
]

GET /api/children/{child_id}/preview/rubrik/{rubrik} may change

Preview: one category

Everything in one category, as the child would see it. The category is checked against what this child is allowed.

Felder und Aufbau

Parameter

child_idZahl path Pflicht
rubrikText path Pflicht
media_typeText query
pageZahl query

Antwort

FeldArt
verfuegbarListe von MediaItem Pflicht
wuenschbarListe von MediaItem Pflicht
gewuenschtListe von Zahl

Aufbau der Antwort

{
  "verfuegbar": [
    {
      "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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | null"
    }
  ],
  "wuenschbar": [
    {
      "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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | null"
    }
  ],
  "gewuenscht": [
    "number"
  ]
}

GET /api/children/{child_id}/preview/title/{media_type}/{tmdb_id} may change

Preview: one title

A single title exactly as the child would see it, including the category check.

Felder und Aufbau

Parameter

child_idZahl path Pflicht
media_typeText path Pflicht
tmdb_idZahl path Pflicht

Antwort

FeldArt
media_typemovie | tv Pflicht
tmdb_idZahl Pflicht
tvdb_idZahl oder null
titleText Pflicht
original_titleText oder null
overviewText
poster_urlText oder null
backdrop_urlText oder null
release_dateText oder null
vote_averageZahl
vote_countZahl
genresListe von Text
genre_idsListe von Zahl
runtime_minutesZahl oder null
certificationText oder null
original_languageText oder null
origin_countryListe von Text
seasonsListe von SeasonInfo
statusText
status_uhdText oder null
fassungenListe von FassungAchse
watchedja/nein
watched_onListe von Text
watched_not_onListe von Text
pathText oder null
path_uhdText oder null
uhd_in_standardja/nein
taglineText
homepageText oder null
status_textText
original_countryListe von Text
spoken_languagesListe von Text
budgetZahl oder null
revenueZahl oder null
studiosListe von NamedRef
keywordsListe von NamedRef
trailerTrailer oder null
watchWatchProviders oder null
in_my_subscriptionsListe von Text
watchingja/nein
requested_by_meja/nein
status_unconfirmedja/nein
status_refusedja/nein
my_feedbackMeineRueckmeldung oder null
open_ticketja/nein
castListe von CastMember
crewListe von CrewMember
recommendationsListe von MediaItem
collectionMovieCollection oder null
seasons_totalZahl oder null
episodes_totalZahl oder null
series_statusText
networksListe von NamedRef

Aufbau 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"
  ],
  "genre_ids": [
    "number"
  ],
  "runtime_minutes": "number | null"
}

GET /api/kids/backdrops may change

Backdrops for the start page

Images for the background of the children's view.

GET /api/kids/categories may change

The children's start page

One tile per enabled category. Categories first, titles second - so a child sees what things are about instead of walking into a wall of posters.

Felder und Aufbau

Parameter

media_typemovie | tv query

Antwort

FeldArt
rubrikText Pflicht
bilderListe von Text Pflicht

Aufbau der Antwort

[
  {
    "rubrik": "string",
    "bilder": [
      "string"
    ]
  }
]

GET /api/kids/rubrik/{rubrik} may change

Everything in one category

The whole category at once rather than a sideways-scrolling row. ⚠️ The category is checked: otherwise one that was never enabled could be requested through the address bar.

Felder und Aufbau

Parameter

rubrikText path Pflicht
media_typemovie | tv query
pageZahl query

Antwort

FeldArt
verfuegbarListe von MediaItem Pflicht
wuenschbarListe von MediaItem Pflicht
gewuenschtListe von Zahl Pflicht

Aufbau der Antwort

{
  "verfuegbar": [
    {
      "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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | null"
    }
  ],
  "wuenschbar": [
    {
      "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"
      ],
      "genre_ids": [
        "number"
      ],
      "runtime_minutes": "number | null"
    }
  ],
  "gewuenscht": [
    "number"
  ]
}

GET /api/kids/title/{media_type}/{tmdb_id} may change

One title for a child

A single title with its trailer and nothing else. ⚠️ The category is checked here too, not only when listing: otherwise a blocked title could be reached straight through the address bar.

Felder und Aufbau

Parameter

media_typemovie | tv path Pflicht
tmdb_idZahl path Pflicht

Antwort

FeldArt
media_typemovie | tv Pflicht
tmdb_idZahl Pflicht
tvdb_idZahl oder null
titleText Pflicht
original_titleText oder null
overviewText
poster_urlText oder null
backdrop_urlText oder null
release_dateText oder null
vote_averageZahl
vote_countZahl
genresListe von Text
genre_idsListe von Zahl
runtime_minutesZahl oder null
certificationText oder null
original_languageText oder null
origin_countryListe von Text
seasonsListe von SeasonInfo
statusText
status_uhdText oder null
fassungenListe von FassungAchse
watchedja/nein
watched_onListe von Text
watched_not_onListe von Text
pathText oder null
path_uhdText oder null
uhd_in_standardja/nein
taglineText
homepageText oder null
status_textText
original_countryListe von Text
spoken_languagesListe von Text
budgetZahl oder null
revenueZahl oder null
studiosListe von NamedRef
keywordsListe von NamedRef
trailerTrailer oder null
watchWatchProviders oder null
in_my_subscriptionsListe von Text
watchingja/nein
requested_by_meja/nein
status_unconfirmedja/nein
status_refusedja/nein
my_feedbackMeineRueckmeldung oder null
open_ticketja/nein
castListe von CastMember
crewListe von CrewMember
recommendationsListe von MediaItem
collectionMovieCollection oder null
seasons_totalZahl oder null
episodes_totalZahl oder null
series_statusText
networksListe von NamedRef

Aufbau 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"
  ],
  "genre_ids": [
    "number"
  ],
  "runtime_minutes": "number | null"
}

GET /api/kids/wishes may change

The child's own wishes

What this child has wished for and what became of each wish.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tmdb_idZahl Pflicht
titleText Pflicht
poster_pathText oder null Pflicht
release_dateText oder null Pflicht
stateText Pflicht
decline_noteText oder null Pflicht
created_atText Pflicht

Aufbau der Antwort

[
  {
    "id": "number",
    "media_type": "string",
    "tmdb_id": "number",
    "title": "string",
    "poster_path": "string | null",
    "release_date": "string | null",
    "state": "string",
    "decline_note": "string | null",
    "created_at": "string"
  }
]

POST /api/kids/wishes may change

Wish for something

The title is fetched from TMDB again here, with this child's settings: a blocked title fails the age check at that point rather than after the parent has already seen it.

Felder und Aufbau

Anfragekörper

FeldArt
media_typemovie | tv Pflicht
tmdb_idZahl Pflicht

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tmdb_idZahl Pflicht
titleText Pflicht
poster_pathText oder null Pflicht
release_dateText oder null Pflicht
stateText Pflicht
decline_noteText oder null Pflicht
created_atText Pflicht

Aufbau der Antwort

{
  "id": "number",
  "media_type": "string",
  "tmdb_id": "number",
  "title": "string",
  "poster_path": "string | null",
  "release_date": "string | null",
  "state": "string",
  "decline_note": "string | null",
  "created_at": "string"
}

GET /api/oidc/admin/blocks may change

List blocked identities

Identities blocked from signing in again - created when an account is deleted. Without this list a block would be forever.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
issuerText Pflicht
displayText oder null

Aufbau der Antwort

[
  {
    "id": "number",
    "issuer": "string",
    "display": "string | null"
  }
]

DELETE /api/oidc/admin/blocks/{block_id} may change

Lift a block

Afterwards that identity may sign in again - and, where enabled, get an account.

Felder und Aufbau

Parameter

block_idZahl path Pflicht

GET /api/oidc/admin/providers may change

List the sign-in providers

Every entry with its settings, the redirect address to register at the provider and how many accounts are linked. The client secret never leaves the server - the list only says whether one is set.

POST /api/oidc/admin/providers may change

Add a sign-in provider

Name on the button, short name, issuer, client id and secret, scopes and the switches. The issuer is checked by discovery before anything is stored. New people get no account unless that switch is on.

Felder und Aufbau

Anfragekörper

FeldArt
labelText Pflicht
slugText
issuerText Pflicht
client_idText Pflicht
client_secretText
scopesText
enabledja/nein
auto_createja/nein
trusts_second_factorja/nein

PUT /api/oidc/admin/providers/order may change

Order the sign-in providers

The order of the buttons on the sign-in page.

Felder und Aufbau

Anfragekörper

FeldArt
idsListe von Zahl Pflicht

DELETE /api/oidc/admin/providers/{provider_id} may change

Remove a sign-in provider

Removes the entry with its links. Refused (403) when the operator would be locked out by somebody else.

Felder und Aufbau

Parameter

provider_idZahl path Pflicht

PUT /api/oidc/admin/providers/{provider_id} may change

Save a sign-in provider

Everything but the short name. An empty client secret keeps the stored one. Another issuer is another provider: the links of this entry go (dropped tells how many).

Felder und Aufbau

Parameter

provider_idZahl path Pflicht

Anfragekörper

FeldArt
labelText Pflicht
slugText
issuerText Pflicht
client_idText Pflicht
client_secretText
scopesText
enabledja/nein
auto_createja/nein
trusts_second_factorja/nein

GET /api/oidc/admin/providers/{provider_id}/impact may change

What a change or removal would cost

How many accounts would have to link again with this issuer, how many lose their link on removal, and for how many that is the only way in.

Felder und Aufbau

Parameter

provider_idZahl path Pflicht
issuerText query

GET /api/oidc/authentik/address may change

The public address as the authentik card sees it

The public address, the address this request arrived under, what a proxy said, the redirect address authentik would get and whether it still knows an older one.

POST /api/oidc/authentik/address may change

Save the public address

Use it only in the authentik card. Answers 409 public_url_change when a provider knows the old redirect address, until confirm is true.

Felder und Aufbau

Anfragekörper

FeldArt
public_urlText Pflicht
confirmja/nein

GET /api/oidc/authentik/blueprint may change

Download the authentik blueprint

nexview-authentik.yaml with the same objects the button creates. Needs a public address (409 public_url_needed without one).

POST /api/oidc/authentik/setup may change

Set up authentik in one step

Creates or updates signing key, scope mappings, provider and application in authentik with the given API token and fills in the entry here. Always answers 200 with the steps that ran, a failed one with its reason. The token is used for this run only and never stored.

Felder und Aufbau

Anfragekörper

FeldArt
urlText Pflicht
tokenText Pflicht
confirm_issuer_changeja/nein
public_urlText

GET /api/oidc/callback may change

Return from the provider of the entry oidc

The same return for the entry with the slug oidc (a coupling).

GET /api/oidc/me may change

The sign-in providers of the own account

Every active provider, and whether the own account is linked to it.

GET /api/oidc/providers may change

List the sign-in buttons

The active sign-in providers in their order: slug and the name on the button, nothing else. No sign-in needed - the sign-in and invitation pages ask before anybody is signed in.

GET /api/oidc/{slug}/callback may change

Return from a sign-in provider

The redirect address registered at the provider. Checks the attempt cookie and its single-use state, exchanges the code, verifies the ID token and either starts a session or links the identity to the account that started the linking. Every outcome is a redirect, never a bare API answer.

Felder und Aufbau

Parameter

slugText path Pflicht

POST /api/oidc/{slug}/link may change

Start linking the own account to a provider

Asks for the own password, then returns the provider address to navigate to and sets the attempt cookie. Only in a session, not with a personal access key.

Felder und Aufbau

Parameter

slugText path Pflicht

Anfragekörper

FeldArt
passwordText

GET /api/oidc/{slug}/start may change

Go to a sign-in provider

Redirects the browser to the provider (authorization code flow with PKCE, state and nonce in a short-lived attempt cookie). With ?invite=<key> the invitation travels along and is accepted on the way back. Meant to be navigated to; every failure ends on the sign-in page with ?error=<code>.

Felder und Aufbau

Parameter

slugText path Pflicht
inviteText oder null query

POST /api/onboarding/forgot-password may change

Request a password reset link

The response is always the same, whether the address exists or not. Otherwise anyone could probe here for who has an account - and on a private installation, that is exactly the list nobody should be able to build.

Felder und Aufbau

Anfragekörper

FeldArt
emailText Pflicht

Antwort

FeldArt
messageText Pflicht

Aufbau der Antwort

{
  "message": "string"
}

GET /api/onboarding/invitation/{raw} may change

Check an invitation link

Says whether the link is still valid and what it offers, without signing anybody in. Used by the page behind the link to decide between a form and an explanation. If the invitation asks for it and the installation has published house rules, they come along, so the page can show them before the account exists. So do the media servers the invitation grants access to, with their libraries and, where the person brings an account of their own, whether it is linked yet.

Felder und Aufbau

Parameter

rawText path Pflicht

Antwort

FeldArt
emailText Pflicht
roleadmin | approver | user | child Pflicht
hausordnungHausordnungSchritt oder null
serverListe von ServerFuerPerson

Aufbau der Antwort

{
  "email": "string",
  "role": "admin | approver | user | child",
  "hausordnung": {
    "titel": "string",
    "inhalt": "string",
    "quittierbar": "boolean"
  },
  "server": [
    {
      "provider": "string",
      "label": "string",
      "art": "string",
      "bibliotheken": [
        "string"
      ],
      "zustand": "string",
      "konto_name": "string | null",
      "fehler": "object | null"
    }
  ]
}

POST /api/onboarding/invitation/{raw} may change

Redeem an invitation

Creates the account the way the invited person wants it - username, password, display name. The account does not exist until this call succeeds. The permissions the invitation carries are checked once more against the installation as it is now. Whatever no longer applies is left out, noted on the invitation and reported to the administrators. A decision on the house rules is recorded here as well, never through the signed-in route, because an administrator may still be signed in within the same browser. If the invitation grants access to media servers, accounts on Jellyfin and Emby come first, with the same name and password, while the password is still at hand. If one fails, no Nexview account is created, the invitation stays open and the next attempt continues instead of creating a second account. Shares on Plex follow once the Nexview account exists; a share that fails is noted on the invitation for the administrator to retry. Nothing is ever deleted on a media server.

Felder und Aufbau

Parameter

rawText path Pflicht

Anfragekörper

FeldArt
usernameText Pflicht
display_nameText oder null
passwordText Pflicht
hausordnung_akzeptiertja/nein oder null

Antwort

FeldArt
usernameText Pflicht
serverListe von ServerFuerPerson

Aufbau der Antwort

{
  "username": "string",
  "server": [
    {
      "provider": "string",
      "label": "string",
      "art": "string",
      "bibliotheken": [
        "string"
      ],
      "zustand": "string",
      "konto_name": "string | null",
      "fehler": "object | null"
    }
  ]
}

GET /api/onboarding/invitation/{raw}/namen may change

Check a username for every account the invitation creates

Answers for Nexview and for each media server where a new account will be created. null means that server did not answer; creating the account checks the name again.

Felder und Aufbau

Parameter

rawText path Pflicht
usernameText query Pflicht

Antwort

FeldArt
nexviewja/nein Pflicht
serverObjekt

Aufbau der Antwort

{
  "nexview": "boolean",
  "server": "object"
}

POST /api/onboarding/invitation/{raw}/server/{provider}/poll may change

Check whether linking is finished

Pending until the person confirms at the provider. If that account already belongs to a Nexview account, it stops with a conflict: the administrators are told, the invitation stays open and nothing carries over to the existing account.

Felder und Aufbau

Parameter

rawText path Pflicht
providerText path Pflicht

Anfragekörper

FeldArt
poll_tokenText Pflicht

Antwort

FeldArt
statusText Pflicht
konto_nameText oder null

Aufbau der Antwort

{
  "status": "string",
  "konto_name": "string | null"
}

POST /api/onboarding/invitation/{raw}/server/{provider}/start may change

Start linking the invited person's own media server account

Only for servers where the invitation shares libraries with an account the person already has, which is Plex. Returns a code and a sign-in address; the provider's PIN stays on the server. There is no access check here, because granting access is what the invitation is for.

Felder und Aufbau

Parameter

rawText path Pflicht
providerText path Pflicht

Antwort

FeldArt
poll_tokenText Pflicht
codeText Pflicht
auth_urlText Pflicht

Aufbau der Antwort

{
  "poll_token": "string",
  "code": "string",
  "auth_url": "string"
}

GET /api/onboarding/password/{raw} may change

Check a password link

Says whether a reset or first-password link is still valid, so the page can show a form or an explanation instead of failing on submit.

Felder und Aufbau

Parameter

rawText path Pflicht

Antwort

FeldArt
usernameText Pflicht

Aufbau der Antwort

{
  "username": "string"
}

POST /api/onboarding/password/{raw} may change

Set a password

First password or a new one. The address counts as confirmed afterwards - the mail evidently arrived. Every existing session becomes invalid: anyone resetting a password has a reason to assume somebody else was in.

Felder und Aufbau

Parameter

rawText path Pflicht

Anfragekörper

FeldArt
passwordText Pflicht

PUT /api/onboarding/pending/email may change

Correct an unconfirmed address

The most common reason for a mail that never arrives is a typo. Without this route the installation would be stuck: no confirmed address, no sign-in, and no way to fix the address.

Felder und Aufbau

Anfragekörper

FeldArt
usernameText Pflicht
passwordText Pflicht
emailText Pflicht

Antwort

FeldArt
sentja/nein Pflicht
errorText oder null

Aufbau der Antwort

{
  "sent": "boolean",
  "error": "string | null"
}

POST /api/onboarding/pending/resend may change

Send the confirmation mail again, without signing in

The counterpart to the signed-in version, for an account that cannot sign in yet because its address is unconfirmed.

Felder und Aufbau

Anfragekörper

FeldArt
usernameText Pflicht
passwordText Pflicht

Antwort

FeldArt
sentja/nein Pflicht
errorText oder null

Aufbau der Antwort

{
  "sent": "boolean",
  "error": "string | null"
}

GET /api/onboarding/username-available may change

Is this username still free

Answers while somebody is still typing. Deliberately open without authentication: whoever is redeeming an invitation is nobody yet. It reveals only whether a name is taken - the same thing the form would reveal on submit.

Felder und Aufbau

Parameter

usernameText query Pflicht

Antwort

FeldArt
availableja/nein Pflicht

Aufbau der Antwort

{
  "available": "boolean"
}

POST /api/onboarding/verify/{raw} may change

Confirm an e-mail address

Marks the address behind the link as confirmed.

Felder und Aufbau

Parameter

rawText path Pflicht

POST /api/setup/admin may change

Create the first administrator

Only works while the installation is still empty. Afterwards accounts come into being through invitations.

Felder und Aufbau

Anfragekörper

FeldArt
usernameText Pflicht
passwordText Pflicht
emailText Pflicht
display_nameText oder null
languageText

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number"
}

POST /api/setup/seerr/abschliessen may change

Finish the Seerr migration in one go

The one call in this feature that writes, and it writes everything at once or nothing at all: the picked settings areas, the blocklist, the notification channels, the TMDB key, the public address, the owner account and the other accounts. Areas and accounts are picked by name and number; the values themselves are fetched again server-side, so the SMTP password, the Radarr and Sonarr keys and every quota never pass through the browser. Answers with the owner session - the media server is connected with it in the next step. Open only while no account exists; this call creates the first one and closes the door.

Felder und Aufbau

Anfragekörper

FeldArt
urlText Pflicht
api_keyText Pflicht
bereicheListe von Text
besitzerBesitzerEingabe Pflicht
kontenListe von KontoWunsch
tmdb_api_keyText
public_urlText

Antwort

FeldArt
access_tokenText Pflicht
token_typeText
expires_inZahl Pflicht
berichtObjekt Pflicht

Aufbau der Antwort

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": "number",
  "bericht": "object"
}

POST /api/setup/seerr/pruefen may change

Check a Seerr installation during first-time setup

Same answer as the admin endpoint, but before there is anyone to sign in as. Open only while no account exists at all; the moment the first one is created this closes for good. Reads only.

Felder und Aufbau

Anfragekörper

FeldArt
urlText Pflicht
api_keyText Pflicht

POST /api/setup/seerr/vorschau may change

Preview a Seerr migration during first-time setup

The decision sheet, built while the installation is still empty. Roles may carry over here, unlike in a running installation: the operator is setting up, and rebuilding years of role assignments by hand is exactly the work this saves. The owner flag never carries over - it belongs to whoever is running the setup. Writes nothing.

Felder und Aufbau

Anfragekörper

FeldArt
urlText Pflicht
api_keyText Pflicht

POST /api/setup/sicherung/einspielen may change

Set up from a backup

Builds the fresh installation from a backup file. Setup is finished afterwards: the accounts come from the backup, and the wizard does not appear again.

POST /api/setup/sicherung/pruefen may change

Inspect a backup file

Reports what a backup contains and whether this version can restore it - without replacing anything. A backup from a newer version is refused, because the database can only be migrated forward.

GET /api/setup/status may change

Is setup still needed

Says whether this installation has been set up yet, and which step it stopped at. Answers without authentication - there is nobody to authenticate as.

Felder und Aufbau

Antwort

FeldArt
needs_setupja/nein Pflicht
min_password_lengthZahl
mediaserver_loginja/nein
mediaserver_providerText oder null
mediaserver_login_waysListe von AnmeldeWeg
password_loginja/nein

Aufbau der Antwort

{
  "needs_setup": "boolean",
  "min_password_length": "number",
  "mediaserver_login": "boolean",
  "mediaserver_provider": "string | null",
  "mediaserver_login_ways": [
    {
      "provider": "string",
      "label": "string",
      "kind": "string"
    }
  ],
  "password_login": "boolean"
}

GET /api/users may change

All accounts

Every account with its role, quota and current usage. Administrators only.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null
quota_movies_usedZahl Pflicht
quota_series_usedZahl Pflicht

Aufbau der Antwort

[
  {
    "id": "number",
    "username": "string",
    "role": "admin | approver | user | child",
    "display_name": "string | null",
    "email": "string | null",
    "email_verified": "boolean",
    "language": "string",
    "theme": "string",
    "is_active": "boolean",
    "is_betreiber": "boolean",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "boolean"
  }
]

GET /api/users/api-schluessel may change

All API tokens in this installation

Who holds which token, when it was made and when it was last used. Never the token itself - an administrator can supervise, not read. Revoking is not offered here: only the owner can switch off their own token.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
user_idZahl Pflicht
usernameText Pflicht
nameText Pflicht
vorschauText Pflicht
nur_lesenja/nein Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) oder null Pflicht
last_used_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

[
  {
    "id": "number",
    "user_id": "number",
    "username": "string",
    "name": "string",
    "vorschau": "string",
    "nur_lesen": "boolean",
    "created_at": "ISO 8601",
    "expires_at": "ISO 8601 | null",
    "last_used_at": "ISO 8601 | null"
  }
]

GET /api/users/betreiber may change

Who owns this installation

Exactly one account carries the owner flag, and no other administrator can switch it off, delete it, demote it or set its password. user_id: null means nobody carries it - a real state, not an error. aus_umgebung says the owner is pinned by the NEXVIEW_BETREIBER environment variable; while that is set, handing over is refused rather than silently undone on the next restart. Readable by every administrator, not just the owner: whoever meets the greyed-out buttons should be able to find out who they belong to.

Felder und Aufbau

Antwort

FeldArt
user_idZahl oder null
usernameText oder null
display_nameText oder null
aus_umgebungja/nein

Aufbau der Antwort

{
  "user_id": "number | null",
  "username": "string | null",
  "display_name": "string | null",
  "aus_umgebung": "boolean"
}

POST /api/users/betreiber/uebergeben may change

Hand ownership to another administrator

Only the current owner may call this, and there is no way back. The target must be an active administrator - not an ordinary account, not an approver, not a child account, not yourself. Afterwards the previous owner is an ordinary administrator again and is as removable as anyone else. Only the new owner can hand the flag back. The flag grants no rights of its own. It only says what others may not do with that account.

Felder und Aufbau

Anfragekörper

FeldArt
user_idZahl Pflicht

Antwort

FeldArt
user_idZahl oder null
usernameText oder null
display_nameText oder null
aus_umgebungja/nein

Aufbau der Antwort

{
  "user_id": "number | null",
  "username": "string | null",
  "display_name": "string | null",
  "aus_umgebung": "boolean"
}

GET /api/users/invitations may change

Open invitations

Invitations that have neither been redeemed nor expired, plus redeemed ones where something the invitation asked for could not be carried over or a media server is missing. Those stay listed until the administrator dismisses the note.

Felder und Aufbau

Antwort

FeldArt
idZahl Pflicht
emailText Pflicht
roleadmin | approver | user | child Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) Pflicht
eingeloest_amZeitpunkt (ISO 8601) oder null
kontoText oder null
entfallenListe von Text
serverListe von ServerZiel

Aufbau der Antwort

[
  {
    "id": "number",
    "email": "string",
    "role": "admin | approver | user | child",
    "created_at": "ISO 8601",
    "expires_at": "ISO 8601",
    "eingeloest_am": "ISO 8601 | null",
    "konto": "string | null",
    "entfallen": [
      "string"
    ],
    "server": [
      {
        "provider": "string",
        "label": "string",
        "bibliotheken": [
          "string"
        ],
        "zustand": "string",
        "fehler": "object | null",
        "nachholbar": "boolean"
      }
    ]
  }
]

POST /api/users/invitations may change

Invite somebody

The account comes into being when the link is redeemed, not now. Needs both pieces in place: without a public address the mail contains a dead link, without a mail server it never goes out. Besides role and limits, the invitation carries auto-approval, 4K rights and whether the house rules are shown on redemption. Only what the installation allows at this moment is stored, and redeeming checks the same rules again. It can also grant access to connected media servers, limited to libraries, because that is what all three can do. The chosen libraries are checked against the server before anything is stored.

Felder und Aufbau

Anfragekörper

FeldArt
roleadmin | approver | user | child
auto_approve_moviesja/nein
auto_approve_seriesja/nein
fassungenListe von FassungRechtWunsch
can_request_uhd_moviesja/nein
can_request_uhd_seriesja/nein
auto_approve_uhdja/nein
hausordnungja/nein
emailText Pflicht
quota_movies_limitZahl
quota_series_limitZahl
storage_limit_gbZahl
serverListe von ServerWunsch

Antwort

FeldArt
idZahl Pflicht
emailText Pflicht
roleadmin | approver | user | child Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) Pflicht
eingeloest_amZeitpunkt (ISO 8601) oder null
kontoText oder null
entfallenListe von Text
serverListe von ServerZiel
mail_sentja/nein Pflicht
mail_errorText oder null
manual_linkText oder null

Aufbau der Antwort

{
  "id": "number",
  "email": "string",
  "role": "admin | approver | user | child",
  "created_at": "ISO 8601",
  "expires_at": "ISO 8601",
  "eingeloest_am": "ISO 8601 | null",
  "konto": "string | null",
  "entfallen": [
    "string"
  ],
  "server": [
    {
      "provider": "string",
      "label": "string",
      "bibliotheken": [
        "string"
      ],
      "zustand": "string",
      "fehler": "object | null",
      "nachholbar": "boolean"
    }
  ],
  "mail_sent": "boolean",
  "mail_error": "string | null",
  "manual_link": "string | null"
}

GET /api/users/invitations/server may change

Media servers an invitation can grant access to

Every supported media server, connected or not, with whether an invitation can use it right now and the libraries it can share. The libraries are read from the server itself. Plex libraries carry the plex.tv section id, which is the one sharing needs.

Felder und Aufbau

Antwort

FeldArt
providerText Pflicht
labelText Pflicht
artText
standRechteStand Pflicht
nameText
bibliothekenListe von BibliothekAuswahl
fehlerObjekt oder null

Aufbau der Antwort

[
  {
    "provider": "string",
    "label": "string",
    "art": "string",
    "stand": {
      "frei": "boolean",
      "wirkt": "boolean",
      "grund": "string | null"
    },
    "name": "string",
    "bibliotheken": [
      {
        "kennung": "string",
        "name": "string",
        "art": "string"
      }
    ],
    "fehler": "object | null"
  }
]

DELETE /api/users/invitations/{invitation_id} may change

Withdraw an invitation

The link stops working immediately.

Felder und Aufbau

Parameter

invitation_idZahl path Pflicht

POST /api/users/invitations/{invitation_id}/gesehen may change

Dismiss the note on a redeemed invitation

A redeemed invitation stays in the list while something it asked for could not be carried over. This clears that note once the administrator has seen it.

Felder und Aufbau

Parameter

invitation_idZahl path Pflicht

POST /api/users/invitations/{invitation_id}/server/{provider}/nachholen may change

Retry a failed share on a media server

After redemption, a share that failed, for example because plex.tv did not answer, stays on the invitation. This tries it again for the account that came out of the invitation. Only shares can be retried: an account on Jellyfin or Emby needs the person's password, which Nexview never keeps.

Felder und Aufbau

Parameter

invitation_idZahl path Pflicht
providerText path Pflicht

Antwort

FeldArt
idZahl Pflicht
emailText Pflicht
roleadmin | approver | user | child Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
expires_atZeitpunkt (ISO 8601) Pflicht
eingeloest_amZeitpunkt (ISO 8601) oder null
kontoText oder null
entfallenListe von Text
serverListe von ServerZiel

Aufbau der Antwort

{
  "id": "number",
  "email": "string",
  "role": "admin | approver | user | child",
  "created_at": "ISO 8601",
  "expires_at": "ISO 8601",
  "eingeloest_am": "ISO 8601 | null",
  "konto": "string | null",
  "entfallen": [
    "string"
  ],
  "server": [
    {
      "provider": "string",
      "label": "string",
      "bibliotheken": [
        "string"
      ],
      "zustand": "string",
      "fehler": "object | null",
      "nachholbar": "boolean"
    }
  ]
}

POST /api/users/rechte/bewerten may change

Check which permissions a role can have

Holds the ticked permissions against how the installation is set up and answers per permission: can it be set, will it take effect, and if not, why. The reason is a code the interface translates. The invitation wizard and the account dialog ask on every change, so neither offers more than the rules allow.

Felder und Aufbau

Anfragekörper

FeldArt
roleadmin | approver | user | child
auto_approve_moviesja/nein
auto_approve_seriesja/nein
fassungenListe von FassungRechtWunsch
can_request_uhd_moviesja/nein
can_request_uhd_seriesja/nein
auto_approve_uhdja/nein
hausordnungja/nein

Antwort

FeldArt
kontingentRechteStand Pflicht
auto_approve_moviesRechteStand Pflicht
auto_approve_seriesRechteStand Pflicht
can_request_uhd_moviesRechteStand Pflicht
can_request_uhd_seriesRechteStand Pflicht
auto_approve_uhdRechteStand Pflicht
hausordnungRechteStand Pflicht
fassungenObjekt
entfallenListe von Text Pflicht

Aufbau der Antwort

{
  "kontingent": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "auto_approve_movies": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "auto_approve_series": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "can_request_uhd_movies": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "can_request_uhd_series": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "auto_approve_uhd": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "hausordnung": {
    "frei": "boolean",
    "wirkt": "boolean",
    "grund": "string | null"
  },
  "fassungen": "object",
  "entfallen": [
    "string"
  ]
}

DELETE /api/users/{user_id} may change

Delete an account

Approved requests move into the house collection - they stay, just without an owner. Only what is still open gets cancelled. Access on the media servers listed in "serverkonten" is removed before anything else; if that fails on one server, the account and everything it holds stay. Use the preview first to see exactly what will happen.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Anfragekörper

FeldArt
hausListe von Zahl
loeschenListe von Zahl
staffelnListe von Staffelwahl
offen_behaltenListe von Zahl
serverkontenListe von ServerKontoWahl

PATCH /api/users/{user_id} may change

Change an account

Role, quota, auto-approval, active state and display name. Administrators only.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Anfragekörper

FeldArt
roleadmin | approver | user | child oder null
display_nameText oder null
languageText oder null
is_activeja/nein oder null
auto_approveja/nein oder null
auto_approve_moviesja/nein oder null
auto_approve_seriesja/nein oder null
quota_movies_limitZahl oder null
quota_series_limitZahl oder null
storage_limit_gbZahl oder null
blocked_movie_profilesListe von Zahl oder null
blocked_series_profilesListe von Zahl oder null
fassung_rechteListe von FassungRechtWunsch oder null
can_request_uhd_moviesja/nein oder null
can_request_uhd_seriesja/nein oder null
auto_approve_uhdja/nein oder null
blocked_movie_uhd_profilesListe von Zahl oder null
blocked_series_uhd_profilesListe von Zahl oder null
can_manage_childrenja/nein oder null

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

GET /api/users/{user_id}/aufloesung may change

Preview: what deleting would leave behind

What this account would leave behind - without anything happening. The administrator decides with this list in front of them: per item house or delete, per open request keep or cancel, and per account on a media server whether its access goes too ("serverkonten"). Preselected is only what a Nexview invitation created; "grund" says why an entry cannot be removed.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Antwort

FeldArt
postenListe von AufloesungsPosten Pflicht
laufendeListe von app__routers__users__LaufendeZeile Pflicht
offenListe von OffeneZeile Pflicht
serverkontenListe von ServerKontoZeile

Aufbau der Antwort

{
  "posten": [
    {
      "id": "number",
      "title": "string",
      "fassung": "string",
      "season": "number | null",
      "media_type": "string",
      "size_bytes": "number"
    }
  ],
  "laufende": [
    {
      "request_id": "number",
      "title": "string",
      "fassung": "string",
      "season": "number | null",
      "dateien": "number",
      "folgen": "number"
    }
  ],
  "offen": [
    {
      "request_id": "number",
      "title": "string",
      "fassung": "string",
      "season": "number | null"
    }
  ],
  "serverkonten": [
    {
      "provider": "string",
      "label": "string",
      "konto": "string",
      "name": "string",
      "art": "string",
      "aus_einladung": "boolean",
      "vorausgewaehlt": "boolean",
      "grund": "string | null"
    }
  ]
}

POST /api/users/{user_id}/password may change

Set an account's password

An administrator sets a new password directly, for the case where mail is not working and the reset link cannot arrive.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Anfragekörper

FeldArt
passwordText Pflicht

POST /api/users/{user_id}/quota/reset may change

Reset the request count

Sets usage in the current period back to zero. The requests themselves stay - counting simply starts again from now. At the next period change the calendar takes over as usual.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null
quota_movies_usedZahl Pflicht
quota_series_usedZahl Pflicht

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}

POST /api/users/{user_id}/storage/reset may change

Move an account's storage to the house

The counterpart to resetting the request count, and the way out of a ghost item: something requested through Nexview that no longer exists in Radarr or Sonarr keeps counting against its owner forever otherwise.

Felder und Aufbau

Parameter

user_idZahl path Pflicht

Antwort

FeldArt
idZahl Pflicht
usernameText Pflicht
roleadmin | approver | user | child Pflicht
display_nameText oder null Pflicht
emailText oder null Pflicht
email_verifiedja/nein Pflicht
languageText Pflicht
themeText Pflicht
is_activeja/nein Pflicht
is_betreiberja/nein
auto_approveja/nein Pflicht
auto_approve_moviesja/nein oder null Pflicht
auto_approve_seriesja/nein oder null Pflicht
effective_auto_approveja/nein Pflicht
effective_auto_approve_moviesja/nein Pflicht
effective_auto_approve_seriesja/nein Pflicht
can_approveja/nein Pflicht
quota_movies_limitZahl Pflicht
quota_series_limitZahl Pflicht
storage_limit_gbZahl
quota_reset_atZeitpunkt (ISO 8601) oder null Pflicht
hausordnung_gelesen_amZeitpunkt (ISO 8601) oder null
blocked_movie_profilesListe von Zahl Pflicht
blocked_series_profilesListe von Zahl Pflicht
fassung_rechteListe von FassungRechtOut
can_request_uhd_moviesja/nein Pflicht
can_request_uhd_seriesja/nein Pflicht
auto_approve_uhdja/nein Pflicht
effective_auto_approve_uhdja/nein Pflicht
blocked_movie_uhd_profilesListe von Zahl Pflicht
blocked_series_uhd_profilesListe von Zahl Pflicht
avatar_urlText oder null Pflicht
created_atZeitpunkt (ISO 8601) Pflicht
last_login_atZeitpunkt (ISO 8601) oder null Pflicht
mail_download_completeja/nein Pflicht
mail_request_pendingja/nein Pflicht
mail_request_decidedja/nein Pflicht
mail_feedbackja/nein Pflicht
mail_ticketja/nein Pflicht
mail_watchja/nein Pflicht
mail_user_importedja/nein Pflicht
mail_mediaserver_reconnectja/nein Pflicht
mail_storageja/nein Pflicht
mail_child_wishja/nein Pflicht
mail_cleanupja/nein Pflicht
push_download_completeja/nein Pflicht
push_request_pendingja/nein Pflicht
push_request_decidedja/nein Pflicht
push_feedbackja/nein Pflicht
push_ticketja/nein Pflicht
push_watchja/nein Pflicht
push_user_importedja/nein Pflicht
push_mediaserver_reconnectja/nein Pflicht
push_storageja/nein Pflicht
push_child_wishja/nein Pflicht
watchlist_connectedja/nein Pflicht
watchlist_token_invalidja/nein
mediaserver_providerText oder null Pflicht
mediaserver_usernameText oder null Pflicht
mediaserver_linkedja/nein Pflicht
mediaserver_accountsListe von VerknuepftesKonto
oidc_linksListe von OidcVerknuepfung
has_passwordja/nein Pflicht
discover_regionText oder null Pflicht
ageZahl oder null Pflicht
rating_regionText oder null Pflicht
hide_unratedja/nein Pflicht
can_manage_childrenja/nein
parent_idZahl oder null
quota_movies_usedZahl Pflicht
quota_series_usedZahl Pflicht

Aufbau der Antwort

{
  "id": "number",
  "username": "string",
  "role": "admin | approver | user | child",
  "display_name": "string | null",
  "email": "string | null",
  "email_verified": "boolean",
  "language": "string",
  "theme": "string",
  "is_active": "boolean",
  "is_betreiber": "boolean",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean"
}