A Torznab/Newznab compatible indexer service that allows Prowlarr to use Orionoid as an indexer. This service translates between Prowlarr's indexer protocol and Orionoid's API.
- Full Torznab/Newznab protocol support
- Search by query, IMDb ID, TVDB ID, and TMDB ID
- Support for movies and TV shows
- Configurable search limits
- Docker containerization
- Passive health check endpoint (no API calls, reads in-memory state)
- Optional API key authentication
- Multi-architecture support (amd64, arm64, arm/v7)
docker run -d \
--name prowlarr-orionoid \
-p 8080:8080 \
-e ORIONOID_USER_API_KEY=your_user_api_key \
jamtur01/prowlarr-orionoid:latestCreate a docker-compose.yml file:
services:
prowlarr-orionoid:
image: jamtur01/prowlarr-orionoid:latest
container_name: prowlarr-orionoid
restart: unless-stopped
ports:
- "8080:8080"
environment:
- ORIONOID_USER_API_KEY=your_user_api_keyThen run:
docker-compose up -d- Orionoid Account: You need an active Orionoid account with API access
- Orionoid User API Key: Get from your Orionoid account settings (this is unique to you)
| Variable | Required | Default | Description |
|---|---|---|---|
ORIONOID_USER_API_KEY |
Yes | - | Your Orionoid user API key |
SERVICE_PORT |
No | 8080 | Port to run the service on |
SERVICE_HOST |
No | 0.0.0.0 | Host to bind the service to |
PROWLARR_API_KEY |
No | - | Optional API key for Prowlarr authentication |
DEFAULT_SEARCH_LIMIT |
No | 100 | Default number of results to return |
MAX_SEARCH_LIMIT |
No | 1000 | Maximum allowed search results |
LOG_LEVEL |
No | INFO | Logging level (DEBUG, INFO, WARNING, ERROR) |
-
In Prowlarr, go to Settings → Indexers
-
Click the + button to add a new indexer
-
Select Torznab → Custom Torznab
-
Configure the indexer:
- Name: Orionoid
- Enable RSS: Yes (if desired)
- Enable Automatic Search: Yes
- Enable Interactive Search: Yes
- URL:
http://localhost:8080(or your Docker host IP) - API Path:
/api - API Key: Leave blank unless you set
PROWLARR_API_KEY - Categories: Select desired categories (Movies, TV, etc.)
-
Click Test to verify the connection
-
Save the indexer
This image supports multiple architectures:
linux/amd64- Standard x86-64linux/arm64- ARM 64-bit (Raspberry Pi 4, Apple Silicon)linux/arm/v7- ARM 32-bit (Raspberry Pi 2/3)
GET /health
Returns service status, uptime, and last-known Orionoid API state. Reads passive in-memory state -- never calls the Orionoid API. Returns 200 as long as the HTTP server is running; the response body conveys degraded/warning status.
GET /api?t=caps
Returns the indexer capabilities (supported search types, categories, etc.)
GET /api?t=search&q=query
General search across all categories
GET /api?t=tvsearch&q=query&season=1&ep=1
GET /api?t=tvsearch&tvdbid=12345&season=1&ep=1
Search for TV shows with optional season/episode filtering
GET /api?t=movie&q=query
GET /api?t=movie&imdbid=tt1234567
Search for movies
git clone https://github.com/jamtur01/prowlarr-orionoid.git
cd prowlarr-orionoid
docker build -t prowlarr-orionoid .
docker run -d \
--name prowlarr-orionoid \
-p 8080:8080 \
-e ORIONOID_USER_API_KEY=your_user_api_key \
prowlarr-orionoid-
Install Python 3.11 or higher
-
Clone the repository:
git clone https://github.com/jamtur01/prowlarr-orionoid.git cd prowlarr-orionoid -
Install dependencies:
pip install . -
Create a
.envfile:ORIONOID_USER_API_KEY=your_user_api_key
-
Run the service:
python main.py
- Check that your Orionoid API keys are correct
- Verify the port isn't already in use
- Check Docker logs:
docker logs prowlarr-orionoid
- Verify your Orionoid account has API access
- Check that you haven't exceeded your daily API limits
- Try searching with different queries or IDs
- Ensure the service is running and accessible
- Check the URL and port are correct
- Verify any API key is correctly configured
- The
/healthendpoint shows the last-known API state; check theorionoid_api.messagefield for details - Perform a search to refresh the API status
- Verify Orionoid API keys are valid and quota is not exhausted
prowlarr-orionoid/
├── main.py # FastAPI application
├── orionoid_client.py # Orionoid API client
├── torznab_builder.py # Torznab XML response builder
├── config.py # Configuration management
├── __version__.py # Version information
├── pyproject.toml # Project configuration and dependencies
├── Dockerfile # Docker container definition
├── docker-compose.yml # Docker Compose configuration
├── tests/ # Test suite (pytest)
├── CHANGELOG.md # Version history
└── README.md # This file
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is provided as-is for educational and personal use. Please respect Orionoid's terms of service and API usage limits.