Skip to content

API Keys

The API Keys page is a unified credential vault. Every key Sublarr sends out — to OpenSubtitles, Jimaku, SubDL, Sonarr, Radarr, Plex, Jellyfin, Emby, TMDB, TVDB, and the LLM backends — is listed here, with test buttons, rotation flags, and import/export. It’s the audit trail you reach for when something stops authenticating.

TypeUsed byWhere it’s also editable
Provider keyOpenSubtitles, Jimaku, SubDL, Whisper, Subgen, othersSettings → Providers
Arr keySonarr, RadarrSettings → Connections
Media server tokenPlex, Jellyfin, EmbySettings → Connections
Metadata keyTMDB, TVDB, AniDBSettings → Connections → Metadata
LLM keyAnthropic, OpenAI, Gemini, DeepSeek, Mistral, DeepL, AzureSettings → Translation → Backends
Inbound API keyThe X-Api-Key callers must present to talk to SublarrSettings → System → Security

Editing a key on its origin page (e.g. on Settings → Providers) and editing it here change the same database row.

Some providers support multiple keys rotated automatically when one hits a daily quota. Each key carries:

FieldEffect
LabelHuman-readable identifier (“Free tier” / “Paid”).
KeyThe credential itself. Masked in the UI; shown when editing.
Tierfree / paid — affects rotation order.
Username / PasswordOptional — required by some providers.
EnabledToggle without deleting. Disabled keys aren’t tried.

Sublarr cycles through enabled keys in paid → free order, retrying on 429 and rotating to the next key when the current one is rate-limited. The Test button next to each key dry-runs the provider’s auth endpoint and reports the result without touching real subtitle traffic.

The page header has a Test all button that round-trips every enabled key in parallel, reporting status as OK, failed, or rate-limited per row. Use it after a config import or when subtitle searches start failing en masse — it tells you in one view which credentials are the problem.

Below the key list:

ButtonFormatWhat it does
ExportZIPBundles config.json (with every secret masked as ***configured***), your language profiles, and glossary into one archive. Credentials never leave Sublarr in the clear.
ImportZIP / CSVReads a Sublarr ZIP export (config + profiles + glossary) or a CSV of keys. Any value still masked with *** is skipped, so re-importing your own export never wipes a live key.
Bulk pasteCSVPaste rows of service,key_name,key_value to load many keys at once during first-time setup.

The last section is the API key Sublarr expects on incoming requests (the X-Api-Key header):

FieldEffect
Current keyThe active value. Click reveal to show.
GenerateCreates a new random key (32 hex chars). The old key remains valid until Save — preventing self-lockout.
Disable authSets the key to empty. Sublarr accepts unauthenticated requests.

Every key change writes to Activity → History with the operator user, the field, and a redacted before/after. Use the History filter on subsystem = api_keys to retrieve the full audit trail for compliance or post-incident review.