Tdarr v2 API Reference¶
Base URL: http://<host>:8265/api/v2
All POST endpoints use Content-Type: application/json. Request bodies wrapped in { "data": { ... } }.
Server Status¶
GET /status¶
Returns status of server.
Response: 200 — Object with status, isProduction, os, version, buildDate, uptime
Database (CRUD)¶
POST /cruddb¶
Interact with the Tdarr database.
Collections:
- FileJSONDB — Scanned files
- LibrarySettingsJSONDB — Library configurations
- StatisticsJSONDB — Statistics
- NodeJSONDB — Node configurations
- SettingsGlobalJSONDB — Global settings
- StagedJSONDB — Staged files
- F2FOutputJSONDB — File-to-file output
- FlowsJSONDB — Flow configurations
Modes:
| Mode | Required Fields | Description |
|---|---|---|
insert |
collection, docID, obj | Insert document |
getById |
collection, docID | Get single document |
getAll |
collection | Get all documents |
update |
collection, docID, obj | Update document keys |
removeOne |
collection, docID | Remove single document |
removeAll |
collection | Remove all documents |
Request:
Search¶
POST /search-db¶
Returns array of files.
Request:
POST /search-plugins¶
Returns array of plugins.
Request:
POST /search-flow-plugins¶
Searches for flow plugins.
Request:
POST /search-flow-templates¶
Searches for flow templates.
Request:
Nodes¶
GET /get-nodes¶
Returns all nodes.
Response: 200 — Object
POST /update-node¶
Updates a node.
Request:
POST /restart-node¶
Restarts a node.
Request:
POST /disconnect-node¶
Force disconnects a node.
POST /poll-worker-limits¶
Polls worker limits and queue lengths for a node.
File Scanning¶
POST /scan-files¶
Scans files.
Request:
POST /scan-individual-file¶
Scans a single file.
Request:
{
"data": {
"scanTypes": {
"exifToolScan": true,
"mediaInfoScan": true,
"hasVideoStream": true,
"ffprobeScan": true
},
"filePath": "/media/video/file.mkv",
"dbID": "library-id-here"
}
}
POST /get-filescanner-status¶
Gets file scanner status for a database.
POST /kill-file-scanner¶
Kills the file scanner for a database.
Workers¶
POST /cancel-worker-item¶
Cancels a worker item.
POST /kill-worker¶
Kills a worker.
POST /alter-worker-limit¶
Change worker type limits.
Request:
Files¶
POST /delete-file¶
Deletes a file.
POST /delete-unhealthy-files¶
Deletes unhealthy files from a table.
POST /remove-library-files¶
Removes all files from a library.
POST /set-all-status¶
Sets status of all records in a table.
Libraries & Scheduling¶
POST /toggle-folder-watch¶
Toggles folder watch status.
POST /toggle-schedule¶
Toggles schedule of a file or folder.
POST /update-schedule-block¶
Updates schedule block status.
POST /remove-library-files¶
Removes all files from a library.
Codec & Plugin Filtering¶
POST /add-video-codec-exclude¶
Adds a video codec exclude.
POST /update-video-codec-exclude¶
Updates a video codec exclude.
POST /remove-video-codec-exclude¶
Removes a video codec exclude.
POST /add-audio-codec-exclude¶
Adds an audio codec exclude.
POST /update-audio-codec-exclude¶
Updates audio codec exclude status.
POST /remove-audio-codec-exclude¶
Removes audio codec exclude status.
POST /add-plugin-include¶
Adds a plugin include.
POST /update-plugin-include¶
Updates plugin include status.
POST /remove-plugin-include¶
Removes plugin include status.
Plugins¶
POST /get-res-stats¶
Returns resource statistics.
POST /create-plugin¶
Creates a new plugin.
POST /read-plugin-text¶
Reads plugin text.
POST /save-plugin-text¶
Saves plugin text.
POST /delete-plugin¶
Deletes a plugin.
POST /copy-community-to-local¶
Copies community plugin to local.
POST /verify-plugin¶
Verifies a plugin.
POST /read-plugin¶
Reads a plugin file.
POST /update-plugins¶
Updates all plugins.
POST /sync-plugins¶
Syncs plugins.
GET /download-plugins¶
Downloads plugin zip file.
Backups¶
POST /get-backup-status¶
Get backup status.
POST /get-backups¶
Get backups.
POST /create-backup¶
Creates a backup file.
POST /delete-backup¶
Deletes a backup file.
POST /reset-backup-status¶
Resets backup status.
Other¶
POST /get-db-statuses¶
Returns statuses of all databases.
POST /get-time-now¶
Returns current time.
POST /verify-folder-exists¶
Verifies folder existence.
POST /get-subdirectories¶
Returns subdirectories of a folder.
POST /create-sample¶
Creates a sample file.
POST /run-help-command¶
Runs FFmpeg/HandBrake command.
POST /performance-stats¶
Returns performance stats.
POST /client-clienttype¶
Get client data.
POST /item-proc-end¶
Processing of item completed.
POST /transcode-user-verdict¶
Transcode user verdict.
POST /read-job-file¶
Reads a job file.
POST /list-footprintid-reports¶
Lists reports for a footprint ID.
GET /get-server-log¶
Returns server log file.
POST /get-node-log¶
Returns log file for a node.
Key Collections Schema¶
LibrarySettingsJSONDB¶
Libraries define source/output folders and scan config.
FlowsJSONDB¶
Flows define transcode pipelines (source filter → transcode → health check → output).
NodeJSONDB¶
Nodes define worker instances (CPU/GPU transcode workers, health check workers).
FileJSONDB¶
Scanned files with metadata (codec, size, duration, health status).
Typical Setup Flow (API)¶
POST /cruddb— Insert library intoLibrarySettingsJSONDBGET /get-nodes— Verify InternalNode registeredPOST /cruddb— Insert flow intoFlowsJSONDBPOST /scan-files— Trigger file scan on library- Monitor via
POST /get-db-statusesandPOST /performance-stats