Skip to content
Area

Operations

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

23 addresses

GET /api/about may change

Version and build

Which version of Nexview this is, and whether a newer one is known. Useful for telling deployments apart and for deciding whether a feature you rely on exists yet.

Fields and shape

Response

FieldType
versionstring required
repo_urlstring required
release_urlstring required
licensestring
update_checkedboolean
latest_versionstring or null
update_availableboolean
checked_attimestamp (ISO 8601) or null

Response shape

{
  "version": "string",
  "repo_url": "string",
  "release_url": "string",
  "license": "string",
  "update_checked": "boolean",
  "latest_version": "string | null",
  "update_available": "boolean",
  "checked_at": "ISO 8601 | null"
}

POST /api/about/check may change

Check for updates now

Looks for a newer release immediately instead of waiting for the daily check.

Fields and shape

Response

FieldType
versionstring required
repo_urlstring required
release_urlstring required
licensestring
update_checkedboolean
latest_versionstring or null
update_availableboolean
checked_attimestamp (ISO 8601) or null

Response shape

{
  "version": "string",
  "repo_url": "string",
  "release_url": "string",
  "license": "string",
  "update_checked": "boolean",
  "latest_version": "string | null",
  "update_available": "boolean",
  "checked_at": "ISO 8601 | null"
}

GET /api/about/neuigkeiten may change

Is there something new to read

Whether this installation has been updated since the administrator last acknowledged the release notes, and to which version.

Fields and shape

Response

FieldType
versionstring required
offenboolean required
zuletzt_gesehenstring or null

Response shape

{
  "version": "string",
  "offen": "boolean",
  "zuletzt_gesehen": "string | null"
}

POST /api/about/neuigkeiten/gesehen may change

Acknowledge the release notes

"Understood, stop showing this" - until the next update. What is stored is the version, not a tick, so the banner comes back by itself after the next release that has something to say.

Fields and shape

Response

FieldType
versionstring required
offenboolean required
zuletzt_gesehenstring or null

Response shape

{
  "version": "string",
  "offen": "boolean",
  "zuletzt_gesehen": "string | null"
}

GET /api/config may change

Public configuration

What the interface needs to know before anybody signs in: which media-server providers exist, whether watchlists are enabled, the minimum password length, the default region.

Fields and shape

Response

FieldType
default_regionstring required
default_languagestring required
tmdb_configuredboolean required
radarr_configuredboolean required
sonarr_configuredboolean required
using_demo_databoolean required
min_password_lengthnumber required
mail_configuredboolean required
public_url_setboolean required
approver_picks_target_movieboolean required
approver_picks_target_tvboolean required
radarr_uhd_configuredboolean required
sonarr_uhd_configuredboolean required
mediaserver_configuredboolean required
mediaserver_providerslist of string required
mediaserver_availablelist of string required
mediaserver_password_loginlist of string required
mediaserver_watchlist_availablelist of string required
mediaserver_watchlist_connectedlist of string required
watchlist_enabledboolean required

Response shape

{
  "default_region": "string",
  "default_language": "string",
  "tmdb_configured": "boolean",
  "radarr_configured": "boolean",
  "sonarr_configured": "boolean",
  "using_demo_data": "boolean",
  "min_password_length": "number",
  "mail_configured": "boolean",
  "public_url_set": "boolean",
  "approver_picks_target_movie": "boolean",
  "approver_picks_target_tv": "boolean",
  "radarr_uhd_configured": "boolean",
  "sonarr_uhd_configured": "boolean",
  "mediaserver_configured": "boolean"
}

GET /api/config/regions may change

Selectable regions

The countries somebody can pick as their region. Deliberately fetched from TMDB rather than kept in the source: a fixed list goes stale and silently limits who can use this.

Fields and shape

Response

FieldType
codestring required
namestring required

Response shape

[
  {
    "code": "string",
    "name": "string"
  }
]

GET /api/health may change

Is Nexview running

Answers without a token - a monitor that has to sign in first is not a monitor. Returns nothing but a status, on purpose: no version, no database state, nothing that would tell an unauthenticated caller about the installation.

