Skip to main content

Settings

Endpoints for managing system settings and configuration.

Authentication

Most settings endpoints require admin authorization.

EndpointAuth Level
GET /api/settings/*Admin (most)
PUT /api/settings/*Admin
GET /api/healthPublic
GET /api/readyPublic
GET /api/system/statusPublic

System health

Returns the health status of the application and its dependencies.

GET /api/health

Response codes

CodeDescription
200Healthy
503Unhealthy (one or more services failing)

Response schema

{
"status": "string",
"version": "string",
"checks": {
"database": {
"status": "string",
"responseTime": "number"
},
"downloadClients": {
"status": "string",
"clients": [
{
"id": "string",
"name": "string",
"status": "string"
}
]
},
"indexers": {
"status": "string",
"enabledCount": "integer",
"totalCount": "integer"
}
},
"timestamp": "string"
}

Status values

StatusDescription
healthyService is functioning normally
degradedService is working with issues
unhealthyService is not functioning

Example request

curl http://localhost:3000/api/health

Example response

{
"status": "healthy",
"version": "2.1.0",
"checks": {
"database": {
"status": "healthy",
"responseTime": 15.2
},
"downloadClients": {
"status": "healthy",
"clients": [
{
"id": "c10e8400-e29b-41d4-a716-446655440030",
"name": "qBittorrent",
"status": "healthy"
}
]
},
"indexers": {
"status": "healthy",
"enabledCount": 5,
"totalCount": 8
}
},
"timestamp": "2024-01-15T10:30:00Z"
}

Readiness check

Returns whether the application is ready to accept traffic.

GET /api/ready

Response codes

CodeDescription
200Ready
503Not ready

Response schema

{
"ready": "boolean",
"timestamp": "string"
}

System status

Returns detailed status of background services.

GET /api/system/status

Response schema

{
"services": [
{
"name": "string",
"status": "string",
"lastRun": "string",
"nextRun": "string",
"uptime": "number"
}
],
"timestamp": "string"
}

Service status values

StatusDescription
pendingService not yet started
startingService is initializing
readyService is running normally
errorService encountered an error

List settings

Returns all system settings.

GET /api/settings

Response codes

CodeDescription
200Success
401Authentication required
403Admin authorization required

Response schema

{
"settings": [
{
"key": "string",
"value": "any",
"type": "string",
"category": "string",
"description": "string",
"updatedAt": "string"
}
]
}

Get setting

Returns a specific setting value.

GET /api/settings/:key

Path parameters

ParameterTypeDescription
keystringSetting key

Response codes

CodeDescription
200Success
401Authentication required
403Admin authorization required
404Setting not found

Response schema

{
"key": "string",
"value": "any",
"type": "string",
"category": "string",
"description": "string",
"updatedAt": "string"
}

Update setting

Updates a system setting.

PUT /api/settings/:key

Path parameters

ParameterTypeDescription
keystringSetting key

Request body schema

FieldTypeRequiredDescription
valueanyYesNew setting value

Response codes

CodeDescription
200Success
400Invalid value
401Authentication required
403Admin authorization required
404Setting not found

Response schema

{
"success": "boolean",
"key": "string",
"value": "any",
"updatedAt": "string"
}

Example request

curl -X PUT \
-H "Content-Type: application/json" \
-H "x-api-key: cinephage_your_key_here" \
-d '{"value": true}' \
http://localhost:3000/api/settings/autoUnmonitorPreviouslyDownloadedMovies

TMDB settings

Get TMDB settings

GET /api/settings/tmdb

Response schema

{
"apiKey": "string",
"language": "string",
"certificationCountry": "string",
"useSsl": "boolean",
"cacheEnabled": "boolean",
"cacheTtl": "integer"
}

Update TMDB settings

PUT /api/settings/tmdb

Request body schema

FieldTypeRequiredDescription
apiKeystringNoTMDB API key
languagestringNoPreferred language
certificationCountrystringNoCertification country code
useSslbooleanNoUse SSL connections
cacheEnabledbooleanNoEnable response caching
cacheTtlintegerNoCache TTL in seconds

Filter settings

Get filter settings

GET /api/settings/filters

Response schema

{
"minimumSeeders": "integer",
"retention": "integer",
"rssSyncInterval": "integer",
"enableCompletedDownloadHandling": "boolean",
"removeCompletedDownloads": "boolean",
"removeFailedDownloads": "boolean"
}

Update filter settings

PUT /api/settings/filters

Request body schema

FieldTypeRequiredDescription
minimumSeedersintegerNoMinimum seeders for torrents
retentionintegerNoMaximum age in days
rssSyncIntervalintegerNoRSS sync interval in minutes
enableCompletedDownloadHandlingbooleanNoAuto-process completed downloads
removeCompletedDownloadsbooleanNoRemove from client when complete
removeFailedDownloadsbooleanNoRemove from client when failed

External URL settings

Get external URL

GET /api/settings/external-url

Response schema

{
"externalUrl": "string",
"basePath": "string",
"useSsl": "boolean"
}

Update external URL

PUT /api/settings/external-url

Request body schema

FieldTypeRequiredDescription
externalUrlstringNoExternal access URL
basePathstringNoBase path for reverse proxy
useSslbooleanNoUse SSL in generated URLs

API key management

List API keys

GET /api/settings/system/api-keys

Response codes

CodeDescription
200Success
401Authentication required
403Admin authorization required

Response schema

{
"keys": [
{
"id": "string",
"name": "string",
"type": "string",
"createdAt": "string",
"lastUsedAt": "string"
}
]
}

Generate API key

POST /api/settings/system/api-keys

Request body schema

FieldTypeRequiredDescription
namestringYesKey name
typestringYesKey type (main, streaming)

Response schema

{
"success": "boolean",
"key": {
"id": "string",
"name": "string",
"type": "string",
"value": "string",
"createdAt": "string"
}
}
warning

The value field is only returned on creation. Save it securely as it cannot be retrieved again.

Regenerate API key

POST /api/settings/system/api-keys/:id/regenerate

Invalidates the old key and generates a new one.

Response schema

{
"success": "boolean",
"key": {
"id": "string",
"value": "string",
"updatedAt": "string"
}
}

Log streaming

SSE endpoint for real-time log streaming.

GET /api/settings/logs/stream

Response format

Server-Sent Events stream with log entries.

Event format

event: log
data: {"level":"info","message":"...","timestamp":"...","source":"..."}

Log levels

LevelDescription
debugDebug information
infoInformational messages
warnWarning messages
errorError messages

Download logs

Downloads the log file.

GET /api/settings/logs/download

Response codes

CodeDescription
200Success (file download)
401Authentication required
403Admin authorization required

Setting categories

CategoryDescription
generalGeneral application settings
mediaMedia management settings
downloadDownload client settings
indexerIndexer settings
notificationNotification settings
uiUser interface settings
securitySecurity and authentication settings

See Also