Send your first trace
One curl, a 202 Accepted, and a run in the UI within seconds.
langprobe ingests over plain OTLP/HTTP and a native JSON run shape — no
proprietary SDK required. The fastest way to see a run land is a single curl.
Set your host and key once, and every curl example on this site fills itself
in:
Stored only in your browser (localStorage).
Self-hosting locally? Set the host to your ingest service —
http://localhost:7080 — and paste the lt_… key you minted in the
Quickstart. The hosted default is
https://app.langprobe.com.
Send a run
curl -X POST https://app.langprobe.com/v1/runs \
-H "Authorization: Bearer lt_YOUR_PUBLIC_ID.YOUR_SECRET" \
-H 'content-type: application/json' \
-d '{
"sdk": "curl",
"runs": [{
"run_id": "00000000-0000-0000-0000-000000000001",
"name": "hello.world",
"kind": "agent",
"status": "ok",
"start_time": "2026-05-25T00:00:00Z",
"end_time": "2026-05-25T00:00:00.842Z",
"inputs": "ping",
"outputs": "pong"
}],
"spans": []
}'You'll get a 202 Accepted. The ingest service enqueues to Redis; the worker
drains the queue and writes to ClickHouse. The Overview page in the UI shows
the run within seconds. Open it and you'll see a single agent-kind run named
hello.world.
Real traces, from your framework
That curl is the shape a stub sends. For real agents you don't hand-write
runs — you point an OpenTelemetry exporter (or the langprobe Python SDK) at
{{host}}/v1/traces and your framework's spans flow in automatically.
- Tracing & instrumentation — OpenInference recipes for CrewAI, DSPy, Pydantic AI, OpenAI Agents, LlamaIndex, and bare providers.
- Python SDK —
langprobe.init(...)wires it up in four lines. - API Reference:
POST /v1/runs— the full run/span schema and an interactive request panel.