Skip to content
Area

Media server

21 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.

21 addresses

GET /api/admin/mediaserver/blocks may change

Blocked media-server accounts

Media-server accounts that are barred from signing in to Nexview. Administrators only.

Fields and shape

Response

FieldType
idnumber required
providerstring required
account_idstring required
usernamestring or null

Response shape

[
  {
    "id": "number",
    "provider": "string",
    "account_id": "string",
    "username": "string | null"
  }
]

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

Lift a block

This media-server account may sign in again afterwards.

Fields and shape

Parameters

block_idnumber path required

POST /api/admin/mediaserver/connect/password may change

Connect a server with username and password

For servers that offer no broker flow. The counterpart to start/poll/select, where somebody confirms in a browser window instead.

Fields and shape

Request body

FieldType
providerstring required
urlstring required
usernamestring required
passwordstring required

Response

FieldType
userUserPublic required
server_namestring required
server_urlstring required
reachableboolean required
warningstring or null

Response shape

{
  "user": {
    "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"
  },
  "server_name": "string",
  "server_url": "string",
  "reachable": "boolean",
  "warning": "string | null"
}

POST /api/admin/mediaserver/connect/poll may change

Check whether the sign-in was confirmed

Once confirmed, returns the servers to choose from. The operation stays open on purpose: the provider's token is held by the broker until a server has actually been selected.

Fields and shape

Request body

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
serverslist of ServerOption
shared_hiddennumber

Response shape

{
  "status": "string",
  "servers": [
    {
      "machine_id": "string",
      "name": "string",
      "url": "string",
      "owned": "boolean"
    }
  ],
  "shared_hidden": "number"
}

POST /api/admin/mediaserver/connect/select may change

Take a server into use

Adopts the chosen server and links the calling account to it in the same step.

Fields and shape

Request body

FieldType
poll_tokenstring required
machine_idstring required

Response

FieldType
userUserPublic required
server_namestring required
server_urlstring required
reachableboolean required
warningstring or null

Response shape

{
  "user": {
    "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"
  },
  "server_name": "string",
  "server_url": "string",
  "reachable": "boolean",
  "warning": "string | null"
}

POST /api/admin/mediaserver/connect/start may change

Start signing in with the provider

Begins the broker flow. No server is chosen yet - that happens after confirmation.

Fields and shape

Request body

FieldType
providerstring

Response

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response shape

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

DELETE /api/admin/mediaserver/connection may change

Disconnect the media server

The users' links stay in place: reconnect the same server later and everything is still there. Use the consequences endpoint first to see who this would affect.

Fields and shape

Parameters

providerstring or null query
bestaetigtboolean query

GET /api/admin/mediaserver/connection/folgen may change

Who a disconnect would affect

Who would be affected - before the click, not after. Anyone who signs in through the media server and has no password of their own would be locked out.

Fields and shape

Parameters

providerstring or null query

Response

FieldType
verknuepftnumber required
gefaehrdetlist of BetroffenesKonto required

Response shape

{
  "verknuepft": "number",
  "gefaehrdet": [
    {
      "id": "number",
      "username": "string",
      "display_name": "string | null"
    }
  ]
}

GET /api/admin/mediaserver/library may change

State of the library comparison

Per provider when one is named. The card sits on the page of one server; without provider it would show a total that belongs to no server in particular.

Fields and shape

Parameters

providerstring or null query

Response

FieldType
countnumber required
updated_attimestamp (ISO 8601) or null

Response shape

{
  "count": "number",
  "updated_at": "ISO 8601 | null"
}

POST /api/admin/mediaserver/library/refresh may change

Compare the library now

In normal operation this happens in the background. The button is for the moment right after connecting - and so there is any way at all to see whether the connection works.

Fields and shape

Parameters

providerstring or null query

Response

FieldType
countnumber required
updated_attimestamp (ISO 8601) or null

Response shape

{
  "count": "number",
  "updated_at": "ISO 8601 | null"
}

POST /api/auth/mediaserver/link/password may change

Link a media-server account with a password

Attaches a media-server account to the Nexview account you are already signed in to.

Fields and shape

Request body

FieldType
providerstring required
usernamestring required
passwordstring required

Response

FieldType
statusstring required
userUserPublic or null

Response shape

{
  "status": "string",
  "user": {
    "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/mediaserver/link/poll may change

Check whether the link was confirmed

Polls the broker; once the user has confirmed in the provider's window, the link is made.

Fields and shape

Request body

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
userUserPublic or null

Response shape

{
  "status": "string",
  "user": {
    "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/mediaserver/link/start may change

Start linking a media-server account

Opens the broker flow for attaching a media-server account to the account you are signed in to.

Fields and shape

Response

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response shape

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

POST /api/auth/mediaserver/login/password may change

Sign in with media-server credentials

Signs in to Nexview using the username and password of the media server.

Fields and shape

Request body

FieldType
providerstring required
usernamestring required
passwordstring required

Response

FieldType
statusstring required
tokensTokenPair or null

Response shape

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

POST /api/auth/mediaserver/login/poll may change

Check whether the sign-in was confirmed

Polls the broker; once confirmed, returns Nexview tokens for the linked account.

Fields and shape

Request body

FieldType
poll_tokenstring required

Response

FieldType
statusstring required
tokensTokenPair or null

Response shape

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

POST /api/auth/mediaserver/login/start may change

Start signing in via the media server

Opens the broker flow for signing in to Nexview with a media-server account.

Fields and shape

Response

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response shape

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

POST /api/watchlist/connect/poll may change

Check whether the watchlist link was confirmed

Stores the personal access once confirmed. It has to be the same account that is already linked - otherwise somebody could hang a stranger's watchlist on their own profile.

Fields and shape

Request body

FieldType
poll_tokenstring required

Response

FieldType
statusstring
connectedboolean required
linkedboolean required

Response shape

{
  "status": "string",
  "connected": "boolean",
  "linked": "boolean"
}

POST /api/watchlist/connect/start may change

Start linking a watchlist

Opens the provider flow for granting Nexview access to a personal watchlist.

Fields and shape

Response

FieldType
poll_tokenstring required
codestring required
auth_urlstring required

Response shape

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

GET /api/watchlist/plex may change

Your Plex watchlist

What is on the linked watchlist, and which of it is already here.

Fields and shape

Response

FieldType
movieslist of MediaItem required
serieslist of MediaItem required
unmatchednumber required

Response shape

{
  "movies": [
    {
      "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"
    }
  ],
  "series": [
    {
      "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"
    }
  ],
  "unmatched": "number"
}

GET /api/watchlist/status may change

Is a watchlist available

Whether a personal access exists and whether an account is linked.

Fields and shape

Response

FieldType
statusstring
connectedboolean required
linkedboolean required

Response shape

{
  "status": "string",
  "connected": "boolean",
  "linked": "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.