Python SDK for interacting with Arize AX — Arize's enterprise AI engineering platform. IMPORTANT: The 'arize' package covers two separate product tracks with distinct APIs that coexist in the same package. (1) arize.api.Client / arize.ml — the v7 legacy ML monitoring SDK for logging predictions, actuals, embeddings, and drift data to the Arize ML platform. (2) arize.ArizeClient — the v8 LLM/agent observability API for tracing spans, evaluations, and datasets. v7 and v8 are NOT interchangeable. v7 support ends June 1, 2026. Also note: 'arize-phoenix' is a SEPARATE package — Phoenix is Arize's open-source observability tool. Do not conflate arize (enterprise cloud) with arize-phoenix (OSS self-hosted).
Install & Compatibility
Where this runs
tested against v8.33.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
387MB installed
● package 387MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ArizeClient (v8)
✓ from arize import ArizeClient
✗ from arize.api import Client
v8 entry point. Top-level import. Requires only api_key — space_id is passed per-call, not at init.
Client (v7 legacy ML)
✓ from arize.api import Client
✗ from arize import Client
v7 legacy ML monitoring client. Requires BOTH api_key and space_id at init. Still present in v8 package for backwards compat but support ends June 1, 2026.
register (OTel tracing)
✓ from arize.otel import register
✗ from arize import register
OTel tracer provider registration. Available with arize[Tracing] extra or standalone arize-otel package. Sets up OTLP export to Arize.
v8 ArizeClient only takes api_key at construction. space_id and project_name are passed per-call. This is the opposite of v7 Client, which required both at init.
import os
from arize import ArizeClient
# v8 API: ArizeClient takes only api_key at init
client = ArizeClient(api_key=os.environ['ARIZE_API_KEY'])
SPACE_ID = os.environ['ARIZE_SPACE_ID']
PROJECT_NAME = 'my-llm-app'
# Log spans from a dataframe
# spans_df must be a pandas DataFrame with OTel-compatible columns
client.spans.log(
space_id=SPACE_ID,
project_name=PROJECT_NAME,
dataframe=spans_df
)
# Log evaluations separately
client.spans.update_evaluations(
space_id=SPACE_ID,
project_name=PROJECT_NAME,
dataframe=evals_df
)
# Export spans back out
from datetime import datetime
df = client.spans.export_to_df(
space_id=SPACE_ID,
project_name=PROJECT_NAME,
start_time=datetime(2025, 1, 1),
end_time=datetime(2026, 1, 1)
)
# OTel tracing (auto-instrument your app to send spans live)
from arize.otel import register
tracer_provider = register(
space_id=SPACE_ID,
api_key=os.environ['ARIZE_API_KEY'],
project_name=PROJECT_NAME
)
# After register(), OTel-compatible instrumentors (OpenInference)
# will auto-export spans to Arize
from openinference.instrumentation.openai import OpenAIInstrumentor
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
Debug
Known issues
breakingv7 (arize.api.Client) and v8 (arize.ArizeClient) are architecturally different and not interchangeable. v7 Client requires space_id at construction and uses space_key. v8 ArizeClient requires only api_key at construction and uses space_id per-call. Tutorials and StackOverflow answers referencing from arize.api import Client with space_key= are v7 patterns. v7 EOL is June 1, 2026.fixMigrate to v8 ArizeClient. Follow the official migration guide at arize.com/docs/ax. Confirm you're using api_key (not space_key) and passing space_id per-call.
affects: >=8.0.0
breaking'arize' (this package) and 'arize-phoenix' are DIFFERENT products on PyPI. arize = enterprise Arize AX cloud platform. arize-phoenix = open-source self-hosted observability platform (Phoenix). They share the Arize AI org, OpenInference instrumentors, and some API patterns — but they are separate services, separate credentials, and separate packages. pip install arize does NOT install Phoenix. pip install arize-phoenix does NOT include the Arize AX client.fixDetermine which product you're targeting. Arize AX cloud: pip install arize. Phoenix OSS: pip install arize-phoenix (or its sub-packages arize-phoenix-otel, arize-phoenix-client, arize-phoenix-evals).
affects: all
gotchaA dependency in the openinference ecosystem had a broken dependency on 'phoenix-client' (non-existent on PyPI) instead of 'arize-phoenix-client'. This caused 'No matching distribution found for phoenix-client' install failures in affected versions (reported Feb 2026). The bug was in openinference packages, not arize directly.fixIf you hit this error, upgrade openinference packages: pip install --upgrade openinference-instrumentation. The bug was fixed promptly.
affects: openinference packages circa Feb 2026
gotchaarize[Tracing] installs the arize-otel package as an extra. If you only need OTel registration without the full arize SDK (for Phoenix or other backends), install arize-otel directly instead. Both arize.otel and phoenix.otel expose a register() function with identical signatures — mixing them in the same codebase sends to different backends.fixUse from arize.otel import register to send to Arize AX. Use from phoenix.otel import register to send to Phoenix. They look identical but point to different endpoints.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'arize'
The 'arize' package is not installed in the Python environment.
fixInstall the package using pip: 'pip install arize'.
ImportError: cannot import name 'ArizeClient' from 'arize'
Attempting to import 'ArizeClient' from an older version of the 'arize' package that does not include this class.
fixUpgrade to the latest version of the 'arize' package: 'pip install --upgrade arize'.
TypeError: 'NoneType' object is not iterable
The 'context.span_id' column is missing or contains None values when updating metadata using the 'update_metadata' method.
fixEnsure the 'context.span_id' column exists and contains valid span IDs in the DataFrame before calling 'update_metadata'.
ValueError: Invalid API key
An incorrect or missing API key is provided when initializing the 'ArizeClient'.
fixProvide a valid API key when initializing the client: 'client = ArizeClient(api_key="your-api-key")'.
AttributeError: module 'arize' has no attribute 'pandas'
The 'arize.pandas' module is not available in the installed version of the 'arize' package.
fixEnsure you are using the correct import statement: 'from arize.pandas.logger import Client, Schema'.
Audit
Dependencies
No dependency data recorded yet.