API Keys Catalog
Complete reference for all environment variables required by PraisonAI tools and integrations.Quick Start
LLM Providers
| Provider | Environment Variable | Test Command |
|---|---|---|
| OpenAI | OPENAI_API_KEY | python3 -c "from openai import OpenAI; print(OpenAI().models.list().data[0].id)" |
| Anthropic | ANTHROPIC_API_KEY | python3 -c "import anthropic; print('OK')" |
GOOGLE_API_KEY | python3 -c "import google.generativeai as genai; print('OK')" | |
| Groq | GROQ_API_KEY | python3 -c "from groq import Groq; print('OK')" |
| Mistral | MISTRAL_API_KEY | python3 -c "from mistralai import Mistral; print('OK')" |
| Cohere | COHERE_API_KEY | python3 -c "import cohere; print('OK')" |
| DeepSeek | DEEPSEEK_API_KEY | python3 -c "from openai import OpenAI; print('OK')" |
Vector Databases
| Provider | Environment Variables | Test Command |
|---|---|---|
| Pinecone | PINECONE_API_KEY | python3 -c "from pinecone import Pinecone; pc=Pinecone(); print([i.name for i in pc.list_indexes()])" |
| Weaviate | WEAVIATE_URL, WEAVIATE_API_KEY | python3 -c "import weaviate; from weaviate.classes.init import Auth; c=weaviate.connect_to_weaviate_cloud('$WEAVIATE_URL', Auth.api_key('$WEAVIATE_API_KEY')); print(c.is_ready()); c.close()" |
| Qdrant | QDRANT_URL, QDRANT_API_KEY | python3 -c "from qdrant_client import QdrantClient; print(QdrantClient('http://localhost:6333').get_collections())" |
| ChromaDB | (none - local) | python3 -c "import chromadb; print('OK')" |
| LanceDB | (none - local) | python3 -c "import lancedb; print(lancedb.__version__)" |
| PGVector | PGVECTOR_URL | python3 -c "import psycopg2; c=psycopg2.connect('$PGVECTOR_URL'); print('OK')" |
Conversation Databases
| Provider | Environment Variables | Test Command |
|---|---|---|
| PostgreSQL | POSTGRES_URL | python3 -c "import psycopg2; c=psycopg2.connect('$POSTGRES_URL'); print('OK')" |
| MySQL | MYSQL_URL | python3 -c "import mysql.connector; print('OK')" |
| SQLite | (none - local) | python3 -c "import sqlite3; print('OK')" |
| Supabase | SUPABASE_URL, SUPABASE_KEY | python3 -c "from supabase import create_client; print('OK')" |
| Neon | NEON_DATABASE_URL | python3 -c "import psycopg2; c=psycopg2.connect('$NEON_DATABASE_URL'); print('OK')" |
State Stores
| Provider | Environment Variables | Test Command |
|---|---|---|
| Redis | REDIS_URL | python3 -c "import redis; r=redis.from_url('$REDIS_URL'); print(r.ping())" |
| MongoDB | MONGODB_URI | python3 -c "from pymongo import MongoClient; print(MongoClient('$MONGODB_URI').list_database_names())" |
| DynamoDB | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY | python3 -c "import boto3; print(boto3.client('dynamodb').list_tables())" |
| Firestore | GOOGLE_APPLICATION_CREDENTIALS | python3 -c "from google.cloud import firestore; print('OK')" |
| Upstash | UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN | python3 -c "from upstash_redis import Redis; print('OK')" |
Search & Tools
| Provider | Environment Variables | Test Command |
|---|---|---|
| Tavily | TAVILY_API_KEY | python3 -c "from tavily import TavilyClient; print('OK')" |
| Serper | SERPER_API_KEY | python3 -c "import requests; print('OK')" |
| Firecrawl | FIRECRAWL_API_KEY | python3 -c "from firecrawl import FirecrawlApp; print('OK')" |
Observability
| Provider | Environment Variables | Test Command |
|---|---|---|
| Langfuse | LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_HOST | python3 -c "from langfuse import Langfuse; print('OK')" |
| LangSmith | LANGCHAIN_API_KEY, LANGCHAIN_TRACING_V2 | python3 -c "from langsmith import Client; print('OK')" |
| AgentOps | AGENTOPS_API_KEY | python3 -c "import agentops; print('OK')" |
| Arize Phoenix | PHOENIX_API_KEY | python3 -c "import phoenix; print('OK')" |
| MLflow | MLFLOW_TRACKING_URI | python3 -c "import mlflow; print(mlflow.__version__)" |
CLI Doctor Commands
Test connectivity for any provider:Setting Environment Variables
Best Practices
Store keys in environment variables
Store keys in environment variables
Never hardcode API keys. Use environment variables or a
.env file loaded at startup.Test connectivity before deploying
Test connectivity before deploying
Use
praisonai persistence doctor commands to verify each provider connection before production.Use the minimum required keys
Use the minimum required keys
Only set API keys for providers you use - this reduces your attack surface.
Rotate keys regularly
Rotate keys regularly
Treat API keys like passwords - rotate them periodically and revoke unused keys immediately.
Related
Custom Tools
Build your own agent tools
Tools Overview
Browse PraisonAI tool documentation