DELETE /api/logs may change

Clear the log

Empties the log file. What is gone is gone; there is no second copy.

GET /api/logs may change

The most recent log lines

level means "this level and above". Administrators only - log lines name accounts and addresses.

Fields and shape

Parameters

levelDEBUG | INFO | WARNING | ERROR | CRITICAL or null query
searchstring or null query
limitnumber query

Response

FieldType
timestring required
levelstring required
loggerstring required
messagestring required
request_idstring or null
userstring or null

Response shape

[
  {
    "time": "string",
    "level": "string",
    "logger": "string",
    "message": "string",
    "request_id": "string | null",
    "user": "string | null"
  }
]

GET /api/logs/level may change

Current log level

Which level is being written, and until when - the more talkative levels switch themselves off again.

Fields and shape

Response

FieldType
modestring required
untilstring or null
fixed_by_envboolean
modeslist of string
durationslist of number

Response shape

{
  "mode": "string",
  "until": "string | null",
  "fixed_by_env": "boolean",
  "modes": [
    "string"
  ],
  "durations": [
    "number"
  ]
}

PUT /api/logs/level may change

Change the log level

Takes effect immediately, without a restart. The talkative levels carry an expiry so a debugging session cannot quietly fill the disk for weeks.

Fields and shape

Request body

FieldType
modequiet | normal | detailed | trace required
minutesnumber

Response

FieldType
modestring required
untilstring or null
fixed_by_envboolean
modeslist of string
durationslist of number

Response shape

{
  "mode": "string",
  "until": "string | null",
  "fixed_by_env": "boolean",
  "modes": [
    "string"
  ],
  "durations": [
    "number"
  ]
}

GET /api/settings may change

All settings

The whole configuration of this installation. Secrets come back masked, never in the clear. Administrators only.

PUT /api/settings may change

Change settings

⚠️ An empty secret field means "unchanged", not "delete". Otherwise the masked value from the interface would be written back over the real one. Use the delete endpoint to actually remove a key.

Fields and shape

Request body

FieldType
tmdb_api_keystring or null
radarr_urlstring or null
radarr_api_keystring or null
sonarr_urlstring or null
sonarr_api_keystring or null
default_regionstring or null
default_languagestring or null
poll_interval_secondsnumber or null
demo_modestring or null
default_movie_profile_idstring or null
default_series_profile_idstring or null
movie_root_folder_modestring or null
series_root_folder_modestring or null
movie_profile_modestring or null
series_profile_modestring or null
default_movie_rootstring or null
default_series_rootstring or null
radarr_uhd_urlstring or null
radarr_uhd_api_keystring or null
sonarr_uhd_urlstring or null
sonarr_uhd_api_keystring or null
default_movie_uhd_profile_idstring or null
default_series_uhd_profile_idstring or null
default_movie_uhd_rootstring or null
default_series_uhd_rootstring or null
smtp_hoststring or null
smtp_portnumber or null
smtp_securitystring or null
smtp_usernamestring or null
smtp_passwordstring or null
smtp_from_addressstring or null
smtp_from_namestring or null
public_urlstring or null
update_checkboolean or null
backup_scheduleoff | daily | weekly | monthly or null
backup_keepnumber or null
mediaserver_auto_importboolean or null
mediaserver_default_rolestring or null
watchlist_enabledboolean or null
quota_default_moviesnumber or null
quota_default_seriesnumber or null
storage_default_limit_gbnumber or null
quota_periodday | week | month or null

GET /api/settings/recyclebin may change

Where deleted files go

The recycle-bin path configured in every Radarr and Sonarr instance. Fetched fresh on every call and stored nowhere - it lives over there, and a copy here would go stale without anybody noticing.

Fields and shape

Response

FieldType
enabledboolean required
completeboolean required
instanceslist of PapierkorbInstanz required

Response shape

{
  "enabled": "boolean",
  "complete": "boolean",
  "instances": [
    {
      "media_type": "string",
      "tier": "string",
      "name": "string",
      "reachable": "boolean",
      "path": "string",
      "cleanup_days": "number | null",
      "protected": "boolean"
    }
  ]
}

