Skip to main content
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