Skip to main content

Overview

The Server Configuration API provides endpoints to retrieve and update server configuration settings. These endpoints allow administrators to manage server behavior, metadata options, branding, and other system-wide settings.

Get Server Configuration

Retrieves the complete server configuration.

Endpoint

GET /System/Configuration

Authentication

Required. Any authenticated user can retrieve the configuration.

Response

Returns a ServerConfiguration object with all server settings.

Example Request

curl -X GET "https://your-jellyfin-server/System/Configuration" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY"

Example Response

{
  "ServerName": "My Jellyfin Server",
  "EnableMetrics": false,
  "QuickConnectAvailable": true,
  "MetadataPath": "/config/metadata",
  "PreferredMetadataLanguage": "en",
  "MetadataCountryCode": "US",
  "UICulture": "en-US",
  "MinResumePct": 5,
  "MaxResumePct": 90,
  "MinResumeDurationSeconds": 300,
  "LibraryMonitorDelay": 60,
  "EnableFolderView": false,
  "DisplaySpecialsWithinSeasons": true,
  "CorsHosts": ["*"],
  "ActivityLogRetentionDays": 30,
  "AllowClientLogUpload": true
}

Response Codes

  • 200 - Configuration retrieved successfully

Update Server Configuration

Updates the complete server configuration.

Endpoint

POST /System/Configuration

Authentication

Required. User must have elevated permissions (administrator).

Request Body

Send a complete ServerConfiguration object with the desired settings.
configuration
object
required
Complete ServerConfiguration object with updated values

Example Request

curl -X POST "https://your-jellyfin-server/System/Configuration" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ServerName": "My Updated Server",
    "EnableMetrics": true,
    "PreferredMetadataLanguage": "en",
    "MetadataCountryCode": "US",
    "MinResumePct": 5,
    "MaxResumePct": 90
  }'

Response Codes

  • 204 - Configuration updated successfully
  • 403 - User does not have permission to update configuration

Get Named Configuration

Retrieves a specific named configuration section.

Endpoint

GET /System/Configuration/{key}

Authentication

Required.

Path Parameters

key
string
required
The configuration key/section name (e.g., “branding”, “encoding”)

Response

Returns the configuration object for the specified key.

Example Request

curl -X GET "https://your-jellyfin-server/System/Configuration/branding" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY"

Example Response

{
  "LoginDisclaimer": "Welcome to My Jellyfin Server",
  "CustomCss": "",
  "SplashscreenEnabled": false
}

Response Codes

  • 200 - Configuration retrieved successfully

Update Named Configuration

Updates a specific named configuration section.

Endpoint

POST /System/Configuration/{key}

Authentication

Required. User must have elevated permissions (administrator).

Path Parameters

key
string
required
The configuration key/section name

Request Body

configuration
object
required
Configuration object with updated values

Example Request

curl -X POST "https://your-jellyfin-server/System/Configuration/branding" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "LoginDisclaimer": "Welcome!",
    "CustomCss": "body { background-color: #000; }",
    "SplashscreenEnabled": true
  }'

Response Codes

  • 204 - Configuration updated successfully
  • 403 - User does not have permission to update configuration

Get Default Metadata Options

Retrieves the default MetadataOptions object.

Endpoint

GET /System/Configuration/MetadataOptions/Default

Authentication

Required. User must have elevated permissions (administrator).

Response

Returns a default MetadataOptions object.

Example Request

curl -X GET "https://your-jellyfin-server/System/Configuration/MetadataOptions/Default" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY"

Example Response

{
  "ItemType": "",
  "DisabledMetadataSavers": [],
  "LocalMetadataReaderOrder": [],
  "DisabledMetadataFetchers": [],
  "MetadataFetcherOrder": [],
  "DisabledImageFetchers": [],
  "ImageFetcherOrder": []
}

Response Codes

  • 200 - Default metadata options retrieved successfully
  • 403 - User does not have permission

Update Branding Configuration

Updates the branding configuration for the server.

Endpoint

POST /System/Configuration/Branding

Authentication

Required. User must have elevated permissions (administrator).

Request Body

LoginDisclaimer
string
Custom text to display on the login page
CustomCss
string
Custom CSS to apply to the web interface
SplashscreenEnabled
boolean
Whether to enable the custom splashscreen

Example Request

curl -X POST "https://your-jellyfin-server/System/Configuration/Branding" \
  -H "Authorization: MediaBrowser Token=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "LoginDisclaimer": "Welcome to My Custom Server!",
    "CustomCss": ".header { color: blue; }",
    "SplashscreenEnabled": true
  }'

Response Codes

  • 204 - Branding configuration updated successfully
  • 403 - User does not have permission to update branding configuration

Notes

  • Configuration changes may require a server restart to take full effect
  • Always retrieve the current configuration before updating to avoid overwriting unintended settings
  • Some configuration options affect server performance and should be adjusted carefully
  • Branding configuration updates only modify the specified properties and preserve other settings