Skip to content
Area

Accounts

60 addresses. Not promised — they belong to the internals and can change with any release. If you need something to stay put, use the promised thirteen.

60 addresses

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.

Fields and shape

Request body

FieldType
usernamestring required
passwordstring required

Response

FieldType
access_tokenstring required
token_typestring
expires_innumber required

Response shape

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

POST /api/auth/logout may change

Sign out of this browser

Clears the cookie. Without an authentication check, on purpose: anyone who wants to sign out should be able to, even if their access token expired long ago. Note this ends the session in this browser only - to end them everywhere, 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.

Fields and shape

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Request body

FieldType
display_namestring or null
languagestring or null
themestring or null
mail_download_completeboolean or null
mail_request_pendingboolean or null
mail_request_decidedboolean or null
mail_feedbackboolean or null
mail_ticketboolean or null
mail_watchboolean or null
mail_user_importedboolean or null
mail_mediaserver_reconnectboolean or null
mail_storageboolean or null
mail_child_wishboolean or null
mail_cleanupboolean or null
discover_regionstring or null

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "boolean"
}

DELETE /api/auth/me/avatar may change

Remove your profile picture

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

Fields and shape

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Request body

FieldType
emailstring required

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Request body

FieldType
current_passwordstring required
new_passwordstring required

Response

FieldType
access_tokenstring required
token_typestring
expires_innumber required

Response shape

