Documentation Index
Fetch the complete documentation index at: https://docs.roark.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Roark supports OpenTelemetry (OTel) tracing. Send your OTel trace data to Roark to see what happens under the hood of your Voice AI agent, debug latency, inspect tool usage and external API calls, and correlate call execution with your backend traces.Features
- LLM traces per call — View LLM spans, tool calls, and model invocations directly on the call detail page. Each call’s Tracing tab shows the full trace tree for that conversation, so you can quickly pinpoint where latency or failures occurred.
- Central trace explorer — See all traces in one place. Filter by time range, custom tags, or search by span name and attributes. Use this to spot patterns across calls, compare runs, and troubleshoot recurring issues.

Endpoint and Protocol
| Requirement | Details |
|---|---|
| Protocol | OTLP over HTTPS only |
| Endpoint | Send traces to Roark’s OTel endpoint (see examples below) |
| OTel traces URL | https://api.roark.ai/v1/traces |
| Authorization | Required. Send Authorization: Bearer YOUR_ROARK_API_KEY in the request headers. |
| Role | Roark acts as an OTel Collector |
All trace ingestion requests require authentication. Generate an API
key in your Roark dashboard and use
it in the
Authorization: Bearer YOUR_ROARK_API_KEY header.Setup Guide
Get an API key
Generate an API key in your Roark dashboard. Trace ingestion requires authentication via the
Authorization: Bearer YOUR_ROARK_API_KEY header. Create an API key →Choose your integration
Pick the platform you’re using and follow the corresponding setup section below:
- LiveKit — instrument your LiveKit agent with OpenTelemetry
- VAPI — traces sync automatically when calls are ingested
- Custom integration — any other platform via OTLP HTTP
LiveKit
Instrument your LiveKit agent with OpenTelemetry and export traces to Roark. Configure your tracer with thelivekit.room.id resource attribute — this is how Roark links your LiveKit room to its traces and shows them on the call detail page.
See the LiveKit integration guide for the full webhook setup.
Install the required packages:
| Attribute | Required | Description |
|---|---|---|
livekit.room.id | Yes | The LiveKit room SID (ctx.job.room.sid). Roark uses this to link traces to the corresponding call. |
roark.skip | No | Set to true to tell Roark to filter out traces for this room. Useful for skipping test or internal calls. |
If you’re also using the LiveKit webhook integration, you can set
roark.skip in both room metadata and OTel resource attributes to skip both call processing and trace ingestion.VAPI
Traces sync automatically. Whenever a call from a selected agent is synced to Roark, its OpenTelemetry traces are synced too. No extra OTLP exporter or instrumentation is needed on your side. See the VAPI integration guide for step-by-step setup.Custom Integration
For any other platform, use the OTLP HTTP trace exporter and point it to Roark’s OTel endpoint. Include the requiredAuthorization: Bearer YOUR_ROARK_API_KEY header and attach the required resource attributes.
Correlating traces to a call or chat
If you submit calls or chats to Roark via the Customer API, tag your traces withroark.external_id so Roark can link each conversation to its trace automatically.
- When creating a call or chat via
POST /callorPOST /chat, supply theexternalIdfield with a stable identifier from your own system (session ID, conversation ID, etc.). It must be unique within the project. - On your OpenTelemetry traces, set
roark.external_idto the same value — either as a resource attribute (propagates to every span in the service) or as a span attribute on the root span.
- TypeScript (Node.js)
- Go
- Python
| Attribute | Required | Description |
|---|---|---|
roark.external_id | Recommended | A stable identifier from your own system (e.g. session/conversation ID). Must match the externalId field you submit on the corresponding call or chat via the Customer API, and must be unique within a project. |
roark.project.tag.{key} | No | Custom project tags for filtering and grouping in the trace explorer. |
Once your integration is set up, you’re ready to send traces to Roark. You’ll be able to view them on the Traces page and directly within each call’s detail page.
What’s Next
Live monitoring
View and debug active calls
Metrics & reports
Define and analyze call metrics
Dashboards
Build observability views
API reference
Explore Roark API endpoints
Related: LiveKit integration · VAPI integration · Integrations overview

