> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/BerriAI/litellm/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment Variables

> Complete reference for LiteLLM environment variables

## Overview

LiteLLM supports configuration via environment variables for API keys, endpoints, and settings.

## Provider API Keys

### OpenAI

<ParamField path="OPENAI_API_KEY" type="string">
  OpenAI API key.

  ```bash theme={null}
  export OPENAI_API_KEY="sk-..."
  ```
</ParamField>

<ParamField path="OPENAI_ORGANIZATION" type="string">
  OpenAI organization ID.
</ParamField>

### Azure OpenAI

<ParamField path="AZURE_API_KEY" type="string">
  Azure OpenAI API key.
</ParamField>

<ParamField path="AZURE_API_BASE" type="string">
  Azure OpenAI endpoint.

  ```bash theme={null}
  export AZURE_API_BASE="https://your-endpoint.openai.azure.com/"
  ```
</ParamField>

<ParamField path="AZURE_API_VERSION" type="string">
  Azure OpenAI API version.

  ```bash theme={null}
  export AZURE_API_VERSION="2024-02-01"
  ```
</ParamField>

### Anthropic

<ParamField path="ANTHROPIC_API_KEY" type="string">
  Anthropic API key for Claude models.

  ```bash theme={null}
  export ANTHROPIC_API_KEY="sk-ant-..."
  ```
</ParamField>

### Google (Vertex AI / AI Studio)

<ParamField path="GOOGLE_APPLICATION_CREDENTIALS" type="string">
  Path to Google Cloud service account JSON file.

  ```bash theme={null}
  export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"
  ```
</ParamField>

<ParamField path="VERTEXAI_PROJECT" type="string">
  Google Cloud project ID.
</ParamField>

<ParamField path="VERTEXAI_LOCATION" type="string">
  Vertex AI location (e.g., us-central1).
</ParamField>

<ParamField path="GEMINI_API_KEY" type="string">
  Google AI Studio API key.
</ParamField>

### AWS Bedrock

<ParamField path="AWS_ACCESS_KEY_ID" type="string">
  AWS access key ID.
</ParamField>

<ParamField path="AWS_SECRET_ACCESS_KEY" type="string">
  AWS secret access key.
</ParamField>

<ParamField path="AWS_REGION_NAME" type="string">
  AWS region (e.g., us-east-1).
</ParamField>

### Cohere

<ParamField path="COHERE_API_KEY" type="string">
  Cohere API key.

  ```bash theme={null}
  export COHERE_API_KEY="..."
  ```
</ParamField>

### Hugging Face

<ParamField path="HUGGINGFACE_API_KEY" type="string">
  Hugging Face API token.
</ParamField>

### Replicate

<ParamField path="REPLICATE_API_KEY" type="string">
  Replicate API token.
</ParamField>

### Together AI

<ParamField path="TOGETHERAI_API_KEY" type="string">
  Together AI API key.
</ParamField>

### Groq

<ParamField path="GROQ_API_KEY" type="string">
  Groq API key.
</ParamField>

### Mistral

<ParamField path="MISTRAL_API_KEY" type="string">
  Mistral AI API key.
</ParamField>

### Perplexity

<ParamField path="PERPLEXITYAI_API_KEY" type="string">
  Perplexity AI API key.
</ParamField>

### Anyscale

<ParamField path="ANYSCALE_API_KEY" type="string">
  Anyscale API key.
</ParamField>

### Voyage AI

<ParamField path="VOYAGE_API_KEY" type="string">
  Voyage AI API key (embeddings).
</ParamField>

### Databricks

<ParamField path="DATABRICKS_API_KEY" type="string">
  Databricks API key.
</ParamField>

<ParamField path="DATABRICKS_API_BASE" type="string">
  Databricks workspace URL.
</ParamField>

### Cloudflare

<ParamField path="CLOUDFLARE_API_KEY" type="string">
  Cloudflare Workers AI API key.
</ParamField>

<ParamField path="CLOUDFLARE_ACCOUNT_ID" type="string">
  Cloudflare account ID.
</ParamField>

## LiteLLM Settings

### Core Settings

<ParamField path="LITELLM_LOG" type="string" default="INFO">
  Log level.

  Options: `DEBUG`, `INFO`, `WARNING`, `ERROR`

  ```bash theme={null}
  export LITELLM_LOG="DEBUG"
  ```
</ParamField>

