> ## Documentation Index
> Fetch the complete documentation index at: https://arize-ax.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# August 2026

## Create experiments without a dataset

August 5, 2026

<Badge color="surface">New</Badge>  <Badge color="surface">Datasets and Experiments</Badge>

You can now create an experiment scoped to a space instead of a dataset, so runs and results you produced elsewhere can be recorded in Arize AX even when there is no dataset to attach them to. In the Python SDK, pass `space` in place of `dataset` to `experiments.create()`; through the REST API, send `space_id` instead of `dataset_id` on `POST /v2/experiments` and filter dataset-less experiments with the new `space_id` query parameter on `GET /v2/experiments`. This extends dataset-less experiment support, previously available in the JavaScript and TypeScript SDK, to Python and the REST API.

The code example below creates a standalone experiment in a space:

```python theme={null}
from arize.experiments import ExperimentTaskFieldNames

# Pass `space` instead of `dataset` to create a standalone experiment
# that is not tied to any dataset.
experiment = client.experiments.create(
    name="my-standalone-experiment",
    space="your-space-name-or-id",
    experiment_runs=[{"output": "the task output"}],
    task_fields=ExperimentTaskFieldNames(output="output"),  # example_id is optional for standalone runs
)
```

Visit the [experiments client](/docs/api-clients/python/version-8/client-resources/experiments) documentation to learn more.

## Delete spans faster by scoping to a time window

August 5, 2026

<Badge color="surface">Improvement</Badge>  <Badge color="surface">SDKs and REST APIs</Badge>

Deleting spans by ID through `DELETE /v2/spans` now accepts optional `start_time` and `end_time` bounds, so a delete searches only the interval when the spans were ingested instead of the full lookback window. Each bound is independent: omit `start_time` and it defaults to the start of the lookback window, omit `end_time` and it defaults to now. The parameters are available across the Python, Go, and TypeScript SDKs.

The code example below deletes two spans, scoping the search to a single day:

```python theme={null}
from datetime import datetime, timezone

# Scope the delete to the day the spans were ingested.
client.spans.delete(
    project="your-project-name-or-id",
    span_ids=["span-id-1", "span-id-2"],
    start_time=datetime(2026, 8, 4, tzinfo=timezone.utc),  # inclusive lower bound
    end_time=datetime(2026, 8, 5, tzinfo=timezone.utc),    # exclusive upper bound
)
```

Visit the [spans client](/docs/api-clients/python/version-8/client-resources/spans) documentation to learn more.

## Write new API keys directly to a .env file

August 3, 2026

<Badge color="surface">New</Badge>  <Badge color="surface">CLI Commands</Badge>

The `ax api-keys create` and `ax api-keys create-service-key` commands now take an `--env-file` flag that writes the generated key to `ARIZE_API_KEY` in a dotenv or `.envrc` file, so the new credential is written into your local environment and the raw key is never printed to your terminal. The write preserves the file's existing formatting, and if it fails, the new key is automatically revoked so you are never left with an unusable credential.

The code example below creates a key and writes it into a local dotenv file:

```bash theme={null}
# Write the new key as ARIZE_API_KEY into .env.local.
# If the file write fails, the key is automatically revoked.
ax api-keys create --name "Local development" --env-file .env.local
```

Visit the [api-keys CLI](/docs/api-clients/cli/api-keys) documentation to learn more.

## Pin evaluators to a specific version, now on every account

July 31, 2026

<Badge color="surface">New</Badge>  <Badge color="surface">Evaluators</Badge>

Evaluator version pinning is now available on every account. Pin an evaluator task to a specific published version and the task keeps running that version when newer versions are published, so a task you have tuned and validated does not change when someone publishes an update. Choose "Latest" when you would rather a task always pick up the newest version. You select the version from the evaluator's version dropdown wherever you configure the task.

Learn more about [creating evaluators](/docs/ax/evaluate/create-evaluators).

## Fixes and improvements

August 3–5, 2026

**Evaluators**

* <Badge color="surface">Improvement</Badge> Skip a mapping step when building template evals on a project: the `{context}` variable now maps to the `input` column automatically.

**Tracing and Sessions**

* <Badge color="surface">Fix</Badge> Open span details for backfilled spans whose event time differs significantly from their ingestion time.

**Dashboards and Visualizations**

* <Badge color="surface">Fix</Badge> See dashboard widgets and Actual Class filter values scoped to the date range you selected, rather than the full account lookback.
* <Badge color="surface">Fix</Badge> See correct monthly buckets in metrics and dashboards when your time zone has a non-zero UTC offset.

**Webhooks and Events**

* <Badge color="surface">Improvement</Badge> Reuse the name of a webhook destination you previously deleted when creating a new one.

**Custom Metrics**

* <Badge color="surface">Fix</Badge> Filter custom metrics with a `contains` condition on string-list fields such as agent tool calls.

**SDKs and REST APIs**

* <Badge color="surface">Fix</Badge> Retrieve task runs from the Python SDK reliably as the API adds new response fields.
