openapi: 3.1.0 info: title: Profilarr API version: 1.0.0 license: name: MIT url: https://opensource.org/licenses/MIT contact: name: Profilarr url: https://github.com/Dictionarry-Hub/profilarr description: | Profilarr manages configuration for Radarr and Sonarr by syncing curated configuration databases into Arr instances. servers: - url: /api/v1 description: API v1 tags: - name: System description: Health checks, system status, and API metadata. - name: Jobs description: Job queue status and polling - name: Backups description: Backup creation, listing, download, upload, and settings - name: Entity Testing description: Release parsing and custom format evaluation - name: Arr description: Arr instance management, library, and sync endpoints - name: PCD description: PCD entity export and portable format endpoints - name: Databases description: Linked database instance management - name: Regex description: Regex pattern validation security: - apiKey: [] - session: [] paths: /arr: $ref: './paths/arr.yaml#/instances' /databases: $ref: './paths/databases.yaml#/databases' /databases/{id}: $ref: './paths/databases.yaml#/database' /databases/{id}/sync: $ref: './paths/databases.yaml#/database_sync' /health: $ref: './paths/system.yaml#/health' /status: $ref: './paths/system.yaml#/status' /openapi.json: $ref: './paths/system.yaml#/openapi' /jobs/{id}: $ref: './paths/jobs.yaml#/job' /backups: $ref: './paths/backups.yaml#/backups' /backups/{filename}: $ref: './paths/backups.yaml#/backup_file' /backups/upload: $ref: './paths/backups.yaml#/upload' /backups/settings: $ref: './paths/backups.yaml#/settings' /entity-testing/evaluate: $ref: './paths/entity-testing.yaml#/evaluate' /arr/library: $ref: './paths/arr.yaml#/library' /arr/library/episodes: $ref: './paths/arr.yaml#/episodes' /arr/releases: $ref: './paths/arr.yaml#/releases' /arr/sync-entity: $ref: './paths/arr.yaml#/sync-entity' /pcd/export: $ref: './paths/pcd.yaml#/export' /pcd/import: $ref: './paths/pcd.yaml#/import' /regex/validate: $ref: './paths/regex.yaml#/validate' components: securitySchemes: apiKey: type: apiKey in: header name: X-Api-Key description: API key for programmatic access. Generate in Settings > Security. session: type: apiKey in: cookie name: session description: Session cookie set after browser login. schemas: # Common HealthStatus: $ref: './schemas/common.yaml#/HealthStatus' ErrorResponse: $ref: './schemas/common.yaml#/ErrorResponse' # Health HealthCheckResponse: $ref: './schemas/health.yaml#/HealthCheckResponse' # Status StatusResponse: $ref: './schemas/status.yaml#/StatusResponse' StatusDatabase: $ref: './schemas/status.yaml#/StatusDatabase' StatusDatabaseCounts: $ref: './schemas/status.yaml#/StatusDatabaseCounts' StatusArr: $ref: './schemas/status.yaml#/StatusArr' StatusArrSync: $ref: './schemas/status.yaml#/StatusArrSync' StatusArrSyncQualityProfiles: $ref: './schemas/status.yaml#/StatusArrSyncQualityProfiles' StatusArrSyncSection: $ref: './schemas/status.yaml#/StatusArrSyncSection' StatusArrDrift: $ref: './schemas/status.yaml#/StatusArrDrift' StatusJobs: $ref: './schemas/status.yaml#/StatusJobs' StatusBackups: $ref: './schemas/status.yaml#/StatusBackups' # Entity Testing MediaType: $ref: './schemas/entity-testing.yaml#/MediaType' ParsedInfo: $ref: './schemas/entity-testing.yaml#/ParsedInfo' ReleaseInput: $ref: './schemas/entity-testing.yaml#/ReleaseInput' ReleaseEvaluation: $ref: './schemas/entity-testing.yaml#/ReleaseEvaluation' EvaluateRequest: $ref: './schemas/entity-testing.yaml#/EvaluateRequest' EvaluateResponse: $ref: './schemas/entity-testing.yaml#/EvaluateResponse' # Arr - Shared ArrType: $ref: './schemas/arr.yaml#/ArrType' CustomFormatRef: $ref: './schemas/arr.yaml#/CustomFormatRef' ScoreBreakdownItem: $ref: './schemas/arr.yaml#/ScoreBreakdownItem' ProfileByDatabase: $ref: './schemas/arr.yaml#/ProfileByDatabase' # Arr - Library RadarrLibraryItem: $ref: './schemas/arr.yaml#/RadarrLibraryItem' SonarrSeasonItem: $ref: './schemas/arr.yaml#/SonarrSeasonItem' SonarrLibraryItem: $ref: './schemas/arr.yaml#/SonarrLibraryItem' SonarrEpisodeItem: $ref: './schemas/arr.yaml#/SonarrEpisodeItem' LibraryResponse: $ref: './schemas/arr.yaml#/LibraryResponse' EpisodesResponse: $ref: './schemas/arr.yaml#/EpisodesResponse' CacheInvalidatedResponse: $ref: './schemas/arr.yaml#/CacheInvalidatedResponse' # Arr - Releases GroupedRelease: $ref: './schemas/arr.yaml#/GroupedRelease' ReleasesResponse: $ref: './schemas/arr.yaml#/ReleasesResponse' # Arr - Sync Entity SyncEntityRequest: $ref: './schemas/arr.yaml#/SyncEntityRequest' SyncEntitySuccessResponse: $ref: './schemas/arr.yaml#/SyncEntitySuccessResponse' SyncEntityCooldownResponse: $ref: './schemas/arr.yaml#/SyncEntityCooldownResponse' # PCD EntityType: $ref: './schemas/pcd.yaml#/EntityType' ExportResponse: $ref: './schemas/pcd.yaml#/ExportResponse' PcdErrorResponse: $ref: './schemas/pcd.yaml#/PcdErrorResponse' BundledDependency: $ref: './schemas/pcd.yaml#/BundledDependency' ImportConflict: $ref: './schemas/pcd.yaml#/ImportConflict' ConflictResolution: $ref: './schemas/pcd.yaml#/ConflictResolution' ImportRequest: $ref: './schemas/pcd.yaml#/ImportRequest' ImportResponse: $ref: './schemas/pcd.yaml#/ImportResponse' # Arr ArrInstance: $ref: './schemas/arr.yaml#/ArrInstance' # Databases DatabaseInstance: $ref: './schemas/databases.yaml#/DatabaseInstance' CreateDatabaseInput: $ref: './schemas/databases.yaml#/CreateDatabaseInput' UpdateDatabaseInput: $ref: './schemas/databases.yaml#/UpdateDatabaseInput' SyncTriggerResponse: $ref: './schemas/databases.yaml#/SyncTriggerResponse' # Regex ValidateRegexRequest: $ref: './schemas/regex.yaml#/ValidateRegexRequest' ValidateRegexResponse: $ref: './schemas/regex.yaml#/ValidateRegexResponse' # Jobs JobStatus: $ref: './schemas/jobs.yaml#/JobStatus' JobSource: $ref: './schemas/jobs.yaml#/JobSource' JobRunResult: $ref: './schemas/jobs.yaml#/JobRunResult' JobResponse: $ref: './schemas/jobs.yaml#/JobResponse' # Backups BackupFile: $ref: './schemas/backups.yaml#/BackupFile' BackupCreateResponse: $ref: './schemas/backups.yaml#/BackupCreateResponse' BackupUploadResponse: $ref: './schemas/backups.yaml#/BackupUploadResponse' BackupSettings: $ref: './schemas/backups.yaml#/BackupSettings' BackupSettingsUpdate: $ref: './schemas/backups.yaml#/BackupSettingsUpdate'