Group anything into one trace
Reuse a single traceparent header and every related request-agent steps, chat turns, or parallel calls-collapses into one trace of ordered spans.
FastRouter groups multi-step workflows into a single trace using the W3C traceparent header-so you can inspect prompts, completions, latency, token usage, and cost across every model, provider, and tool call, with no SDK to install.
No credit card required · Free to start
See past a single completion. FastRouter stitches every model call, tool call, and retry into one trace you can read end to end.
Reuse a single traceparent header and every related request-agent steps, chat turns, or parallel calls-collapses into one trace of ordered spans.
Each span captures latency, token usage, cost, and the complete request and response, so you can inspect exactly what happened at every step.
Built on the W3C Trace Context standard, tracing works with any HTTP client-no proprietary SDK or instrumentation to maintain.
Send the W3C traceparent header with your requests. FastRouter extracts the trace, records each span with full detail, and groups everything under a single trace_id.
Your application
FastRouter
Logs & Traces
traceparent header
Tracing is built on the W3C Trace Context standard, so it works with any HTTP client and needs no SDK. Optional headers let you label spans and control their IDs for cleaner, more readable traces.
Open any span to see the model and provider, exact latency, token usage, cost, and the full request and response-no guessing about what the model actually saw or returned.
Every span records how long it took, so you can pinpoint the slow step in a chain.
See token usage and cost on each call to understand where spend accumulates.
Captured prompts and completions let you replay and debug exactly what happened.
Span detail
span_id a1b2c3d4e5f6a7b8
1.10s
1,284
512 in · 772 out
$0.0043
gpt-4.1
Request · user
"Summarize the open issues and file a tracking ticket."
Response · assistant
"Filed FR-482 covering 3 open issues across the gateway repo."
Reuse the same traceparent across a workflow and every request lands in one ordered trace-ideal for agentic chains, multi-turn chat sessions, and bursts of parallel calls.
All calls sharing a trace_id appear together as a single, ordered trace.
Generate a traceparent once and pass it on every request in the workflow.
Trace multi-step tool and function calls the same way you trace a single completion.
One trace, many spans
Same traceparentTracing uses the open W3C Trace Context standard, so there is nothing proprietary to install. Optional headers let you name spans and set your own span or trace IDs.
Add a single header from cURL, the OpenAI SDKs, or any HTTP client you already use.
Set x-span-name to label spans like hotel-search for faster scanning.
Provide x-span-id or x-trace-id to align traces with your own systems.
Whatever shape your workload takes, tracing keeps the full picture in one place-so debugging, optimizing, and explaining behavior gets dramatically easier.
Follow multi-step chains with tool and function calls across one trace to find exactly where an agent went wrong.
Link every turn of a conversation under one trace to see how context, latency, and cost build over time.
Bundle concurrent calls into a single trace so fan-out workloads stay easy to reason about.
Spot the slowest spans and the calls driving token usage so you can optimize with confidence.
FastRouter follows the W3C Trace Context standard. When you send a request with a traceparent header, the gateway extracts the trace_id to group related requests, records your parent_id as the caller span, generates a new span_id, captures latency, tokens, cost, and the full request and response, then stores the span under the matching trace.
The header is version-trace_id-parent_id-flags. version is 00 (fixed by the W3C standard), trace_id is 32 hex characters that identify the whole trace, parent_id is the 16-hex-character ID of your application's caller span, and flags is the sampling flag, for example 01. A full example is 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01.
Every span records latency, token usage, cost, and the full request and response. Gateway spans are named after the endpoint, such as POST /api/v1/chat/completions, so you can scan a trace and immediately see which calls ran.
No. Tracing is built on the open W3C Trace Context standard and works with any HTTP client-cURL, the OpenAI SDKs, or your own code. You just generate a traceparent header and reuse it across the requests you want to group.
Reuse the exact same traceparent header on every request in a workflow. All calls that share the same trace_id appear as a single trace with ordered spans, which is ideal for agentic chains, multi-turn chat sessions, and parallel requests.
Yes. Optional headers give you control: x-span-name sets a human-readable label like hotel-search, x-span-id sets a custom span ID (auto-generated if omitted), and x-trace-id overrides the trace_id from the traceparent header.
Add a traceparent header, reuse it across your workflow, and watch every span-prompts, latency, tokens, and cost-line up in one trace.