PUT /api/settings/recyclebin may change

Set the recycle-bin path

⚠️ This writes into Radarr and Sonarr, not into Nexview. The setting applies over there to everything, including deletions that had nothing to do with Nexview.

Fields and shape

Request body

FieldType
instanceslist of PapierkorbWunsch required
cleanup_daysnumber

Response

FieldType
enabledboolean required
completeboolean required
instanceslist of PapierkorbInstanz required

Response shape

{
  "enabled": "boolean",
  "complete": "boolean",
  "instances": [
    {
      "media_type": "string",
      "tier": "string",
      "name": "string",
      "reachable": "boolean",
      "path": "string",
      "cleanup_days": "number | null",
      "protected": "boolean"
    }
  ]
}

GET /api/settings/recyclebin/contents may change

What is in the recycle bins

Folder names only - no posters, no tidied-up titles. Resolving the names back to titles would mean a TMDB lookup per folder for something that is, in the end, a list of directories.

Fields and shape

Parameters

media_typemovie | tv or null query
tierstandard | uhd or null query
pathstring query

Response

FieldType
instanceslist of PapierkorbInhaltInstanz required

Response shape

{
  "instances": [
    {
      "name": "string",
      "path": "string",
      "entries": [
        "string"
      ],
      "truncated": "boolean"
    }
  ]
}

GET /api/settings/recyclebin/folders may change

Which folders one instance sees

Asked per instance rather than once for all: Sonarr can be mounted entirely differently from Radarr, and a path that exists for one may not exist for the other.

Fields and shape

Parameters

media_typemovie | tv query required
tierstandard | uhd query
pathstring query

Response

FieldType
pathstring required
directorieslist of string required

Response shape

{
  "path": "string",
  "directories": [
    "string"
  ]
}

DELETE /api/settings/secret/{name} may change

Remove a stored secret

The explicit way to delete an API key, because an empty field on save means "unchanged".

Fields and shape

Parameters

nametmdb_api_key | radarr_api_key | radarr_uhd_api_key | sonarr_api_key | sonarr_uhd_api_key | smtp_password | mediaserver_token path required

POST /api/settings/test-mail may change

Send a test mail

Sends a fully formatted test message to the given address, so the result shows what a real notification will look like.

Fields and shape

Request body

FieldType
recipientstring required

Response

FieldType
okboolean required
messagestring required

Response shape

{
  "ok": "boolean",
  "message": "string"
}

POST /api/settings/test/public-url may change

Is Nexview reachable at this address

The server calls itself from the outside to find out. Deliberately with its own short-lived client, so nothing from the normal connection pool can make an unreachable address look reachable.

Fields and shape

Request body

FieldType
urlstring required

Response

FieldType
okboolean required
messagestring required

Response shape

{
  "ok": "boolean",
  "message": "string"
}

POST /api/settings/test/smtp may change

Test the mail server

Checks connection and authentication without sending anything.

Fields and shape

Request body

FieldType
hoststring or null
portnumber or null
securitystring or null
usernamestring or null
passwordstring or null

Response

FieldType
okboolean required
messagestring required

Response shape

{
  "ok": "boolean",
  "message": "string"
}

POST /api/settings/test/tmdb may change

Test the TMDB key

Checks whether the given TMDB API key works.

Fields and shape

Request body

FieldType
api_keystring or null
urlstring or null

Response

FieldType
okboolean required
messagestring required

Response shape

{
  "ok": "boolean",
  "message": "string"
}

POST /api/settings/test/{service} may change

Test Radarr or Sonarr

Checks the connection to the standard or 4K instance. Uses the values passed in if they have not been saved yet, so a connection can be tested before it is stored.

Fields and shape

Parameters

serviceradarr | sonarr | radarr_uhd | sonarr_uhd path required

Request body

FieldType
api_keystring or null
urlstring or null

Response

FieldType
okboolean required
messagestring required

Response shape

{
  "ok": "boolean",
  "message": "string"
}

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.