Get panel settings
/settings/panel/read Read: looks, changes nothing. Scopes
How the panel itself behaves (timeouts, cleanup, imports, mass changes): the values, and each one's label, help, bounds and default. Needs the permission to view or change panel settings.
Response
200 OK
valuesobjectrequiredEvery setting, by name.
stream_token_lifetimeintegerHow long a play URL stays usable once the panel hands it out. Links are single-use and only have to survive the redirect to the streaming server, so keep this short: a long lifetime lets a captured link be replayed.
preview_conversionsintegerA browser that cannot play a channel as it is (HEVC or MPEG-2 video, AC-3 sound on most computers) is sent the preview converted, by the server that streams it: about half a processor core for the picture (or the video card), almost nothing for the sound alone. Each one stops when its preview closes, or after 10 minutes. At most this many at once on each server; 0 = never (the preview then says what it cannot play).
session_timeoutintegerStreaming servers report who is watching every 30 seconds. A session not mentioned for this long is closed and its connection slot freed. Too short closes sessions of people still watching when one report is late; too long keeps dead sessions holding a line's connections.
fresh_session_timeoutintegerA session opened for a play request whose player never reached the streaming server is removed after this long, so failed plays do not hold a line's connection slots. Only has to outlast the redirect.
disconnect_cooldownintegerWhen you disconnect a session from Live Connections, that device (same line, IP and player) is refused for this long. Players retry every second, so a short block only delays them. Use Block IP or disable the line to remove someone for good.
restart_counter_windowintegerThe streams list shows how many times each stream restarted within this window — a stream that reads Online after thirty restarts in an hour is flapping, and every restart drops its viewers. Off stops recording restarts and hides the column.
sweeper_intervalintegerHow often the panel looks for sessions and streams that went quiet. Each worker process runs its own pass.
sweep_batch_sizeintegerSession rows one cleanup statement may touch. A pass keeps going until the backlog is drained, so this caps one statement and its locks, not the total work. Keep it small enough that other queries can run in between.
sweep_max_batchesintegerSafety stop on one cleanup pass, so it always returns to its interval even if sessions arrive faster than they are cleared.
session_reconcile_graceintegerA streaming server that is alive but no longer lists a session has dropped that viewer. The panel ends such a session after this grace, which only has to cover a viewer joining while the report was being sent.
status_reconcile_graceintegerSame rule for streams: a stream its server has stopped listing is marked Offline after this long.
session_retention_daysintegerHow many days of ended sessions to keep when the retention on the Activity Logs page is left at its default. The table grows by a row per play request — millions a week on a busy panel — so keeping it forever is only sensible with an external archive.
metrics_retention_daysintegerHow many days of CPU, memory and bandwidth history the dashboard charts can show. The panel keeps one sample per server per minute, about 11 MB per server at 30 days; older samples are removed once an hour.
node_check_intervalintegerHow often the panel checks which streaming servers stopped reporting.
node_heartbeat_timeoutintegerA streaming server not heard from for this long is marked unhealthy and no new stream is sent to it. Servers report every 30 seconds, so the default of 2 minutes allows three missed reports. Never shorter than the check interval.
import_chunk_sizeintegerRows written per database transaction during an import. Larger is fewer round trips; smaller makes progress move more often and loses less to one failure.
import_start_tick_secondsintegerImported streams are started a few at a time so the provider is not flooded. This is the length of one step.
import_starts_per_tickintegerHow many imported streams start in one step, across all providers.
import_starts_per_provider_per_tickintegerThe same limit for one provider. Connection-limited provider lines answer a burst with errors until nothing plays.
import_max_live_per_providerintegerWhen set, starting waits once a provider already has this many streams running. Leave at no limit unless you know the provider's real allowance.
import_start_streams_thresholdintegerThe import wizard suggests importing as on demand instead of starting the streams when more than this many channels are selected — each running stream holds a provider connection. Only a suggestion.
import_max_stall_ticksintegerHow many start steps an import waits for a provider that stays at its connection limit before it stops and reports the streams it could not start.
bulk_max_selectionintegerMost streams one mass edit or delete may cover. Larger selections are refused and have to be split.
bulk_edit_chunk_sizeintegerStreams a mass edit writes per database transaction.
bulk_edit_sync_per_tickintegerAfter a mass edit, streams whose playback settings changed are restarted a few at a time, like an import's starts.
bulk_edit_sync_tick_secondsintegerLength of one restart step after a mass edit.
bulk_edit_sync_scanintegerMost changed streams need no restart (an idle on-demand stream has nothing running). This bounds how many one step looks through to find those that do.
bulk_delete_chunk_sizeintegerStreams a mass delete removes per transaction, with everything they own.
bulk_delete_session_batch_sizeintegerA long-running channel has thousands of session rows. They are removed in batches of this size so no lock is held for long.
bulk_delete_max_stopsintegerEmergency ceiling on how many running streams one delete stops on their servers. Past it, deleted streams keep running on the server until stopped by hand, so leave it at no limit unless you need it.
bulk_delete_background_thresholdintegerDeletes started from the back office run in the background from this many rows. Deletes from the dashboard always run in the background.
line_down_streamsintegerWhen this many channels on one provider line (its server and login) failed to open recently, and almost none on it opened, the Streams page and the provider say the line looks down, with a way to move its streams to another line.
line_down_minutesintegerHow recent those failures must be. Only failures the streaming servers already saw count: nothing is tried just to find out.
provider_warn_daysintegerA provider whose line ends within this many days is shown on the overview and on its page, as is one that is full, refused or switched off by the provider.
source_checks_per_serverinteger"Check sources now" reads each source once through a streaming server, this many at a time per server, and never more at once on one line than the line has free connections.
task_stall_secondsintegerA running task that has made no progress for this long is shown as stalled — usually the panel restarted while it ran — and can be resumed. Too short flags slow tasks that are still working.
background_task_threadsintegerThreads each panel process uses for background work: imports, bulk jobs, messages to streaming servers. Each holds a database connection, so more threads on a small box can exhaust the database. Applies after the panel restarts.
db_deadlock_retriesintegerBulk jobs and cleanup run alongside viewers starting sessions, and the database occasionally cancels one of two colliding transactions. The cancelled one is retried this many times before the job fails.
db_deadlock_backoff_msintegerWait before the first retry; it doubles each time.
db_deadlock_max_backoff_msintegerUpper bound on the doubling wait.
player_api_cache_secondsintegerPlayer apps download the whole channel, film and series lists when they log in. Each list is built once per set of bouquets and reused for this long, so a wave of logins after an outage costs one build rather than one per player. Catalogue changes reach player apps within this time. Off builds every list on every request.
playlist_cache_mbintegerThe film and episode part of a playlist is written once per set of bouquets and reused until the catalogue changes, so a playlist of half a million titles downloads in about a second instead of being rebuilt each time. The least recently downloaded ones are removed past this size. Off builds every playlist on every download.
logo_auto_fillbooleanStreams with no logo get the one Minimus finds for them: new and imported streams within minutes, the others once a day. A logo you set is never replaced.
logo_min_scoreintegerHow sure Minimus must be that a logo is the channel's before a stream gets it, in percent. Higher gives fewer streams a logo, and fewer wrong ones. A stream with a guide channel always gets that channel's logo.
logo_disk_mbintegerLogos found for streams are kept on this panel and served from its own address, so viewers never see another one. Past this size no more are kept. Off: playlists link to the pictures on Minimus instead, which uses no disk.
tidy_unwatched_daysintegerStreams → Tidy up lists streams nobody has watched for this many days. A stream nobody ever watched counts from the day it was added.
tidy_failing_daysintegerStreams → Tidy up lists streams that have not played for this many days and whose every source failed the last time it was tried.
tidy_disabled_daysintegerStreams → Tidy up lists disabled streams nobody has changed for this many days.
reseller_trialsbooleanOff: resellers cannot make trial lines at all, whatever their group allows. Operators always can. Each group sets how many trials its resellers may make (Users → Groups).
api_requests_per_minuteintegerHow many calls one API key, or one connected AI app, may make in a minute. Past it the panel answers "too many requests" until the minute is over, so one runaway script never slows the panel down for everyone.
api_log_daysintegerHow many days each API key's and AI app's calls stay listed. Revoked and ended keys leave the API keys page after as long.
api_log_max_rowsintegerThe list of calls never holds more than this many: past it the oldest go first, whatever their age. Each takes about 200 bytes.
ai_app_access_minutesintegerHow long an AI app's access lasts before it renews it on its own. Shorter means a stolen access is useful for less time; the app renews it without asking the person again.
ai_app_idle_daysintegerAn AI app that is not used for this many days must be approved again. Every use starts the count again. Disconnecting an app (AI apps) ends it at once.
sectionsobject[]requiredHow the settings page groups and explains them.
keystringrequiredtitlestringrequireddescriptionstringrequiredfieldsobject[]requirednamestringrequiredlabelstringrequiredhelpstringrequiredtypestringrequiredintegerorboolean.unitstringrequiredseconds, days, streams… or
switch.defaultanyrequiredzero_meansstringrequiredcan be nullWhat 0 means, when it is a mode ("off").
restart_requiredbooleanrequiredA change applies after the panel restarts.
minintegerrequiredcan be nullmaxintegerrequiredcan be null
updated_atstring (date-time)requiredcan be nullcan_editbooleanrequiredWhether you may change them.
ignored_environmentobject[]requirednamestringrequiredAn old server setting still set on the panel host, now ignored.
settingstringrequiredcan be nullThe setting that replaced it.
pagestringrequiredcan be nullWhere that setting is now.
Errors
- 401 No credential, or one that is wrong, expired or revoked.
- 403 The account, or the key's or app's scopes, may not do this.
- 429 Slow down: wait the seconds in the Retry-After header, then try again.