# Connectors
Each connector scrapes a specific service and exposes Prometheus metrics. All connectors share the [common configuration options](configuration.md#common-options). This page documents service-specific options, behaviors, and metrics.
A global metric `scraparr_services_up` (labels: `alias`, `scraparr_services`) is set to `1` on successful scrape and `0` on failure for every connector.
---
Sonarr
TV series management
**Default API version:** `v3`
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `episode_quality_stats` | bool | `true` | Fetch episode files per series to calculate quality breakdowns. Generates N extra API calls (one per series, parallelized). Disable for performance on large libraries. |
| `exclude` | list | `[]` | Root folder paths to exclude from metrics |
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `sonarr_last_scrape` | alias | all |
| `sonarr_scrape_duration` | alias | all |
| `sonarr_start_time` | alias | all |
| `sonarr_build_time` | alias | all |
| `sonarr_queue_count` | alias | all |
| `sonarr_queue_error` | alias | all |
| `sonarr_queue_warning` | alias | all |
| `sonarr_series` / `_total` | alias, path | all |
| `sonarr_episodes` / `_total` | alias, path | all |
| `sonarr_disk_size` / `_total` | alias, path | all |
| `sonarr_free_disk_size` | alias, path | all |
| `sonarr_available_disk_size` | alias, path | all |
| `sonarr_quality_episodes` / `_total` | alias, quality, path | all |
| `sonarr_genres_count` / `_total` | alias, genre, path | all |
| `sonarr_missing_episodes` / `_total` | alias, path | all |
| `sonarr_monitored_series` / `_total` | alias, path | all |
| `sonarr_unmonitored_series` / `_total` | alias, path | all |
| `sonarr_continuing_series` / `_total` | alias, path | all |
| `sonarr_upcoming_series` / `_total` | alias, path | all |
| `sonarr_ended_series` / `_total` | alias, path | all |
| `sonarr_deleted_series` / `_total` | alias, path | all |
| `sonarr_series_episodes` | alias, series | detailed |
| `sonarr_series_seasons` | alias, series | detailed |
| `sonarr_series_download_percentage` | alias, series | detailed |
| `sonarr_series_monitored` | alias, series | detailed |
| `sonarr_series_disk_size` | alias, series | detailed |
| `sonarr_series_missing_episodes` | alias, series | detailed |
---
Radarr
Movie management
**Default API version:** `v3`
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `exclude` | list | `[]` | Root folder paths to exclude from metrics |
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `radarr_last_scrape` | alias | all |
| `radarr_scrape_duration` | alias | all |
| `radarr_start_time` | alias | all |
| `radarr_build_time` | alias | all |
| `radarr_queue_count` | alias | all |
| `radarr_queue_error` | alias | all |
| `radarr_queue_warning` | alias | all |
| `radarr_movies` / `_total` | alias, path | all |
| `radarr_disk_size` / `_total` | alias, path | all |
| `radarr_free_disk_size` | alias, path | all |
| `radarr_available_disk_size` | alias, path | all |
| `radarr_quality_movies` / `_total` | alias, quality, path | all |
| `radarr_genres_count` / `_total` | alias, genre, path | all |
| `radarr_missing_movies` / `_total` | alias, path | all |
| `radarr_monitored_movies` / `_total` | alias, path | all |
| `radarr_unmonitored_movies` / `_total` | alias, path | all |
| `radarr_tba_movies` / `_total` | alias, path | all |
| `radarr_in_cinemas_movies` / `_total` | alias, path | all |
| `radarr_announced_movies` / `_total` | alias, path | all |
| `radarr_released_movies` / `_total` | alias, path | all |
| `radarr_deleted_movies` / `_total` | alias, path | all |
| `radarr_movie_missing` | alias, movie | detailed |
| `radarr_movie_files` | alias, movie | detailed |
| `radarr_movie_monitored` | alias, movie | detailed |
| `radarr_movie_disk_size` | alias, movie | detailed |
---
Prowlarr
Indexer management
**Default API version:** `v1`
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `prowlarr_last_scrape` | alias | all |
| `prowlarr_scrape_duration` | alias | all |
| `prowlarr_start_time` | alias | all |
| `prowlarr_build_time` | alias | all |
| `prowlarr_applications_total` | alias | all |
| `prowlarr_application_enabled_total` | alias | all |
| `prowlarr_application_sync_level_total` | alias, sync_level | all |
| `prowlarr_indexer_count` | alias, type | all |
| `prowlarr_indexer_count_total` | alias | all |
| `prowlarr_indexer_enabled_total` | alias | all |
| `prowlarr_indexer_privacy` | alias, type, privacy | all |
| `prowlarr_indexer_privacy_total` | alias, privacy | all |
| `prowlarr_vip_expiration` | alias, indexer | all |
| `prowlarr_queries_by_indexer` / `_total` | alias, indexer | all |
| `prowlarr_failed_queries_by_indexer` / `_total` | alias, indexer | all |
| `prowlarr_grabs_by_indexer` / `_total` | alias, indexer | all |
| `prowlarr_queries_by_user_agent` / `_total` | alias, user_agent | all |
| `prowlarr_grabs_by_user_agent` / `_total` | alias, user_agent | all |
| `prowlarr_queries_by_host` / `_total` | alias, host | all |
| `prowlarr_grabs_by_host` / `_total` | alias, host | all |
| `prowlarr_response_time_by_indexer_milliseconds` / `_total` | alias, indexer | all |
| `prowlarr_grab_response_time_by_indexer_milliseconds` / `_total` | alias, indexer | all |
| `prowlarr_application_enabled` | alias, application | detailed |
| `prowlarr_application_sync_level` | alias, application, sync_level | detailed |
| `prowlarr_indexer_enabled` | alias, type, indexer | detailed |
| `prowlarr_indexer_status` | alias, indexer, status | detailed |
| `prowlarr_indexer_healthy` | alias, indexer | detailed |
---
Lidarr
Music management
**Default API version:** `v1`
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `exclude` | list | `[]` | Root folder paths to exclude from metrics |
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `lidarr_last_scrape` | alias | all |
| `lidarr_scrape_duration` | alias | all |
| `lidarr_start_time` | alias | all |
| `lidarr_build_time` | alias | all |
| `lidarr_queue_count` | alias | all |
| `lidarr_queue_error` | alias | all |
| `lidarr_queue_warning` | alias | all |
| `lidarr_artists` / `_total` | alias, path | all |
| `lidarr_disk_size` / `_total` | alias, path | all |
| `lidarr_free_disk_size` | alias, path | all |
| `lidarr_available_disk_size` | alias, path | all |
| `lidarr_monitored_artists` / `_total` | alias, path | all |
| `lidarr_unmonitored_artists` / `_total` | alias, path | all |
| `lidarr_quality_tracks` / `_total` | alias, quality, path | all |
| `lidarr_release_type_count` / `_total` | alias, type, path | all |
| `lidarr_missing_releases` / `_total` | alias, path | all |
| `lidarr_monitored_releases` / `_total` | alias, path | all |
| `lidarr_unmonitored_releases` / `_total` | alias, path | all |
| `lidarr_continuing_artists` / `_total` | alias, path | all |
| `lidarr_inactive_artists` / `_total` | alias, path | all |
| `lidarr_artist_tracks` | alias, artist | detailed |
| `lidarr_artist_releases` | alias, artist | detailed |
| `lidarr_artist_monitored` | alias, artist | detailed |
| `lidarr_artist_disk_size` | alias, artist | detailed |
| `lidarr_artist_missing_releases` | alias, artist | detailed |
**Note:** Makes 2 extra API calls per artist (albums + track files). Missing releases are releases where `percentOfTracks` is not 100% on monitored releases.
---
Readarr
Book management
**Default API version:** `v1`
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `exclude` | list | `[]` | Root folder paths to exclude from metrics |
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `readarr_last_scrape` | alias | all |
| `readarr_scrape_duration` | alias | all |
| `readarr_start_time` | alias | all |
| `readarr_build_time` | alias | all |
| `readarr_free_disk_size` | alias, path | all |
| `readarr_available_disk_size` | alias, path | all |
| `readarr_queue_count` | alias | all |
| `readarr_queue_error` | alias | all |
| `readarr_queue_warning` | alias | all |
| `readarr_author_status` | alias, status | all |
| `readarr_author_rating_total` | alias | all |
| `readarr_book_genres` | alias, genre | all |
| `readarr_book_disk_size_total` | alias | all |
| `readarr_book_rating_total` | alias | all |
| `readarr_author_disk_size` | alias, author | detailed |
| `readarr_author_book_count` | alias, author | detailed |
| `readarr_author_rating` | alias, author | detailed |
| `readarr_book_disk_size` | alias, book | detailed |
| `readarr_book_rating` | alias, book | detailed |
| `readarr_book_percentage` | alias, book | detailed |
---
Bazarr
Subtitle management
**Default API version:** not used (direct `/api/` paths)
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `bazarr_last_scrape` | alias | all |
| `bazarr_scrape_duration` | alias | all |
| `bazarr_start_time` | alias | all |
| `bazarr_build_time` | alias | all |
| `bazarr_series_total` | alias | all |
| `bazarr_movies_total` | alias | all |
| `bazarr_wanted_episodes_total` | alias | all |
| `bazarr_wanted_movies_total` | alias | all |
| `bazarr_providers` | alias | all |
| `bazarr_provider_status` | alias, provider, status | all |
| `bazarr_wanted_episodes` | alias, series | detailed |
| `bazarr_wanted_movies` | alias, movie | detailed |
**Note:** Only counts series/movies that have a subtitle profile assigned (`profileId` is not null).
---
Jellyfin
Media server
**Default API version:** not used (direct API paths)
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `within` | int | `300` | Time window in seconds for active sessions |
| `session_details` | bool | `false` | Enable per-stream metrics (position, transcoding, bitrate) |
| `client_info` | bool | `false` | Enable client version info (requires `session_details: true`) |
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `jellyfin_last_scrape` | alias | all |
| `jellyfin_scrape_duration` | alias | all |
| `jellyfin_version` | alias, version | all |
| `jellyfin_has_update` | alias | all |
| `jellyfin_number_of_devices` | alias | all |
| `jellyfin_number_of_users` | alias | all |
| `jellyfin_number_of_movies` | alias | all |
| `jellyfin_number_of_series` | alias | all |
| `jellyfin_genres_total` | alias, genre | all |
| `jellyfin_sessions_total` | alias | all |
| `jellyfin_sessions` | alias, user_id, user_name | detailed |
| `jellyfin_session_position_seconds` | alias, username, device, client, type, method | session_details |
| `jellyfin_session_duration_seconds` | (same) | session_details |
| `jellyfin_session_transcoding` | (same) | session_details |
| `jellyfin_session_paused` | (same) | session_details |
| `jellyfin_session_bitrate_bits` | (same) | session_details |
| `jellyfin_session_client_info` | alias, username, device, client, client_version | client_info |
**Note:** Jellyfin uses `Authorization: Mediabrowser Token=` header format instead of `X-Api-Key`.
---
Kavita
Reading server for manga, comics, and books
**Default API version:** not used (direct `/api/` paths)
### Additional Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `legacy_auth` | bool | `false` | Use JWT authentication instead of `x-api-key` header. Required for older Kavita versions. |
The `exclude` option accepts **library names or IDs** (not root folder paths like other connectors).
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `kavita_last_scrape` | alias | all |
| `kavita_scrape_duration` | alias | all |
| `kavita_api_key_expiration` | alias | all |
| `kavita_version` | alias, version | all |
| `kavita_is_docker` | alias | all |
| `kavita_series_count` | alias | all |
| `kavita_volume_count` | alias | all |
| `kavita_chapter_count` | alias | all |
| `kavita_total_files` | alias | all |
| `kavita_total_size_bytes` | alias | all |
| `kavita_total_genres` | alias | all |
| `kavita_total_tags` | alias | all |
| `kavita_total_people` | alias | all |
| `kavita_total_reading_time` | alias | all |
| `kavita_library_count` | alias | all |
| `kavita_library_series_count` | alias, library | all |
| `kavita_library_folder_watching` | alias, library | all |
| `kavita_library_scrobbling` | alias, library | all |
| `kavita_library_type` | alias, library, type | all |
| `kavita_library_total_pages` | alias, library | all |
| `kavita_library_total_word_count` | alias, library | all |
| `kavita_library_avg_reading_time_hours` | alias, library | all |
| `kavita_library_genre_count` | alias, library, genre | all |
| `kavita_library_format_count` | alias, library, format | all |
| `kavita_publication_status_count` | alias, status | all |
| `kavita_manga_format_count` | alias, format | all |
| `kavita_user_count` | alias | all |
| `kavita_file_extension_count` | alias, extension | all |
| `kavita_file_extension_size_bytes` | alias, extension | all |
| `kavita_series_pages` | alias, library, series | detailed |
| `kavita_series_word_count` | alias, library, series | detailed |
| `kavita_series_pages_read` | alias, library, series | detailed |
| `kavita_series_user_rating` | alias, library, series | detailed |
| `kavita_series_avg_hours_to_read` | alias, library, series | detailed |
| `kavita_series_min_hours_to_read` | alias, library, series | detailed |
| `kavita_series_max_hours_to_read` | alias, library, series | detailed |
| `kavita_series_format` | alias, library, series, format | detailed |
---
Komga
Media server for comics and manga
**Default API version:** not used (direct `/api/` paths, mixes v1 and v2)
The `exclude` option accepts **library names or IDs** (not root folder paths like other connectors).
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `komga_last_scrape` | alias | all |
| `komga_scrape_duration` | alias | all |
| `komga_version` | alias, version | all |
| `komga_library_count` | alias | all |
| `komga_library_series_count` | alias, library | all |
| `komga_library_books_count` | alias, library | all |
| `komga_series_count` | alias | all |
| `komga_series_status_count` | alias, status | all |
| `komga_book_count` | alias | all |
| `komga_book_media_status_count` | alias, status | all |
| `komga_collection_count` | alias | all |
| `komga_readlist_count` | alias | all |
| `komga_user_count` | alias | all |
| `komga_library_genre_count` | alias, library, genre | detailed |
| `komga_series_books_count` | alias, library, series | detailed |
| `komga_series_books_unread` | alias, library, series | detailed |
| `komga_series_books_read` | alias, library, series | detailed |
| `komga_series_books_in_progress` | alias, library, series | detailed |
---
SABnzbd
Usenet download client
**Default API version:** not used (single `/api` endpoint)
**Note:** SABnzbd passes the API key as a query parameter (`?apikey=`) instead of using headers.
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `sabnzbd_last_scrape` | alias | all |
| `sabnzbd_scrape_duration` | alias | all |
| `sabnzbd_queue_speed_bytes` | alias | all |
| `sabnzbd_queue_size_bytes` | alias | all |
| `sabnzbd_queue_remaining_bytes` | alias | all |
| `sabnzbd_queue_slots` | alias | all |
| `sabnzbd_queue_paused` | alias | all |
| `sabnzbd_disk_space_bytes` | alias | all |
| `sabnzbd_disk_space_total_bytes` | alias | all |
| `sabnzbd_history_total_bytes` | alias | all |
| `sabnzbd_history_day_bytes` | alias | all |
| `sabnzbd_history_week_bytes` | alias | all |
| `sabnzbd_history_month_bytes` | alias | all |
| `sabnzbd_history_failed_jobs` | alias | all |
| `sabnzbd_server_total_bytes` | alias, server | all |
| `sabnzbd_server_day_bytes` | alias, server | all |
| `sabnzbd_server_week_bytes` | alias, server | all |
| `sabnzbd_server_month_bytes` | alias, server | all |
| `sabnzbd_server_articles_tried` | alias, server | all |
| `sabnzbd_server_articles_success` | alias, server | all |
**Note:** SABnzbd does not have a `detailed` mode - all metrics are always exposed. All size values are in bytes.
---
Seerr
Media request management (Jellyseerr, Overseerr)
**Default API version:** `v1`
> **Deprecation notice:** The `jellyseerr` and `overseerr` connector names still work but are deprecated. Use `seerr` instead - it produces the same metrics with a `seerr_` prefix.
### Metrics
| Metric | Labels | Mode |
|--------|--------|------|
| `seerr_last_scrape` | alias | all |
| `seerr_scrape_duration` | alias | all |
| `seerr_user_total` | alias | all |
| `seerr_user_requests` | alias, user | all |
| `seerr_request_total` | alias | all |
| `seerr_request_tv` | alias | all |
| `seerr_request_movie` | alias | all |
| `seerr_request_status` | alias, status | all |
| `seerr_request_seasons_total` | alias | all |
| `seerr_issue_total` | alias | all |
| `seerr_issue_status` | alias, status | all |
| `seerr_issue_type` | alias, type | all |
| `seerr_issue_media_type` | alias, media_type | all |
| `seerr_issue_and_media_type` | alias, issue_type, media_type | all |
| `seerr_request_timestamp` | alias, request | detailed |
| `seerr_request_seasons` | alias, request | detailed |
| `seerr_issue_title` | alias, issue | detailed |
| `seerr_issue_created` | alias, issue | detailed |
| `seerr_issue_updated` | alias, issue | detailed |
**Note:** When `detailed` is enabled, title resolution makes parallel API calls to TMDB/TVDB endpoints for display names.
---
Whisparr
Adult content management
**Default API version:** `v3`
Shares the same codebase as Sonarr.
### Additional Options
Same as [Sonarr](#sonarr), including `episode_quality_stats` and `exclude`.
### Metrics
Same structure as Sonarr but with `whisparr_` prefix and uses "sites"/"scenes" terminology instead of "series"/"episodes".
---
Sportarr
Sports event management
**Default API version:** `v3`
Sportarr exposes a Sonarr-v3-compatible API, so this connector shares the
Sonarr codebase.
### Additional Options
Same as [Sonarr](#sonarr), including `episode_quality_stats` and `exclude`.
### Metrics
Same structure as Sonarr but with `sportarr_` prefix - leagues surface as
"series" and events as "episodes".