{"id":4,"library":"arize","title":"Arize (arize SDK)","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","language":"python","source_language":"en","source_url":"https://github.com/Arize-ai/client_python","tags":["arize","observability","llm-monitoring","tracing","evaluation","ml-monitoring","opentelemetry","openinference","enterprise"],"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":[{"note":"v8 entry point. Top-level import. Requires only api_key — space_id is passed per-call, not at init.","wrong":"from arize.api import Client","symbol":"ArizeClient (v8)","correct":"from arize import ArizeClient"},{"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.","wrong":"from arize import Client","symbol":"Client (v7 legacy ML)","correct":"from arize.api import Client"},{"note":"OTel tracer provider registration. Available with arize[Tracing] extra or standalone arize-otel package. Sets up OTLP export to Arize.","wrong":"from arize import register","symbol":"register (OTel tracing)","correct":"from arize.otel import register"}],"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."},"warnings":[{"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.","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.","severity":"breaking","affected_versions":">=8.0.0"},{"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).","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.","severity":"breaking","affected_versions":"all"},{"fix":"If you hit this error, upgrade openinference packages: pip install --upgrade openinference-instrumentation. The bug was fixed promptly.","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.","severity":"gotcha","affected_versions":"openinference packages circa Feb 2026"},{"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.","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.","severity":"gotcha","affected_versions":"all"}],"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)."}]},"last_verified":"2026-05-11T18:00:17.318Z","next_check":"2026-06-01T00:00:00.000Z","problems":[{"fix":"Install the package using pip: 'pip install arize'.","cause":"The 'arize' package is not installed in the Python environment.","error":"ModuleNotFoundError: No module named 'arize'"},{"fix":"Upgrade to the latest version of the 'arize' package: 'pip install --upgrade arize'.","cause":"Attempting to import 'ArizeClient' from an older version of the 'arize' package that does not include this class.","error":"ImportError: cannot import name 'ArizeClient' from 'arize'"},{"fix":"Ensure the 'context.span_id' column exists and contains valid span IDs in the DataFrame before calling 'update_metadata'.","cause":"The 'context.span_id' column is missing or contains None values when updating metadata using the 'update_metadata' method.","error":"TypeError: 'NoneType' object is not iterable"},{"fix":"Provide a valid API key when initializing the client: 'client = ArizeClient(api_key=\"your-api-key\")'.","cause":"An incorrect or missing API key is provided when initializing the 'ArizeClient'.","error":"ValueError: Invalid API key"},{"fix":"Ensure you are using the correct import statement: 'from arize.pandas.logger import Client, Schema'.","cause":"The 'arize.pandas' module is not available in the installed version of the 'arize' package.","error":"AttributeError: module 'arize' has no attribute 'pandas'"}],"ecosystem":"pypi","meta_description":null,"install_score":85,"install_tag":"verified","quickstart_score":70,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-11","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.79,"mem_mb":23.7,"disk_size":"384.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.76,"mem_mb":23.7,"disk_size":"384.6M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.84,"mem_mb":23.7,"disk_size":"384.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5,"mem_mb":23.7,"disk_size":"351M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.86,"mem_mb":23.7,"disk_size":"351M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.72,"mem_mb":23.7,"disk_size":"351M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":7.05,"mem_mb":24.5,"disk_size":"411.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.95,"mem_mb":24.5,"disk_size":"411.6M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.75,"mem_mb":24.5,"disk_size":"411.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":7.62,"mem_mb":24.5,"disk_size":"377M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":7.08,"mem_mb":24.5,"disk_size":"377M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":7.33,"mem_mb":24.5,"disk_size":"377M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.21,"mem_mb":24.2,"disk_size":"395.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.72,"mem_mb":24.2,"disk_size":"395.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.79,"mem_mb":24.2,"disk_size":"395.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":7.13,"mem_mb":24.2,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.74,"mem_mb":24.2,"disk_size":"361M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.93,"mem_mb":24.2,"disk_size":"361M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":5.18,"mem_mb":23.6,"disk_size":"394.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.76,"mem_mb":23.6,"disk_size":"394.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":4.63,"mem_mb":23.6,"disk_size":"394.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"NLP_Metrics","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.16,"mem_mb":23.6,"disk_size":"360M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"Tracing","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.24,"mem_mb":23.6,"disk_size":"360M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":6.46,"mem_mb":23.6,"disk_size":"360M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"NLP_Metrics","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"Tracing","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"NLP_Metrics","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"Tracing","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":1,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-05-11","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}