Skip to content
Area

Notifications

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

32 addresses

GET /api/feedback may change

All feedback

Every quality rating in the installation, for whoever runs it.

Fields and shape

Parameters

unansweredboolean query

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
seasonnumber or null required
ratingnumber required
commentstring or null required
titlestring required
replystring or null required
outdatedboolean required
updated_atstring required
user_namestring

Response shape

[
  {
    "id": "number",
    "media_type": "string",
    "tmdb_id": "number",
    "season": "number | null",
    "rating": "number",
    "comment": "string | null",
    "title": "string",
    "reply": "string | null",
    "outdated": "boolean",
    "updated_at": "string",
    "user_name": "string"
  }
]

GET /api/feedback/mine may change

Your own feedback

The quality ratings the calling account has given, with any replies.

Fields and shape

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
seasonnumber or null required
ratingnumber required
commentstring or null required
titlestring required
replystring or null required
outdatedboolean required
updated_atstring required
user_namestring

Response shape

[
  {
    "id": "number",
    "media_type": "string",
    "tmdb_id": "number",
    "season": "number | null",
    "rating": "number",
    "comment": "string | null",
    "title": "string",
    "reply": "string | null",
    "outdated": "boolean",
    "updated_at": "string",
    "user_name": "string"
  }
]

PUT /api/feedback/{media_type}/{tmdb_id} may change

Rate the quality of a title

How good the downloaded copy is. Anyone may, not just whoever requested it: this is about the file, and everybody watching it sees the same file.

Fields and shape

Parameters

media_typestring path required
tmdb_idnumber path required

Request body

FieldType
ratingnumber required
commentstring or null
titlestring
seasonnumber or null

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
seasonnumber or null required
ratingnumber required
commentstring or null required
titlestring required
replystring or null required
outdatedboolean required
updated_atstring required
user_namestring

Response shape

{
  "id": "number",
  "media_type": "string",
  "tmdb_id": "number",
  "season": "number | null",
  "rating": "number",
  "comment": "string | null",
  "title": "string",
  "reply": "string | null",
  "outdated": "boolean",
  "updated_at": "string",
  "user_name": "string"
}

POST /api/feedback/{rating_id}/reply may change

Reply to a rating

Administrators only. Approvers see the ratings but may not answer them: a reply is a conversation, and that belongs with whoever runs the installation.

Fields and shape

Parameters

rating_idnumber path required

Request body

FieldType
replystring required

Response

FieldType
idnumber required
media_typestring required
tmdb_idnumber required
seasonnumber or null required
ratingnumber required
commentstring or null required
titlestring required
replystring or null required
outdatedboolean required
updated_atstring required
user_namestring

Response shape

{
  "id": "number",
  "media_type": "string",
  "tmdb_id": "number",
  "season": "number | null",
  "rating": "number",
  "comment": "string | null",
  "title": "string",
  "reply": "string | null",
  "outdated": "boolean",
  "updated_at": "string",
  "user_name": "string"
}

DELETE /api/notifications may change

Delete all your notifications

Removes them rather than only marking them read.

GET /api/notifications may change

Your own notifications

Newest first, with their read state.

Fields and shape

Parameters

unread_onlyboolean query
limitnumber query

Response

FieldType
idnumber required
typedownload_complete | approved | rejected | cancelled | request_pending | feedback | feedback_poor | feedback_reply | ticket_new | ticket_reply | user_imported | mediaserver_reconnect | storage_released | storage_kept | storage_deleted | storage_release_requested | storage_grew | storage_scheduled | storage_unscheduled | request_deferred | child_wish | watch_ready | watch_episodes | rating_outdated | request_fulfilled required
message_keystring required
message_titlestring or null required
seasonnumber or null
request_idnumber or null required
ticket_idnumber or null required
is_readboolean required
created_attimestamp (ISO 8601) required

Response shape

