Skip to main content

Metric Charts Above Data Tables

July 7, 2026 Available in arize-phoenix 17.20.0+ Keep the numbers that matter in view while you work through your data. A resizable strip of metric charts now sits above the spans, traces, and sessions tables. Pick the charts you want per table from a catalog, and Phoenix remembers your selection per project.
  • Per-table selection — choose different charts for the spans, traces, and sessions views
  • Interactive — filter series from the legend and drag across a chart to zoom the time range
  • Persistent — your chart choices are saved per project

Trace Tree Search

July 6, 2026 Available in arize-phoenix 17.19.0+ Finding a span in a deep, deeply nested trace no longer means scrolling. The trace detail view now has a search box that filters the trace tree as you type, so you can jump straight to the span you care about.

Dataset Labels and Annotation Config Assignment over REST

July 4, 2026 Available in arize-phoenix 17.16.0+ (server), arize-phoenix-client 2.12.0+ (Python, typed access) Two organizational workflows that were previously UI-only are now scriptable over the REST API. Dataset labels can be created, listed, updated, deleted, and applied to datasets:
# Create a label
curl -X POST "$PHOENIX_HOST/v1/dataset_labels" \
  -H "Authorization: Bearer $PHOENIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "golden", "color": "#00cc88", "description": "Curated eval sets"}'

# Apply a label to a dataset (idempotent)
curl -X PUT "$PHOENIX_HOST/v1/datasets/$DATASET_ID/labels/$LABEL_ID" \
  -H "Authorization: Bearer $PHOENIX_API_KEY"

# List the labels applied to a dataset
curl "$PHOENIX_HOST/v1/datasets/$DATASET_ID/labels" \
  -H "Authorization: Bearer $PHOENIX_API_KEY"
Annotation configs can be assigned to and removed from projects, and both endpoints accept either an ID or a name for the project and config:
# Assign an annotation config to a project (idempotent)
curl -X PUT "$PHOENIX_HOST/v1/projects/my-project/annotation_configs/response-quality" \
  -H "Authorization: Bearer $PHOENIX_API_KEY"

# Replace the full set of configs on a project
curl -X PUT "$PHOENIX_HOST/v1/projects/my-project/annotation_configs" \
  -H "Authorization: Bearer $PHOENIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"annotation_config_ids": ["'"$CONFIG_ID"'"]}'

Filter Projects by Name

July 4, 2026 Available in arize-phoenix 17.16.0+ GET /v1/projects now accepts a name_contains query parameter for a case-insensitive substring match, so you can locate projects without paging through the full list.
curl "$PHOENIX_HOST/v1/projects?name_contains=eval" \
  -H "Authorization: Bearer $PHOENIX_API_KEY"

Baseline Experiments

July 4, 2026 Available in arize-phoenix 17.16.0+ Mark one experiment per project as the baseline to make it the reference point in comparison workflows. Set or clear the baseline from the experiment action menu — the baseline is flagged with a badge across experiment tables and compare views, and the choice persists across sessions.

Annotation Config CLI Commands

July 4, 2026 Available in arize-phoenix-client 2.12.0+ The px CLI can now manage annotation configurations directly, making it easy to script annotation setup or drive it from a coding agent.
# List all annotation configurations
px annotation-config list

# Fetch one by name or ID
px annotation-config get response-quality

# Create a categorical pass/fail rating
px annotation-config create \
  --type CATEGORICAL \
  --name response-quality \
  --value good=1 \
  --value bad=0 \
  --optimization-direction MAXIMIZE

# Update just the description
px annotation-config update response-quality \
  --description "Pass/fail rating from human review"

Classification Metric Evaluators in TypeScript

July 4, 2026 Available in @arizeai/phoenix-evals 1.1.0+ (TypeScript) The TypeScript evals package now ships built-in code (non-LLM) evaluators for precision, recall, and F-score, mirroring the Python PrecisionRecallFScore evaluator. They support binary classification via positiveLabel and multi-class classification with macro, micro, or weighted averaging.
import {
  createPrecisionEvaluator,
  createPrecisionRecallFScoreEvaluators,
} from "@arizeai/phoenix-evals/code";

// Binary classification
const precision = createPrecisionEvaluator({ positiveLabel: "spam" });
const p = await precision.evaluate({
  expected: ["spam", "ham", "spam"],
  output: ["spam", "spam", "ham"],
});

// Multi-class, weighted average — precision, recall, and F-score together
const { precision: mp, recall, fScore } = createPrecisionRecallFScoreEvaluators({
  average: "weighted",
});
const f = await fScore.evaluate({
  expected: ["cat", "dog", "cat", "bird"],
  output: ["cat", "cat", "cat", "bird"],
});
For a one-shot computation without constructing an evaluator, use computePrecisionRecallFScore from the same import path.

Log Spans from the TypeScript Client

July 2, 2026 Available in @arizeai/phoenix-client 6.12.0+ (TypeScript) The TypeScript client gains logSpans, mirroring the Python client’s log_spans. It submits spans directly to a project using Phoenix’s simplified span structure — the same shape returned by getSpans — with no OpenTelemetry setup required.
import { logSpans } from "@arizeai/phoenix-client/spans";

const result = await logSpans({
  project: { projectName: "my-project" },
  spans: [
    {
      name: "my-span",
      context: { trace_id: "...", span_id: "..." },
      span_kind: "CHAIN",
      start_time: "2026-07-02T00:00:00Z",
      end_time: "2026-07-02T00:00:01Z",
      status_code: "OK",
    },
  ],
});
console.log(`Queued ${result.totalQueued} of ${result.totalReceived} spans`);
Invalid or duplicate spans raise a SpanCreationError with invalidSpans and duplicateSpans details so you can see exactly which spans were rejected.

Claude Sonnet 5 in the Playground

July 1, 2026 Available in arize-phoenix 17.15.0+ Claude Sonnet 5 is now selectable in the Playground and prompts for both the Anthropic (claude-sonnet-5) and AWS Bedrock (anthropic.claude-sonnet-5) providers.

Table and Navigation Improvements

July 4–6, 2026 Available in arize-phoenix 17.16.0+ through 17.19.0+ A batch of workflow upgrades landed across the data tables and side navigation:
  • Error column on the spans and traces tables surfaces the status message recorded when a span errors (arize-phoenix 17.16.0+)
  • Prompt version columns — the prompts table now shows the version count, latest version, and version tags with links (arize-phoenix 17.16.0+)
  • Shift-click range selection — select a contiguous range of rows with shift-click across the examples, experiments, spans, traces, and annotation-config tables (arize-phoenix 17.17.0+)
  • Recent searches — the span filter typeahead shows your last few filter conditions per project (arize-phoenix 17.17.0+)
  • Consolidated account menu — profile, docs, support, management console, log out, and the light/dark/system theme toggle now live in a single menu at the bottom of the side nav (arize-phoenix 17.19.0+)

REST API

Full REST API reference for datasets, projects, and annotations.

Python Client

Manage prompts, datasets, experiments, and annotations from Python.