{"id":"arize","title":"Arize (arize SDK)","library":"arize","description":"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).","status":"active","version":"8.2.0","install":[{"cmd":"pip install arize","lang":"bash","label":"Base SDK (v8 ArizeClient + v7 ML Client)"},{"cmd":"pip install 'arize[Tracing]'","lang":"bash","label":"Adds arize-otel for OTel-based tracing registration"},{"cmd":"pip install 'arize[NLP_Metrics]'","lang":"bash","label":"Adds NLP evaluation metric extras"}],"dependencies":[],"imports":[{"symbol":"ArizeClient (v8)","correct":"from arize import ArizeClient","wrong":"from arize.api import Client","note":"v8 entry point. Top-level import. Requires only api_key — space_id is passed per-call, not at init."},{"symbol":"Client (v7 legacy ML)","correct":"from arize.api import Client","wrong":"from arize import Client","note":"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."},{"symbol":"register (OTel tracing)","correct":"from arize.otel import register","wrong":"from arize import register","note":"OTel tracer provider registration. Available with arize[Tracing] extra or standalone arize-otel package. Sets up OTLP export to Arize."}],"quickstart":{"code":"import os\nfrom arize import ArizeClient\n\n# v8 API: ArizeClient takes only api_key at init\nclient = ArizeClient(api_key=os.environ['ARIZE_API_KEY'])\n\nSPACE_ID = os.environ['ARIZE_SPACE_ID']\nPROJECT_NAME = 'my-llm-app'\n\n# Log spans from a dataframe\n# spans_df must be a pandas DataFrame with OTel-compatible columns\nclient.spans.log(\n    space_id=SPACE_ID,\n    project_name=PROJECT_NAME,\n    dataframe=spans_df\n)\n\n# Log evaluations separately\nclient.spans.update_evaluations(\n    space_id=SPACE_ID,\n    project_name=PROJECT_NAME,\n    dataframe=evals_df\n)\n\n# Export spans back out\nfrom datetime import datetime\ndf = client.spans.export_to_df(\n    space_id=SPACE_ID,\n    project_name=PROJECT_NAME,\n    start_time=datetime(2025, 1, 1),\n    end_time=datetime(2026, 1, 1)\n)\n\n# OTel tracing (auto-instrument your app to send spans live)\nfrom arize.otel import register\ntracer_provider = register(\n    space_id=SPACE_ID,\n    api_key=os.environ['ARIZE_API_KEY'],\n    project_name=PROJECT_NAME\n)\n# After register(), OTel-compatible instrumentors (OpenInference)\n# will auto-export spans to Arize\nfrom openinference.instrumentation.openai import OpenAIInstrumentor\nOpenAIInstrumentor().instrument(tracer_provider=tracer_provider)","lang":"python","description":"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."},"env_vars":{"required":[{"name":"ARIZE_API_KEY","note":"Get from Arize AX → Settings → API Keys. Used by both v7 ArizeExportClient and v8 ArizeClient."},{"name":"ARIZE_SPACE_ID","note":"Your Arize space identifier. Required for most operations. Not to be confused with space_key (v7 legacy param — removed in v8)."}]},"warnings":[{"severity":"breaking","message":"v7 (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.","affected_versions":">=8.0.0","fix":"Migrate 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."},{"severity":"breaking","message":"'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.","affected_versions":"all","fix":"Determine 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)."},{"severity":"gotcha","message":"A 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.","affected_versions":"openinference packages circa Feb 2026","fix":"If you hit this error, upgrade openinference packages: pip install --upgrade openinference-instrumentation. The bug was fixed promptly."},{"severity":"gotcha","message":"arize[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.","affected_versions":"all","fix":"Use 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."}],"last_verified":"2026-02-28","next_check":"2026-06-01","source_url":"https://github.com/Arize-ai/client_python","language":"en","source_language":"en","tags":["arize","observability","llm-monitoring","tracing","evaluation","ml-monitoring","opentelemetry","openinference","enterprise"]}