[
  {
    "id": "number",
    "type": "download_complete | approved | rejected | cancelled | request_pending | feedback | feedback_poor | feedback_reply | ticket_new | ticket_reply | user_imported | mediaserver_reconnect | storage_released | storage_kept | storage_deleted | storage_release_requested | storage_grew | storage_scheduled | storage_unscheduled | request_deferred | child_wish | watch_ready | watch_episodes | rating_outdated | request_fulfilled",
    "message_key": "string",
    "message_title": "string | null",
    "season": "number | null",
    "request_id": "number | null",
    "ticket_id": "number | null",
    "is_read": "boolean",
    "created_at": "ISO 8601"
  }
]

POST /api/notifications/read-all may change

Mark everything as read

The notifications stay, they are only no longer unread.

GET /api/notifications/unread/count may change

How many unread notifications

A plain number for the bell badge.

DELETE /api/notifications/{notification_id} may change

Delete one notification

Removes a single entry.

Fields and shape

Parameters

notification_idnumber path required

POST /api/notifications/{notification_id}/read may change

Mark one as read

Marks a single notification as read.

Fields and shape

Parameters

notification_idnumber path required

POST /api/settings/channels/{channel}/chats may change

Who wrote to this bot

For a bot that does not exist in the database yet - during setup the token is in the form, not stored. Saves the detour of asking a third-party bot who has written to yours.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

POST /api/settings/channels/{channel}/check may change

Is the instance reachable

Without a code - nothing can arrive there yet. For the upper level of services that have two: a typo in the address should show up before anybody sets up topics underneath it.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber or null query

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

Response

FieldType
okboolean required
messagestring required
valuesobject or null

Response shape

{
  "ok": "boolean",
  "message": "string",
  "values": "object | null"
}

POST /api/settings/channels/{channel}/confirm may change

Confirm the code from the test message

Only after this can the target be saved. Proves that messages actually arrive where they are supposed to.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required

Request body

FieldType
codestring required

Response

FieldType
okboolean required
messagestring required
valuesobject or null

Response shape

{
  "ok": "boolean",
  "message": "string",
  "values": "object | null"
}

GET /api/settings/channels/{channel}/targets may change

All targets of this channel

Every configured target of this service - one card each, topics included.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required

POST /api/settings/channels/{channel}/targets may change

Create a target

Creates an instance - with Gotify, that is also the mailbox.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

POST /api/settings/channels/{channel}/targets/{parent_id}/children may change

Create a topic

Creates a topic inside an existing instance.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
parent_idnumber path required

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

DELETE /api/settings/channels/{channel}/targets/{target_id} may change

Remove a target

Removes the target and everything hanging off it. With an ntfy instance the topics go too - without an address and credentials they would have nothing to talk to.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber path required

PUT /api/settings/channels/{channel}/targets/{target_id} may change

Change a target

Address, credentials and name. Changing what messages arrive there is a separate endpoint.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber path required

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

POST /api/settings/channels/{channel}/targets/{target_id}/chats may change

Who wrote to this stored bot

The same question for a bot that is already saved: whoever sent it /start or added it to a group appears here, so the chat can be picked instead of typed.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber path required

PUT /api/settings/channels/{channel}/targets/{target_id}/enabled may change

Switch a target on or off

Deliberately its own endpoint rather than part of saving: the switch sits on the card and should take effect where it is, without opening a form.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber path required

Request body

FieldType
enabledboolean required

PUT /api/settings/channels/{channel}/targets/{target_id}/events may change

What this mailbox is told about

Only on a confirmed target. Ticks on an unverified one would quietly fill the outbox with messages nobody receives.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber path required

Request body

FieldType
eventsobject required

POST /api/settings/channels/{channel}/test may change

Send a test message with a code

Tests the typed-in values, not the stored ones - test first, save afterwards. The code has to be confirmed before the target counts as working.

Fields and shape

Parameters

channelntfy | gotify | email | telegram | discord | webhook | apprise path required
target_idnumber or null query
parent_idnumber or null query

Request body

FieldType
namestring or null
urlstring or null
topicstring or null
addressstring or null
subjectstring or null
chat_idstring or null
thread_idstring or null
silentstring or null
authstring or null
usernamestring or null
passwordstring or null
tokenstring or null
languagestring or null
eventsobject or null

