mirror of
https://github.com/soulis-1256/assemblrr.git
synced 2026-08-29 17:41:40 +00:00
122 lines
4.9 KiB
Markdown
122 lines
4.9 KiB
Markdown
# assemblrr API & Developer Troubleshooting Guide
|
|
|
|
This guide documents the API authentication methods, service endpoints, and `curl` troubleshooting recipes used by assemblrr's automation and developers.
|
|
|
|
---
|
|
|
|
## Service Authentication Quick Reference
|
|
|
|
assemblrr services generate API keys during initial boot. Extract them using the paths below:
|
|
|
|
| Service | Port | Config / Secret Location | Auth Header / Query Parameter |
|
|
| :--- | :--- | :--- | :--- |
|
|
| **Radarr** | `7878` | `config/radarr/config.xml` | `?apikey=$KEY` or `X-Api-Key: $KEY` |
|
|
| **Sonarr** | `8989` | `config/sonarr/config.xml` | `?apikey=$KEY` or `X-Api-Key: $KEY` |
|
|
| **Prowlarr** | `9696` | `config/prowlarr/config.xml` | `?apikey=$KEY` or `X-Api-Key: $KEY` |
|
|
| **Bazarr** | `6767` | `secrets/bazarr_api_key.txt` | `?apikey=$KEY` or `X-API-KEY: $KEY` |
|
|
| **Seerr** | `5055` | `config/seerr/settings.json` | `X-Api-Key: $KEY` |
|
|
| **Jellyfin** | `8096` | `secrets/jellyfin_api_key.txt` | `X-Emby-Token: $KEY` or `Authorization: MediaBrowser Token="$KEY"` |
|
|
| **qBittorrent** | `8080` | `config/qbittorrent/` | Cookie-based auth via `/api/v2/auth/login` |
|
|
|
|
### Quick Key Extraction (Bash Snippet)
|
|
```bash
|
|
RADARR_KEY=$(sed -n 's/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p' config/radarr/config.xml | head -1)
|
|
SONARR_KEY=$(sed -n 's/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p' config/sonarr/config.xml | head -1)
|
|
PROWLARR_KEY=$(sed -n 's/.*<ApiKey>\(.*\)<\/ApiKey>.*/\1/p' config/prowlarr/config.xml | head -1)
|
|
BAZARR_KEY=$(cat secrets/bazarr_api_key.txt 2>/dev/null)
|
|
JELLYFIN_KEY=$(cat secrets/jellyfin_api_key.txt 2>/dev/null)
|
|
```
|
|
|
|
---
|
|
|
|
## Radarr & Sonarr (*arr API v3) Recipes
|
|
|
|
### 1. Quality Profiles
|
|
* **List all profiles:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/qualityprofile?apikey=$RADARR_KEY" | jq '.[] | {id: .id, name: .name}'
|
|
```
|
|
* **Inspect a specific profile:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/qualityprofile/1?apikey=$RADARR_KEY" | jq .
|
|
```
|
|
* **Delete an orphaned profile:**
|
|
```bash
|
|
curl -s -X DELETE "http://127.0.0.1:7878/api/v3/qualityprofile/8?apikey=$RADARR_KEY"
|
|
```
|
|
|
|
### 2. Media Management & Hardlinks
|
|
* **Inspect Media Management config:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/config/mediamanagement?apikey=$RADARR_KEY" | jq '{copyUsingHardlinks, recycleBin, recycleBinCleanupDays}'
|
|
```
|
|
* **Disable recycle bin and verify hardlinks:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/config/mediamanagement?apikey=$RADARR_KEY" \
|
|
| jq '.copyUsingHardlinks = true | .recycleBin = "" | .recycleBinCleanupDays = 0' \
|
|
| curl -s -X PUT "http://127.0.0.1:7878/api/v3/config/mediamanagement?apikey=$RADARR_KEY" -H "Content-Type: application/json" -d @-
|
|
```
|
|
|
|
### 3. Root Folders
|
|
* **List root folders and default profile IDs:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/rootfolder?apikey=$RADARR_KEY" | jq .
|
|
```
|
|
|
|
### 4. Queue & Active Downloads
|
|
* **Inspect download queue:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:7878/api/v3/queue?apikey=$RADARR_KEY" | jq '.records[] | {id: .id, title: .title, status: .status, downloadId: .downloadId}'
|
|
```
|
|
* **Drain a specific queue item from *arr and download client:**
|
|
```bash
|
|
curl -s -X DELETE "http://127.0.0.1:7878/api/v3/queue/123?apikey=$RADARR_KEY&removeFromClient=true&blocklist=false"
|
|
```
|
|
|
|
---
|
|
|
|
## Seerr & Seerr Gateway Recipes
|
|
|
|
`seerr-gateway` sits on port `5055` as a sidecar proxying Overseas/Jellyseerr.
|
|
|
|
* **List pending/approved requests:**
|
|
```bash
|
|
curl -s "http://127.0.0.1:5055/api/v1/request?take=20" -H "X-Api-Key: $SEERR_KEY" | jq '.results[] | {id: .id, type: .type, media: .media.tmdbId, status: .status}'
|
|
```
|
|
* **Test request-delete cascade:**
|
|
```bash
|
|
curl -i -X DELETE "http://127.0.0.1:5055/api/v1/request/42" -H "X-Api-Key: $SEERR_KEY"
|
|
```
|
|
*(Responses will include `X-Assemblrr-Purge-Detail` headers indicating queue drains and media deletions.)*
|
|
|
|
---
|
|
|
|
## Recyclarr Maintenance Recipes
|
|
|
|
* **Trigger Recyclarr sync manually:**
|
|
```bash
|
|
docker exec recyclarr recyclarr sync
|
|
```
|
|
* **List TRaSH guide IDs available for Radarr/Sonarr:**
|
|
```bash
|
|
docker exec recyclarr recyclarr list quality-profiles radarr
|
|
docker exec recyclarr recyclarr list quality-profiles sonarr
|
|
docker exec recyclarr recyclarr list custom-formats radarr
|
|
```
|
|
|
|
---
|
|
|
|
## Official API Documentation Links
|
|
|
|
| Service | Official Documentation | Notes |
|
|
| :--- | :--- | :--- |
|
|
| **Radarr** | https://radarr.video/docs/api/ | OpenAPI / Swagger UI |
|
|
| **Sonarr** | https://sonarr.tv/docs/api/ | v3 OpenAPI spec (covers Sonarr v3 and v4) |
|
|
| **Prowlarr** | https://prowlarr.com/docs/api/ | OpenAPI / Swagger UI |
|
|
| **Bazarr** | https://wiki.bazarr.media/ | Companion subtitle manager API |
|
|
| **Seerr** | https://api-docs.overseerr.dev/ | Jellyseerr / Overseerr Swagger UI |
|
|
| **Jellyfin** | https://api.jellyfin.org/ | OpenAPI stable spec |
|
|
| **qBittorrent** | https://github.com/qbittorrent/qBittorrent/wiki/WebUI-API-(qBittorrent-4.1) | Web API Reference |
|
|
| **Servarr Wiki** | https://wiki.servarr.com/ | Servarr community configuration & troubleshooting |
|
|
|
|
|