# Experiments via OpenTelemetry

Attach experiment metadata to [OpenTelemetry](/content/integrations/native/opentelemetry/index.html) spans so Langfuse groups those traces as an experiment run.

**Using Python or TypeScript?** Use [Experiments via SDK](/content/docs/evaluation/experiments/experiments-via-sdk/index.html).
The Langfuse SDKs set these attributes automatically.

See the [Experiments data model](/content/docs/evaluation/experiments/data-model/index.html) for how datasets, experiment runs, items, traces, and scores relate.

## [Ingest experiment spans](/content/docs/evaluation/experiments/experiments-via-opentelemetry#ingest-experiment-spans/index.html)

Set experiment and item attributes on your OTEL spans so Langfuse can synthesize them as one experiment. The attribute list, baggage propagation pattern, and per-item loop live in the OpenTelemetry integration docs:

[**Ingest experiment spans with OpenTelemetry**](/content/integrations/native/opentelemetry/experiments/index.html)

After traces land, use the [Experiments API](/content/docs/api-and-data-platform/features/experiments-api/index.html) to list runs and fetch items.