Response

FieldType
okboolean required
messagestring required
valuesobject or null

Response shape

{
  "ok": "boolean",
  "message": "string",
  "values": "object | null"
}

GET /api/tickets may change

Your tickets

Your own; for an administrator, everyone's.

Fields and shape

Parameters

statusopen | in_progress | closed or null query
user_idnumber or null query

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required

Response shape

[
  {
    "id": "number",
    "subject": "string",
    "status": "open | in_progress | closed",
    "created_at": "ISO 8601",
    "updated_at": "ISO 8601",
    "closed_at": "ISO 8601 | null",
    "last_reply_at": "ISO 8601 | null",
    "last_reply_by": "number | null",
    "media_type": "movie | tv | null",
    "tmdb_id": "number | null",
    "media_title": "string | null",
    "user_id": "number",
    "username": "string",
    "display_name": "string | null"
  }
]

POST /api/tickets may change

Open a ticket

Creates a ticket with a first message. Goes to the administrators.

Fields and shape

Request body

FieldType
subjectstring required
bodystring required
user_idnumber or null
media_typemovie | tv or null
tmdb_idnumber or null
media_titlestring or null

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

POST /api/tickets/delete may change

Delete closed tickets for good

Administrators only. Deliberately POST /delete and not DELETE: a body does not belong on a DELETE, and this needs the list of what to remove.

Fields and shape

Request body

FieldType
ticket_idslist of number required

POST /api/tickets/kontoaufloesung may change

Apply to have your account deleted

For users and approvers. Arrives as an ordinary ticket with the administrators, who see the consequences before they decide.

Fields and shape

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

PATCH /api/tickets/messages/{message_id} may change

Edit a message

Corrects the text of one's own message in a ticket.

Fields and shape

Parameters

message_idnumber path required

Request body

FieldType
bodystring required

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

GET /api/tickets/open-count may change

How many tickets need attention

For the menu badge. For an administrator, everybody's open tickets; for everyone else, their own ones that have been answered.

GET /api/tickets/{ticket_id} may change

One ticket

The ticket with all its messages.

Fields and shape

Parameters

ticket_idnumber path required

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

PATCH /api/tickets/{ticket_id} may change

Set a ticket's state

Administrators only.

Fields and shape

Parameters

ticket_idnumber path required

Request body

FieldType
statusopen | in_progress | closed required

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

POST /api/tickets/{ticket_id}/kinderkonten-freischalten may change

Grant child profiles from a ticket

Settles the application in one click - grants the permission, replies, closes the ticket.

Fields and shape

Parameters

ticket_idnumber path required

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

POST /api/tickets/{ticket_id}/messages may change

Reply in a ticket

Adds a message to the conversation.

Fields and shape

Parameters

ticket_idnumber path required

Request body

FieldType
bodystring required

Response

FieldType
idnumber required
subjectstring required
statusopen | in_progress | closed required
created_attimestamp (ISO 8601) required
updated_attimestamp (ISO 8601) required
closed_attimestamp (ISO 8601) or null required
last_reply_attimestamp (ISO 8601) or null required
last_reply_bynumber or null required
media_typemovie | tv or null required
tmdb_idnumber or null required
media_titlestring or null required
user_idnumber required
usernamestring required
display_namestring or null required
avatar_urlstring or null required
message_countnumber required
opened_bynumber or null required
opened_by_namestring or null required
messageslist of MessageOut required
kinderkonten_offenboolean

Response shape

{
  "id": "number",
  "subject": "string",
  "status": "open | in_progress | closed",
  "created_at": "ISO 8601",
  "updated_at": "ISO 8601",
  "closed_at": "ISO 8601 | null",
  "last_reply_at": "ISO 8601 | null",
  "last_reply_by": "number | null",
  "media_type": "movie | tv | null",
  "tmdb_id": "number | null",
  "media_title": "string | null",
  "user_id": "number",
  "username": "string",
  "display_name": "string | null"
}

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.