Deploy a unified server that combines all PraisonAI provider types in a single endpoint.
CLI
Expected Output:
Python
create_unified_app(..., api_key=...) now installs the _api_auth middleware on every mounted route except /health. Existing callers that were passing api_key= but not sending Authorization: Bearer / X-API-Key from clients will start getting 401 — this closes a silent auth-bypass on the tool-driving routes.
Security
praisonai serve unified mounts tool-driving routes (notably POST /v1/tools/invoke via mount_provider_routes), so binding it to a non-localhost interface without authentication is refused.
Binding to any host other than 127.0.0.1 / localhost / ::1 requires an API key. The server exits immediately (SystemExit) if neither --api-key nor PRAISONAI_SERVE_API_KEY is set.
Clients send the key in Authorization: Bearer … or X-API-Key: …. The /health route is public.
Unified Endpoints
Discovery Document
Response:
Client Usage
Use the unified endpoints CLI to interact with any provider:
CLI Options
Environment Variables
Provider Types
Troubleshooting