# Send traces with OpenLLMetry

> Send traces from applications instrumented with OpenLLMetry by Traceloop.

This guide sends traces from an application instrumented with [OpenLLMetry](https://github.com/traceloop/openllmetry). Tracing reads the model, tokens and messages of LLM calls, from current releases, which write GenAI semantic conventions, and from older ones, which write `gen_ai.prompt.0.content` and similar.

## Before you start

You need an API key with the `traces:write` scope. Create one under **Settings** in the dashboard, or run `div login`.

## Send traces with the Traceloop SDK

1. Install the SDK.

   ```bash
   pip install traceloop-sdk
   ```

2. Point it at tracing, and turn off its metrics and logs. Tracing receives traces only, and refuses metrics and logs with `404`.

   ```bash
   export TRACELOOP_BASE_URL=https://api.divergentlabs.xyz/api/otlp
   export TRACELOOP_HEADERS="Authorization=Bearer%20$DIVERGENT_API_KEY"
   export TRACELOOP_METRICS_ENABLED=false
   export TRACELOOP_LOGGING_ENABLED=false
   ```

   `%20` is the space after `Bearer`. With a literal space, the export is refused with `401`.

3. Initialize it at startup.

   ```python
   from traceloop.sdk import Traceloop

   Traceloop.init(app_name="my-app")
   ```

## Send traces with an instrumentation alone

To use one OpenLLMetry instrumentation with your own tracer provider, install it with the OpenTelemetry SDK and exporter, set `OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_EXPORTER_OTLP_HEADERS` as in [Send traces from Python](https://docs.divergentlabs.xyz/tracing/guides/opentelemetry-python.md), and instrument the library:

```python
from opentelemetry.instrumentation.openai import OpenAIInstrumentor

OpenAIInstrumentor().instrument()
```

## Keep content out of traces

Set `TRACELOOP_TRACE_CONTENT=false`.