<ParamField path="LITELLM_LOCAL_MODEL_COST_MAP" type="string" default="true">
  Use local cost map for pricing.
</ParamField>

<ParamField path="LITELLM_DROP_PARAMS" type="string" default="false">
  Drop unsupported parameters instead of raising errors.

  ```bash theme={null}
  export LITELLM_DROP_PARAMS="true"
  ```
</ParamField>

### Caching

<ParamField path="REDIS_HOST" type="string">
  Redis hostname for caching.
</ParamField>

<ParamField path="REDIS_PORT" type="string" default="6379">
  Redis port.
</ParamField>

<ParamField path="REDIS_PASSWORD" type="string">
  Redis password.
</ParamField>

<ParamField path="REDIS_URL" type="string">
  Complete Redis connection URL.

  ```bash theme={null}
  export REDIS_URL="redis://:password@localhost:6379"
  ```
</ParamField>

## Proxy Server Settings

### Authentication

<ParamField path="LITELLM_MASTER_KEY" type="string">
  Master admin key for proxy.

  ```bash theme={null}
  export LITELLM_MASTER_KEY="sk-1234"
  ```
</ParamField>

<ParamField path="LITELLM_SALT_KEY" type="string">
  Salt key for hashing API keys.
</ParamField>

<ParamField path="UI_USERNAME" type="string">
  Admin UI username.
</ParamField>

<ParamField path="UI_PASSWORD" type="string">
  Admin UI password.
</ParamField>

### Database

<ParamField path="DATABASE_URL" type="string">
  PostgreSQL connection string.

  ```bash theme={null}
  export DATABASE_URL="postgresql://user:pass@localhost:5432/litellm"
  ```
</ParamField>

<ParamField path="STORE_MODEL_IN_DB" type="string" default="false">
  Store model configurations in database.

  ```bash theme={null}
  export STORE_MODEL_IN_DB="true"
  ```
</ParamField>

### Server Configuration

<ParamField path="PORT" type="string" default="4000">
  Proxy server port.

  ```bash theme={null}
  export PORT="8000"
  ```
</ParamField>

<ParamField path="HOST" type="string" default="0.0.0.0">
  Proxy server host.
</ParamField>

<ParamField path="NUM_WORKERS" type="string" default="1">
  Number of Uvicorn workers.

  ```bash theme={null}
  export NUM_WORKERS="4"
  ```
</ParamField>

<ParamField path="SSL_KEYFILE" type="string">
  Path to SSL key file.
</ParamField>

<ParamField path="SSL_CERTFILE" type="string">
  Path to SSL certificate file.
</ParamField>

### Observability

<ParamField path="LANGFUSE_PUBLIC_KEY" type="string">
  Langfuse public key for logging.
</ParamField>

<ParamField path="LANGFUSE_SECRET_KEY" type="string">
  Langfuse secret key.
</ParamField>

<ParamField path="LANGFUSE_HOST" type="string">
  Langfuse host URL.
</ParamField>

<ParamField path="LUNARY_PUBLIC_KEY" type="string">
  Lunary public key.
</ParamField>

<ParamField path="HELICONE_API_KEY" type="string">
  Helicone API key.
</ParamField>

<ParamField path="SENTRY_DSN" type="string">
  Sentry DSN for error tracking.
</ParamField>

<ParamField path="SLACK_WEBHOOK_URL" type="string">
  Slack webhook for alerts.
</ParamField>

### Budget & Rate Limiting

<ParamField path="LITELLM_MAX_BUDGET" type="string">
  Global budget limit in USD.

  ```bash theme={null}
  export LITELLM_MAX_BUDGET="1000.0"
  ```
</ParamField>

<ParamField path="LITELLM_BUDGET_DURATION" type="string">
  Budget reset period.

  ```bash theme={null}
  export LITELLM_BUDGET_DURATION="30d"
  ```
</ParamField>

## Usage Examples

### Basic Setup

```bash theme={null}
# OpenAI
export OPENAI_API_KEY="sk-..."

# Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."

# Start LiteLLM
python your_app.py
```

### Azure OpenAI Setup

```bash theme={null}
export AZURE_API_KEY="your-key"
export AZURE_API_BASE="https://your-endpoint.openai.azure.com/"
export AZURE_API_VERSION="2024-02-01"

python your_app.py
```

### Proxy with Database

```bash theme={null}
export LITELLM_MASTER_KEY="sk-1234"
export DATABASE_URL="postgresql://user:pass@localhost:5432/litellm"
export STORE_MODEL_IN_DB="true"

litellm --config config.yaml
```

