---
title: "Python SDK"
description: "Lightweight Python packages for tracing, evaluation, and platform interaction"
---

Phoenix's Python SDK is modular by design, allowing you to install only what you need. Each package serves a specific purpose and can be used independently or together.

<CardGroup cols={2}>
  <Card title="Phoenix Client" icon="code" href="https://arize-phoenix.readthedocs.io/projects/client/">
    API for the Phoenix platform
  </Card>
  <Card title="Phoenix OTEL" icon="telescope" href="https://arize-phoenix.readthedocs.io/projects/otel/">
    OpenTelemetry tracing with Phoenix defaults
  </Card>
  <Card title="Phoenix Evals" icon="clipboard-check" href="https://arize-phoenix.readthedocs.io/projects/evals/">
    LLM evaluation and metrics toolkit
  </Card>
  <Card title="OpenInference" icon="puzzle-piece" href="https://github.com/Arize-ai/openinference/tree/main/python/openinference-instrumentation">
    Instrumentation and tracing helpers
  </Card>
</CardGroup>

## Installation

Install all packages together or individually based on your needs:

```shell
# Install everything
pip install arize-phoenix-client arize-phoenix-otel arize-phoenix-evals

# Or install individually
pip install arize-phoenix-client           # REST API client
pip install arize-phoenix-otel             # Tracing
pip install arize-phoenix-evals            # Evaluations
pip install openinference-instrumentation  # Instrumentation helpers
```

## Environment Variables

All packages respect common Phoenix environment variables for seamless configuration:

| Variable | Description | Used By |
|----------|-------------|---------|
| `PHOENIX_ENDPOINT` | Phoenix base URL — canonical for everything except trace export | Client, CLI |
| `PHOENIX_COLLECTOR_ENDPOINT` | Base Phoenix collector URL or full OTLP trace endpoint | OTEL (Client and CLI infer from it when `PHOENIX_ENDPOINT` is unset) |
| `PHOENIX_API_KEY` | API key for authentication | Client, OTEL |
| `PHOENIX_PROJECT` | Default project name (canonical) | Client, OTEL, CLI |
| `PHOENIX_PROJECT_NAME` | Alias for `PHOENIX_PROJECT`; `PHOENIX_PROJECT` wins if both are set | Client, OTEL |
| `PHOENIX_CLIENT_HEADERS` | Custom HTTP headers | Client, OTEL |
| `PHOENIX_DISCOVER_CONFIG` | Set to `false` to disable `.env.phoenix` credential-file discovery | Client, OTEL, CLI |

Phoenix SDKs and the CLI also auto-load `PHOENIX_`-prefixed settings from a `.env.phoenix` file, discovered by walking up from the current directory. Process environment variables always take precedence. See [Environments](/docs/phoenix/environments).

---

## Phoenix Client

[![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-client)](https://pypi.org/project/arize-phoenix-client/)

The Phoenix Client provides a programmatic interface to the Phoenix platform via its REST API. Use it to manage datasets, run experiments, analyze traces, and collect feedback.

- **Prompts** — Create, version, and invoke prompt templates with variable substitution
- **Datasets** — Build evaluation datasets from DataFrames, CSV files, or dictionaries
- **Experiments** — Run evaluations and track experiment results over time
- **Spans** — Query and analyze traces with powerful filtering capabilities
- **Annotations** — Add human feedback and automated evaluations to spans
- **Projects** — Organize your work across multiple AI applications

<CardGroup cols={2}>
  <Card title="Usage Guide" icon="book" href="/docs/phoenix/sdk-api-reference/python/arize-phoenix-client">
    Examples and getting started
  </Card>
  <Card title="API Reference" icon="arrow-up-right-from-square" href="https://arize-phoenix.readthedocs.io/projects/client/">
    Full API documentation
  </Card>
</CardGroup>

---

## Phoenix OTEL

[![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-otel)](https://pypi.org/project/arize-phoenix-otel/)

Phoenix OTEL provides a lightweight wrapper around OpenTelemetry primitives with Phoenix-aware defaults. It simplifies tracing setup and provides decorators for common GenAI patterns.

- **Zero-config tracing** — Enable `auto_instrument=True` to automatically trace AI libraries
- **Phoenix-aware defaults** — Reads `PHOENIX_COLLECTOR_ENDPOINT`, `PHOENIX_API_KEY`, and other environment variables
- **Production ready** — Built-in batching and authentication support
- **Tracing decorators** — `@tracer.chain`, `@tracer.tool`, and more for manual instrumentation
- **OpenTelemetry compatible** — Works with existing OTel infrastructure

<CardGroup cols={2}>
  <Card title="Usage Guide" icon="book" href="/docs/phoenix/sdk-api-reference/python/arize-phoenix-otel">
    Examples and getting started
  </Card>
  <Card title="API Reference" icon="arrow-up-right-from-square" href="https://arize-phoenix.readthedocs.io/projects/otel/">
    Full API documentation
  </Card>
</CardGroup>

---

## Phoenix Evals

[![PyPI Version](https://img.shields.io/pypi/v/arize-phoenix-evals)](https://pypi.org/project/arize-phoenix-evals/)

Phoenix Evals provides lightweight, composable building blocks for evaluating LLM applications. It includes tools for relevance scoring, faithfulness detection, toxicity checks, and custom metrics.

- **Model adapters** — Works with OpenAI, LiteLLM, LangChain, and other providers
- **Pre-built metrics** — Faithfulness detection, relevance, toxicity, and more
- **Input mapping** — Powerful binding for complex data structures
- **Native instrumentation** — OpenTelemetry tracing for observability
- **High performance** — Up to 20x speedup with built-in concurrency and batching

<CardGroup cols={2}>
  <Card title="Usage Guide" icon="book" href="/docs/phoenix/sdk-api-reference/python/arize-phoenix-evals">
    Examples and getting started
  </Card>
  <Card title="API Reference" icon="arrow-up-right-from-square" href="https://arize-phoenix.readthedocs.io/projects/evals/">
    Full API documentation
  </Card>
</CardGroup>

---

## OpenInference

[![PyPI Version](https://img.shields.io/pypi/v/openinference-instrumentation)](https://pypi.org/project/openinference-instrumentation/)

OpenInference provides instrumentation utilities and helpers for tracing AI applications. Use it alongside Phoenix OTEL for decorators, context managers, and data masking capabilities.

- **Decorators** — Use `@tracer.agent`, `@tracer.chain`, `@tracer.tool` to trace custom functions
- **Context managers** — Wrap code blocks with `using_` helpers for fine-grained control
- **Data masking** — Redact sensitive information from traces with built-in masking utilities
- **Framework instrumentors** — Auto-trace OpenAI, LangChain, LlamaIndex, Anthropic, and more

<CardGroup cols={2}>
  <Card title="Usage Guide" icon="book" href="/docs/phoenix/sdk-api-reference/openinference-sdk/openinference-python">
    Examples and getting started
  </Card>
  <Card title="GitHub" icon="arrow-up-right-from-square" href="https://github.com/Arize-ai/openinference/tree/main/python/openinference-instrumentation">
    Source code and documentation
  </Card>
</CardGroup>