{
  "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.

Fields and shape

Response

FieldType
sentboolean required
errorstring or null

Response shape

{
  "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.

Fields and shape

Response

FieldType
idnumber required
namestring required
vorschaustring required
nur_lesenboolean required
created_attimestamp (ISO 8601) required
expires_attimestamp (ISO 8601) or null required
last_used_attimestamp (ISO 8601) or null required

Response shape

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

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.

Fields and shape

Request body

FieldType
namestring required
nur_lesenboolean
tagenumber or null

Response

FieldType
idnumber required
namestring required
vorschaustring required
nur_lesenboolean required
created_attimestamp (ISO 8601) required
expires_attimestamp (ISO 8601) or null required
last_used_attimestamp (ISO 8601) or null required
schluesselstring required

Response shape

{
  "id": "number",
  "name": "string",
  "vorschau": "string",
  "nur_lesen": "boolean",
  "created_at": "ISO 8601",
  "expires_at": "ISO 8601 | null",
  "last_used_at": "ISO 8601 | null",
  "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.

Fields and shape

Parameters

schluessel_idnumber path required

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 removes the cookie from this browser; a copy taken elsewhere kept working until it expired, up to 30 days.

Fields and shape

Response

FieldType
access_tokenstring required
token_typestring
expires_innumber required

Response shape

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

POST /api/auth/refresh may change

Renew the access token

The refresh token is read from the HttpOnly cookie, not from the request body. Clients still holding a token in localStorage from an older version have to sign in once.

Fields and shape

Response

FieldType
access_tokenstring required
token_typestring
expires_innumber required

Response shape

{
  "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.

Fields and shape

Response

FieldType
idnumber required
usernamestring required
display_namestring or null required
agenumber or null required
is_activeboolean required
languagestring required
child_trailersboolean
genreslist of string required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required

Response shape

[
  {
    "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.

Fields and shape

Request body

FieldType
usernamestring required
passwordstring required
agenumber required
display_namestring or null
genreslist of string or null
child_trailersboolean
languagestring or null

Response

FieldType
idnumber required
usernamestring required
display_namestring or null required
agenumber or null required
is_activeboolean required
languagestring required
child_trailersboolean
genreslist of string required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required

Response shape

{
  "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.

Fields and shape

Response

FieldType
idnumber required
child_idnumber required
child_namestring required
media_typestring required
tmdb_idnumber required
titlestring required
poster_pathstring or null required
in_my_subscriptionslist of string
release_datestring or null required
created_atstring required

Response shape

[
  {
    "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.

Fields and shape

Parameters

wish_idnumber path required

Request body

FieldType
notestring or 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.

Fields and shape

Parameters

wish_idnumber path required

Request body

FieldType
quality_profile_idnumber or null
root_folder_pathstring or null
seasonnumber or null
monitor_futureboolean
tierstandard | uhd

Response

FieldType
idnumber required
media_typemovie | tv required
tierstandard | uhd required
tmdb_idnumber required
titlestring required
poster_pathstring or null required
release_datestring or null required
statuspending_approval | approved | searching | downloaded | rejected | failed | cancelled | deleted | deferred required
quality_profile_idnumber or null required
root_folder_pathstring or null required
seasonnumber or null required
from_watchlistboolean required
requested_attimestamp (ISO 8601) required
approved_attimestamp (ISO 8601) or null required
completed_attimestamp (ISO 8601) or null required
approved_by_namestring or null
last_checked_attimestamp (ISO 8601) or null
rejection_reasonstring or null required
error_messagestring or null required
ratingnumber or null required
feedbackstring or null required
rated_attimestamp (ISO 8601) or null required
rating_outdatedboolean
feedback_replystring or null required
replied_attimestamp (ISO 8601) or null required

Response shape

{
  "id": "number",
  "media_type": "movie | tv",
  "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",
  "root_folder_path": "string | null",
  "season": "number | null",
  "from_watchlist": "boolean",
  "requested_at": "ISO 8601",
  "approved_at": "ISO 8601 | null"
}

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.

Fields and shape

Parameters

child_idnumber path required

PATCH /api/children/{child_id} may change

Change a child profile

Display name, enabled categories and age limit.

Fields and shape

Parameters

child_idnumber path required

Request body

FieldType
display_namestring or null
agenumber or null
is_activeboolean or null
genreslist of string or null
child_trailersboolean or null
languagestring or null

Response

FieldType
idnumber required
usernamestring required
display_namestring or null required
agenumber or null required
is_activeboolean required
languagestring required
child_trailersboolean
genreslist of string required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required

Response shape

{
  "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.

Fields and shape

Parameters

child_idnumber path required

Request body

FieldType
passwordstring required

Response

FieldType
idnumber required
usernamestring required
display_namestring or null required
agenumber or null required
is_activeboolean required
languagestring required
child_trailersboolean
genreslist of string required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required

Response shape

{
  "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.

Fields and shape

Parameters

child_idnumber path required

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.

Fields and shape

Parameters

child_idnumber path required
media_typestring query

Response

FieldType
rubrikstring required
bilderlist of string required

Response shape

[
  {
    "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.

Fields and shape

Parameters

child_idnumber path required
rubrikstring path required
media_typestring query
pagenumber query

Response

FieldType
verfuegbarlist of MediaItem required
wuenschbarlist of MediaItem required
gewuenschtlist of number

Response shape

{
  "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"
      ],
      "runtime_minutes": "number | null",
      "certification": "string | 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"
      ],
      "runtime_minutes": "number | null",
      "certification": "string | 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.

Fields and shape

Parameters

child_idnumber path required
media_typestring path required
tmdb_idnumber path required

Response

FieldType
media_typemovie | tv required
tmdb_idnumber required
tvdb_idnumber or null
titlestring required
original_titlestring or null
overviewstring
poster_urlstring or null
backdrop_urlstring or null
release_datestring or null
vote_averagenumber
vote_countnumber
genreslist of string
runtime_minutesnumber or null
certificationstring or null
original_languagestring or null
origin_countrylist of string
seasonslist of SeasonInfo
statusstring
status_uhdstring or null
watchedboolean
watched_onlist of string
watched_not_onlist of string
pathstring or null
path_uhdstring or null
uhd_in_standardboolean
taglinestring
homepagestring or null
status_textstring
original_countrylist of string
spoken_languageslist of string
budgetnumber or null
revenuenumber or null
studioslist of NamedRef
keywordslist of NamedRef
trailerTrailer or null
watchWatchProviders or null
in_my_subscriptionslist of string
watchingboolean
requested_by_meboolean
my_feedbackMeineRueckmeldung or null
open_ticketboolean
castlist of CastMember
crewlist of CrewMember
recommendationslist of MediaItem
seasons_totalnumber or null
episodes_totalnumber or null
series_statusstring
networkslist of NamedRef

Response shape

{
  "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/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.

Fields and shape

Parameters

media_typemovie | tv query

Response

FieldType
rubrikstring required
bilderlist of string required

Response shape

[
  {
    "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.

Fields and shape

Parameters

rubrikstring path required
media_typemovie | tv query
pagenumber query

Response

FieldType
verfuegbarlist of MediaItem required
wuenschbarlist of MediaItem required
gewuenschtlist of number required

Response shape

{
  "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"
      ],
      "runtime_minutes": "number | null",
      "certification": "string | 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"
      ],
      "runtime_minutes": "number | null",
      "certification": "string | 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.

Fields and shape

Parameters

media_typemovie | tv path required
tmdb_idnumber path required

Response

FieldType
media_typemovie | tv required
tmdb_idnumber required
tvdb_idnumber or null
titlestring required
original_titlestring or null
overviewstring
poster_urlstring or null
backdrop_urlstring or null
release_datestring or null
vote_averagenumber
vote_countnumber
genreslist of string
runtime_minutesnumber or null
certificationstring or null
original_languagestring or null
origin_countrylist of string
seasonslist of SeasonInfo
statusstring
status_uhdstring or null
watchedboolean
watched_onlist of string
watched_not_onlist of string
pathstring or null
path_uhdstring or null
uhd_in_standardboolean
taglinestring
homepagestring or null
status_textstring
original_countrylist of string
spoken_languageslist of string
budgetnumber or null
revenuenumber or null
studioslist of NamedRef
keywordslist of NamedRef
trailerTrailer or null
watchWatchProviders or null
in_my_subscriptionslist of string
watchingboolean
requested_by_meboolean
my_feedbackMeineRueckmeldung or null
open_ticketboolean
castlist of CastMember
crewlist of CrewMember
recommendationslist of MediaItem
seasons_totalnumber or null
episodes_totalnumber or null
series_statusstring
networkslist of NamedRef

Response shape

{
  "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/kids/wishes may change

The child's own wishes

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

Fields and shape

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
titlestring required
poster_pathstring or null required
release_datestring or null required
statestring required
decline_notestring or null required
created_atstring required

Response shape

[
  {
    "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.

Fields and shape

Request body

FieldType
media_typemovie | tv required
tmdb_idnumber required

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
titlestring required
poster_pathstring or null required
release_datestring or null required
statestring required
decline_notestring or null required
created_atstring required

Response shape

{
  "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/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.

Fields and shape

Request body

FieldType
emailstring required

Response

FieldType
messagestring required

Response shape

{
  "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.

Fields and shape

Parameters

rawstring path required

Response

FieldType
emailstring required
roleadmin | approver | user | child required

Response shape

{
  "email": "string",
  "role": "admin | approver | user | child"
}

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.

Fields and shape

Parameters

rawstring path required

Request body

FieldType
usernamestring required
display_namestring or null
passwordstring required

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.

Fields and shape

Parameters

rawstring path required

Response

FieldType
usernamestring required

Response shape

{
  "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.

Fields and shape

Parameters

rawstring path required

Request body

FieldType
passwordstring required

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.

Fields and shape

Request body

FieldType
usernamestring required
passwordstring required
emailstring required

Response

FieldType
sentboolean required
errorstring or null

Response shape

{
  "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.

Fields and shape

Request body

FieldType
usernamestring required
passwordstring required

Response

FieldType
sentboolean required
errorstring or null

Response shape

{
  "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.

Fields and shape

Parameters

usernamestring query required

Response

FieldType
availableboolean required

Response shape

{
  "available": "boolean"
}

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

Confirm an e-mail address

Marks the address behind the link as confirmed.

Fields and shape

Parameters

rawstring path required

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.

Fields and shape

Request body

FieldType
usernamestring required
passwordstring required
emailstring required
display_namestring or null
languagestring

Response

FieldType
access_tokenstring required
token_typestring
expires_innumber required

Response shape

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

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.

Fields and shape

Response

FieldType
needs_setupboolean required
min_password_lengthnumber
mediaserver_loginboolean
mediaserver_providerstring or null
mediaserver_login_wayslist of AnmeldeWeg

Response shape

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

GET /api/users may change

All accounts

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

Fields and shape

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null
quota_movies_usednumber required
quota_series_usednumber required

Response shape

[
  {
    "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",
    "auto_approve": "boolean",
    "auto_approve_movies": "boolean | null",
    "auto_approve_series": "boolean | null",
    "effective_auto_approve": "boolean",
    "effective_auto_approve_movies": "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.

Fields and shape

Response

FieldType
idnumber required
user_idnumber required
usernamestring required
namestring required
vorschaustring required
nur_lesenboolean required
created_attimestamp (ISO 8601) required
expires_attimestamp (ISO 8601) or null required
last_used_attimestamp (ISO 8601) or null required

Response shape

[
  {
    "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/invitations may change

Open invitations

Invitations that have neither been redeemed nor expired. Used-up ones are of no further interest.

Fields and shape

Response

FieldType
idnumber required
emailstring required
roleadmin | approver | user | child required
created_attimestamp (ISO 8601) required
expires_attimestamp (ISO 8601) required

Response shape

[
  {
    "id": "number",
    "email": "string",
    "role": "admin | approver | user | child",
    "created_at": "ISO 8601",
    "expires_at": "ISO 8601"
  }
]

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.

Fields and shape

Request body

FieldType
emailstring required
roleadmin | approver | user | child
quota_movies_limitnumber
quota_series_limitnumber

Response

FieldType
idnumber required
emailstring required
roleadmin | approver | user | child required
created_attimestamp (ISO 8601) required
expires_attimestamp (ISO 8601) required
mail_sentboolean required
mail_errorstring or null
manual_linkstring or null

Response shape

{
  "id": "number",
  "email": "string",
  "role": "admin | approver | user | child",
  "created_at": "ISO 8601",
  "expires_at": "ISO 8601",
  "mail_sent": "boolean",
  "mail_error": "string | null",
  "manual_link": "string | null"
}

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

Withdraw an invitation

The link stops working immediately.

Fields and shape

Parameters

invitation_idnumber path required

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. Use the preview first to see exactly what will happen.

Fields and shape

Parameters

user_idnumber path required

Request body

FieldType
hauslist of number
loeschenlist of number
staffelnlist of Staffelwahl
offen_behaltenlist of number

PATCH /api/users/{user_id} may change

Change an account

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

Fields and shape

Parameters

user_idnumber path required

Request body

FieldType
roleadmin | approver | user | child or null
display_namestring or null
languagestring or null
is_activeboolean or null
auto_approveboolean or null
auto_approve_moviesboolean or null
auto_approve_seriesboolean or null
quota_movies_limitnumber or null
quota_series_limitnumber or null
storage_limit_gbnumber or null
blocked_movie_profileslist of number or null
blocked_series_profileslist of number or null
can_request_uhd_moviesboolean or null
can_request_uhd_seriesboolean or null
auto_approve_uhdboolean or null
blocked_movie_uhd_profileslist of number or null
blocked_series_uhd_profileslist of number or null
can_manage_childrenboolean or null

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Parameters

user_idnumber path required

Response

FieldType
postenlist of AufloesungsPosten required
laufendelist of LaufendeZeile required
offenlist of OffeneZeile required

Response shape

{
  "posten": [
    {
      "id": "number",
      "title": "string",
      "tier": "string",
      "season": "number | null",
      "media_type": "string",
      "size_bytes": "number"
    }
  ],
  "laufende": [
    {
      "request_id": "number",
      "title": "string",
      "tier": "string",
      "season": "number | null",
      "dateien": "number",
      "folgen": "number"
    }
  ],
  "offen": [
    {
      "request_id": "number",
      "title": "string",
      "tier": "string",
      "season": "number | 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.

Fields and shape

Parameters

user_idnumber path required

Request body

FieldType
passwordstring required

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.

Fields and shape

Parameters

user_idnumber path required

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null
quota_movies_usednumber required
quota_series_usednumber required

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "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.

Fields and shape

Parameters

user_idnumber path required

Response

FieldType
idnumber required
usernamestring required
roleadmin | approver | user | child required
display_namestring or null required
emailstring or null required
email_verifiedboolean required
languagestring required
themestring required
is_activeboolean required
auto_approveboolean required
auto_approve_moviesboolean or null required
auto_approve_seriesboolean or null required
effective_auto_approveboolean required
effective_auto_approve_moviesboolean required
effective_auto_approve_seriesboolean required
can_approveboolean required
quota_movies_limitnumber required
quota_series_limitnumber required
storage_limit_gbnumber
quota_reset_attimestamp (ISO 8601) or null required
blocked_movie_profileslist of number required
blocked_series_profileslist of number required
can_request_uhd_moviesboolean required
can_request_uhd_seriesboolean required
auto_approve_uhdboolean required
effective_auto_approve_uhdboolean required
blocked_movie_uhd_profileslist of number required
blocked_series_uhd_profileslist of number required
avatar_urlstring or null required
created_attimestamp (ISO 8601) required
last_login_attimestamp (ISO 8601) or null required
mail_download_completeboolean required
mail_request_pendingboolean required
mail_request_decidedboolean required
mail_feedbackboolean required
mail_ticketboolean required
mail_watchboolean required
mail_user_importedboolean required
mail_mediaserver_reconnectboolean required
mail_storageboolean required
mail_child_wishboolean required
mail_cleanupboolean required
watchlist_connectedboolean required
watchlist_token_invalidboolean
mediaserver_providerstring or null required
mediaserver_usernamestring or null required
mediaserver_linkedboolean required
mediaserver_accountslist of VerknuepftesKonto
has_passwordboolean required
discover_regionstring or null required
agenumber or null required
rating_regionstring or null required
hide_unratedboolean required
can_manage_childrenboolean
parent_idnumber or null
quota_movies_usednumber required
quota_series_usednumber required

Response shape

{
  "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",
  "auto_approve": "boolean",
  "auto_approve_movies": "boolean | null",
  "auto_approve_series": "boolean | null",
  "effective_auto_approve": "boolean",
  "effective_auto_approve_movies": "boolean"
}

Nexview uses TMDB as its data source but is not from TMDB and is not endorsed or certified by TMDB. The screenshots come from a test installation; the accounts and requests shown in them are made up.

Nexview is published under the AGPL-3.0 licence. Radarr, Sonarr, Plex, Docker, Synology, IMDb, Rotten Tomatoes, Metacritic and JustWatch are trademarks of their respective owners and are named here for descriptive purposes only. Some of the icons on this page are based on Lucide (ISC licence) — copyright held in part by Cole Bemis 2013–2022 as part of Feather (MIT licence), otherwise by the Lucide contributors from 2022.