### Full Production Setup

```bash theme={null}
# API Keys
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export AZURE_API_KEY="your-azure-key"
export AZURE_API_BASE="https://your-endpoint.openai.azure.com/"

# Proxy Settings
export LITELLM_MASTER_KEY="sk-1234"
export DATABASE_URL="postgresql://user:pass@localhost:5432/litellm"
export PORT="4000"
export NUM_WORKERS="4"

# Caching
export REDIS_URL="redis://:password@localhost:6379"

# Observability
export LANGFUSE_PUBLIC_KEY="pk-..."
export LANGFUSE_SECRET_KEY="sk-..."
export SENTRY_DSN="https://...@sentry.io/..."

# Budget
export LITELLM_MAX_BUDGET="10000.0"
export LITELLM_BUDGET_DURATION="30d"

# Logging
export LITELLM_LOG="INFO"

# Start proxy
litellm --config config.yaml
```

## Docker Environment

### docker-compose.yml

```yaml theme={null}
version: '3.8'

services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    ports:
      - "4000:4000"
    environment:
      # API Keys
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      
      # Proxy Settings
      - LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
      - DATABASE_URL=postgresql://litellm:password@postgres:5432/litellm
      
      # Redis
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      
      # Observability
      - LANGFUSE_PUBLIC_KEY=${LANGFUSE_PUBLIC_KEY}
      - LANGFUSE_SECRET_KEY=${LANGFUSE_SECRET_KEY}
      
    volumes:
      - ./config.yaml:/app/config.yaml
    command: ["--config", "/app/config.yaml", "--port", "4000"]
    depends_on:
      - postgres
      - redis
  
  postgres:
    image: postgres:15
    environment:
      - POSTGRES_DB=litellm
      - POSTGRES_USER=litellm
      - POSTGRES_PASSWORD=password
    volumes:
      - postgres_data:/var/lib/postgresql/data
  
  redis:
    image: redis:7
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:
```

### .env file

```bash theme={null}
# .env
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
LITELLM_MASTER_KEY=sk-1234
LANGFUSE_PUBLIC_KEY=pk-...
LANGFUSE_SECRET_KEY=sk-...
```

## Kubernetes ConfigMap

```yaml theme={null}
apiVersion: v1
kind: ConfigMap
metadata:
  name: litellm-config
data:
  LITELLM_LOG: "INFO"
  PORT: "4000"
  HOST: "0.0.0.0"
  NUM_WORKERS: "4"
  STORE_MODEL_IN_DB: "true"
---
apiVersion: v1
kind: Secret
metadata:
  name: litellm-secrets
type: Opaque
stringData:
  OPENAI_API_KEY: "sk-..."
  ANTHROPIC_API_KEY: "sk-ant-..."
  LITELLM_MASTER_KEY: "sk-1234"
  DATABASE_URL: "postgresql://..."
  REDIS_URL: "redis://..."
```

## Loading from .env File

```python theme={null}
from dotenv import load_dotenv
import litellm

# Load environment variables from .env file
load_dotenv()

# Now use LiteLLM
response = litellm.completion(
    model="gpt-4",
    messages=[{"role": "user", "content": "Hello"}]
)
```

## Provider-Specific Variables

Some providers require additional environment variables:

### AWS Bedrock with Profile

```bash theme={null}
export AWS_PROFILE="my-profile"
export AWS_REGION_NAME="us-east-1"
```

### Vertex AI with ADC

```bash theme={null}
# Use Application Default Credentials
gcloud auth application-default login

export VERTEXAI_PROJECT="my-project"
export VERTEXAI_LOCATION="us-central1"
```

### Azure with Managed Identity

```bash theme={null}
export AZURE_USE_MANAGED_IDENTITY="true"
export AZURE_API_BASE="https://your-endpoint.openai.azure.com/"
```

## Security Best Practices

1. **Never commit .env files** to version control
2. **Use secret managers** in production (AWS Secrets Manager, Kubernetes Secrets, etc.)
3. **Rotate keys regularly**
4. **Use least-privilege access** for cloud IAM roles
5. **Encrypt sensitive environment variables** in CI/CD

## Related

* [Configuration Schema](/api/config-schema)
* [Router Configuration](/api/router-config)
* [Proxy Setup Guide](https://docs.litellm.ai/docs/proxy/quick_start)
