agentronicsDOCS
Enterprise

Data export

Get your agent traces out — stream them to your own warehouse, receive them by webhook, or download them from the console.

Data export

Stream every event to your own systems (any plan)

Every trace passes through your server on its way to Agentronics — the trace relay and the server auth middleware both run there. Fan them out as they pass:

// app/api/agentronics/route.ts
import { createTraceRelay } from '@agentronics/sdk/server'
 
export const POST = createTraceRelay({
  url: process.env.AGENTRONICS_API_URL!,
  ingestKey: process.env.AGENTRONICS_INGEST_KEY!,
  siteId: 'shop',
  forward: (events) => warehouse.insert('agent_events', events), // or a queue, or a webhook
})

forward runs alongside the console export; if it fails, the console still gets the batch, and vice versa. For server-side events, add your own exporter next to createDashboardExporter — any object with export(events) works.

Webhooks (Pro and Enterprise)

Prefer not to touch the relay? Add an HTTPS endpoint under Settings → Webhooks in the console. About once a minute, Agentronics POSTs your new events to it, oldest first, up to 200 per request:

{
  "type": "events.batch",
  "timestamp": "2026-10-25T10:00:00.000Z",
  "data": {
    "events": [
      {
        "id": "evt_…", "site_id": "shop", "session_id": "…", "occurred_at": "…",
        "type": "tool.executed", "tool": "search_products", "outcome": "success",
        "agent": { "class": "assistant", "vendor": "openai", "trust": "verified" },
        "duration_ms": 182, "page": "/search", "protocol": "webmcp", "error": null, "metadata": {}
      }
    ]
  }
}

Every request is signed with Standard Webhooks, so any of its libraries can check it. Copy the signing secret (whsec_…) from the console:

import { Webhook } from 'standardwebhooks'
 
const wh = new Webhook(process.env.AGENTRONICS_WEBHOOK_SECRET!)
 
export async function POST(req: Request) {
  const body = await req.text()
  const payload = wh.verify(body, Object.fromEntries(req.headers)) // throws if forged or stale
  await warehouse.insert('agent_events', payload.data.events)
  return new Response(null, { status: 204 })
}
  • Reply with any 2xx within 10 seconds. Anything else is retried with backoff (2 minutes, doubling, up to 3 hours) from the same point, so nothing is skipped. A retried batch keeps its webhook-id; event ids are unique, so de-duplicate on those.
  • After 20 failures in a row the endpoint is paused and the console says so. Saving it again resumes delivery.
  • Send test in the console sends one signed webhook.test request.
  • Endpoints must be public https:// URLs. Redirects aren't followed.

Download raw traces (Enterprise)

On the console's Observability page, filter to what you need (event type, outcome, agent type, tool, a single session) and click Export CSV. You get up to 50,000 events with time, site, session, type, outcome, tool, agent, trust, auth method, page, latency and error. The file is formula-safe for spreadsheets.

Retention

Raw events are kept for your plan's window (7 / 30 / 90 days, custom on Enterprise). Daily rollups behind the charts are kept longer. Stream with forward if you need everything indefinitely.

Audit log

An export of console changes (rules, keys, approved descriptions) is available to Enterprise customers on request while the self-serve export is built.

On this page