LangWatch writes one OCSF record per trace that arrives through an ingestion source, and one per admin view of a member’s or a team’s workspace (actionNamegovernance.viewWorkspaceAs). Each record is an OCSF 1.1 API Activity event (class_uid 6003, category_uid 6). A record linked to an anomaly alert has severity_id 4 (Medium); every other record has severity_id 1 (Informational).Records are stored with no expiry. Your SIEM pulls them by cursor, on its own schedule, and keeps its own watermark.
The export is the tRPC query governance.ocsfExport. Call it as a GET on /api/trpc/governance.ocsfExport with the input JSON in the input query parameter.
Requirement
Value
Plan
Enterprise
Permission
complianceExport:view. Organization admins hold it; grant it to another role through a custom role. See RBAC
Auth
The session cookie of a signed-in user. API keys and virtual keys are not accepted
Tenancy
The permission is checked against organizationId. A call for an organization where the caller does not hold it is refused
rawOcsfJson is the full OCSF 1.1 event as a JSON string. The other fields are the columns your SIEM filters on. actionName is the tool the trace invoked, or trace.recorded for a trace with no tool call. An organization with no ingestion source yet returns { "events": [], "nextCursor": null, "nextCursorCompound": null }.anomalyAlertId is returned on every record and is always empty. No attribute sets it, so no exported record is ever linked to an anomaly alert, and severityId is always 1 (Informational). Anomaly alerts are not exported as OCSF rows at all. They are delivered by webhook, described in Anomaly rules.
Persist nextCursorCompound after each page. On the next pull, pass its eventTimeMs as sinceMs and its eventId as sinceEventId. Records are ordered by eventTimeMs ascending.A page that returns limit records may be followed by more. Pull again at once until a page returns fewer than limit records, then wait for your next scheduled run.
Write the cookie into a curl config file that only the job user can read, and pass the file rather than the value. A -H argument puts the cookie in the process argument list, where every other user on the host can read it out of ps.
mktemp makes a new file each run, owned by the job user and readable only by them. Writing to a fixed path instead would reuse whatever file or symlink is already there, and keep its permissions.
$SESSION_COOKIE is the cookie of a browser session signed in as a user who holds complianceExport:view. Read it from your secrets store into the job environment. The trap deletes the config file when the shell exits, on a failed run as well as a clean one. Forward events[] to your SIEM’s ingest API, then store nextCursorCompound for the next run.
The session cookie is a full browser credential for that user, and this endpoint takes no other credential. It is not scoped to complianceExport:view, and it expires on the session’s own schedule rather than the job’s. Keep it out of shell history, out of the process argument list, and out of any script committed to a repository, and rotate the session when the job host changes.
Also check:Anomaly rules for how a fired alert reaches you, which is by webhook rather than through this export, and Retention for how long the source traces are kept.
Last modified on September 9, 2026
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LangWatch","description":"LangWatch is an open-source LLMOps platform for observability, evaluations, prompt optimization, and agent testing.","colors":{"primary":"#e17100","light":"#fe9a00","dark":"#e17100"},"logo":{"light":"https://mintcdn.com/langwatch/RHmZel47SBF9eSZV/logo/dark.svg?fit=max\u0026auto=format\u0026n=RHmZel47SBF9eSZV\u0026q=85\u0026s=27fe16868ec581a9af33ced4398a0671","dark":"https://mintcdn.com/langwatch/RHmZel47SBF9eSZV/logo/light.svg?fit=max\u0026auto=format\u0026n=RHmZel47SBF9eSZV\u0026q=85\u0026s=08e9fbfe7cc5eff149cf77ee0809fe4f"},"favicon":"https://mintcdn.com/langwatch/AB8PLEfk80GQISzj/favicon.svg?fit=max\u0026auto=format\u0026n=AB8PLEfk80GQISzj\u0026q=85\u0026s=2f4e9559be1b98d8ad4afe23097bfbc3","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["python","typescript","curl"]}},"appearance":{"default":"system","strict":false},"navbar":{"links":[{"href":"https://docs.langwatch.ai/llms.txt","label":"llms.txt"},{"href":"https://app.langwatch.ai/?utm_source=docs\u0026utm_medium=docs\u0026utm_campaign=navbar-signin","label":"Sign In"}],"primary":{"type":"github","href":"https://github.com/langwatch/langwatch"}},"search":{"prompt":"Search the LangWatch docs"},"seo":{"organization":{"name":"LangWatch","url":"https://langwatch.ai","logo":"https://langwatch.ai/docs/logo/light.svg","sameAs":["https://github.com/langwatch/langwatch","https://x.com/langwatchai","https://www.linkedin.com/company/langwatch/","https://www.youtube.com/@LangWatch"]},"indexing":"navigable"},"integrations":{"gtm":{"tagId":"GTM-KJ4S6Z9C"}},"banner":{"content":"**[Get started with LangWatch Skills in seconds](https://langwatch.ai/docs/skills/directory):** Set up evals, scenario tests, and tracing just by asking your AI coding assistant.","dismissible":true},"errors":{"404":{"redirect":false,"title":"Page not found","description":"Most moved pages redirect on their own. If one of our own links sent you here, report it and we will fix it."}},"contextual":{"options":["copy","view","claude","chatgpt","cursor","vscode","mcp"],"display":"header"},"metadata":{"timestamp":true},"markdown":{"instructions":"If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details."},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Get Support","icon":"life-ring","href":"https://docs.langwatch.ai/support#email-support"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"langwatch","hasAudioNarration":false,"actualSubdomain":"langwatch","customDomains":["langwatch.ai"],"gitSource":{"type":"github","owner":"langwatch","repo":"langwatch","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec7ec98029e5fb8e3e607a","collectionId":"e1cd5cc9-04d1-4cd2-bacb-78997b8375f7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec7ec98029e5fb8e3e607a"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6aee67965b2d9a50d6c3cf82","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":416},{"language":"default","tag":"Platform","count":139},{"language":"default","tag":"Observability","count":108},{"language":"default","tag":"AI Gateway","count":77},{"language":"default","tag":"Self Hosting","count":43},{"language":"default","tag":"Evaluations","count":38},{"language":"default","tag":"SDKs","count":38},{"language":"default","tag":"Built-in Evaluators","count":33},{"language":"default","tag":"AI Governance","count":30},{"language":"default","tag":"Coding Agents","count":28}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".tabs .overflow-x-auto{overflow-x:visible!important}a[href=\"https://github.com/langwatch/langwatch\"] .text-sm{white-space:nowrap}[aria-controls~=\"accordion\"]{padding-right:8px;padding-left:8px;align-items:start}[aria-controls~=\"accordion\"] p:last-child{font-size:14px;margin-top:0.5rem}[aria-controls~=\"accordion\"] [class=\"mr-0.5\"]{margin-top:5px}[aria-controls~=\"accordion\"][aria-expanded=\"true\"] [class=\"mr-0.5\"]{margin-top:8px}#sidebar-group .lg\\:text-sm{font-size:0.85rem!important}#sidebar-group .lg\\:leading-6{line-height:1.375rem!important}#sidebar-group .mb-5{margin-bottom:0.75rem!important}#sidebar-group .sm\\:mb-4{margin-bottom:0.5rem!important}#sidebar-group .py-1\\.5{padding-top:0.25rem!important;padding-bottom:0.25rem!important}#sidebar-group .mt-12 .lg\\:mt-8{margin-top:2rem!important}#sidebar-group .mb-3\\.5{margin-bottom:0.5rem!important}#sidebar-group h5{font-size:0.9rem!important}#sidebar-group svg{height:0.8rem!important;width:0.8rem!important}#sidebar-group svg[viewBox=\"0 -9 3 24\"]{stroke-width:1px!important;height:28px!important;width:12px!important;opacity:0.8!important}#sidebar-group .group{position:relative!important;padding-right:20px!important}#sidebar-group .group svg[viewBox=\"0 -9 3 24\"]{position:absolute!important;right:8px!important;top:50%!important;transform:translateY(-50%)!important}#sidebar-group .duration-75{transform:none!important}#sidebar-group .group svg[viewBox=\"0 -9 3 24\"].duration-75{transform:translateY(-50%)!important}#sidebar-group .group svg[viewBox=\"0 -9 3 24\"].duration-75.rotate-90{transform:translateY(-50%) rotate(90deg)!important}.line-highlight{background:rgb(85 215 153 / 0.2)!important}.line-highlight:before{background:rgb(85 215 153 / 0.2)!important;border-left:4px solid rgb(85 215 153)!important}.line-highlight:after{background:rgb(85 215 153 / 0.2)!important}code{max-width:100%;overflow-x:auto}.lw-copy-prompt{border:1px solid #e5e7eb;border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;transition:all 0.15s;margin-bottom:8px}.lw-copy-prompt:hover{background:#f9fafb}.lw-copy-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid #e5e7eb;background:transparent;cursor:pointer;font-size:13px;font-weight:500;transition:all 0.15s;white-space:nowrap;color:inherit}.lw-copy-btn .lw-check-icon{display:none}.lw-copy-btn .lw-copy-icon{display:flex;align-items:center;gap:6px}.lw-copy-btn[data-copied] .lw-copy-icon{display:none}.lw-copy-btn[data-copied] .lw-check-icon{display:flex;align-items:center;gap:6px}.lw-copy-btn[data-copied]{background:#ecfdf5;color:#059669;border-color:#059669}.lw-copy-prompt[data-copied] .lw-copy-line-icon{display:none!important}.lw-copy-prompt[data-copied] .lw-copy-line-check{display:flex!important}.dark .lw-copy-prompt{border-color:#374151}.dark .lw-copy-prompt:hover{background:transparent;border-color:#6b7280}.dark .lw-copy-prompt:hover span{color:#f9fafb}.dark .lw-copy-btn{border-color:#374151}.dark .lw-copy-prompt:hover .lw-copy-btn{border-color:#6b7280;color:#f9fafb}.dark .lw-copy-btn[data-copied]{background:rgba(5, 150, 105, 0.15);border-color:rgba(5, 150, 105, 0.4);color:#059669}.lw-skill-install{border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px;margin-bottom:16px}.lw-skill-install.lw-skill-highlighted{border-color:rgba(225, 113, 0, 0.4);background:rgba(225, 113, 0, 0.06)}.dark .lw-skill-install{border-color:#374151}.dark .lw-skill-install.lw-skill-highlighted{border-color:rgba(225, 113, 0, 0.4)}.lw-inline-copy-btn{display:inline-flex;align-items:center;padding:2px;border:none;background:transparent;color:#9ca3af;cursor:pointer;transition:color 0.15s;vertical-align:middle}.lw-inline-copy-btn:hover{color:#6b7280}.dark .lw-inline-copy-btn:hover{color:#d1d5db}.lw-info-box{display:flex;gap:12px;padding:16px;border:1px solid #e5e7eb;border-radius:12px;background:#f9fafb;margin-bottom:16px;margin-top:32px}.lw-info-box-icon{flex-shrink:0;color:#6b7280;margin-top:6px}.lw-info-box-content{flex:1;min-width:0;font-size:14px}.lw-info-box-content p{margin:0 0 8px}.lw-info-box-content p:last-child{margin-bottom:0}.lw-info-box-content pre{margin:8px 0 0!important}.lw-info-box-content [data-component-part=\"code-block-root\"]{padding-top:6px!important}.lw-info-box-content .code-block{margin-bottom:0!important}.dark .lw-info-box{border-color:#374151;background:rgba(255, 255, 255, 0.03)}.dark .lw-info-box-icon{color:#9ca3af}.lw-accordion{border:1px solid #e5e7eb;border-radius:12px;margin-bottom:8px;overflow:hidden}.lw-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:background 0.15s;list-style:none}.lw-accordion-header:hover{background:#f9fafb}.lw-accordion-title{font-size:14px}.lw-accordion-chevron{flex-shrink:0;transition:transform 0.2s;color:#9ca3af}.lw-accordion[data-open] .lw-accordion-chevron{transform:rotate(180deg)}.lw-accordion-body{display:none;padding:0 16px 16px;border-top:1px solid #e5e7eb}.lw-accordion[data-open] .lw-accordion-body{display:block}.lw-accordion-static .lw-accordion-header{cursor:default}.lw-accordion-static .lw-accordion-header:hover{background:transparent}.lw-prompt-source{display:none}.lw-accordion-commands{display:flex;gap:16px;margin-top:12px}.lw-accordion-cmd-col{flex:1;min-width:0}.lw-accordion-cmd-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:#6b7280;margin-bottom:6px}.lw-accordion-cmd-box{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb;cursor:pointer;transition:border-color 0.15s}.lw-accordion-cmd-box:hover{border-color:#d1d5db}.lw-accordion-cmd-box code{font-size:13px;font-family:var(--font-mono, monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;background:transparent!important;padding:0!important;border:none!important}.lw-slash-command{color:#e17100;font-weight:600}.lw-accordion-cmd-box[data-copied]{border-color:#059669;background:#ecfdf5}.lw-accordion-cmd-box[data-copied] .lw-copy-line-icon{display:none!important}.lw-accordion-cmd-box[data-copied] .lw-copy-line-check{display:inline-flex!important}.lw-accordion-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.lw-accordion-action{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid #e5e7eb;border-radius:8px;background:transparent;cursor:pointer;text-decoration:none;color:inherit;transition:all 0.15s;text-align:left}.lw-accordion-action:hover{background:#f9fafb;border-color:#d1d5db}.lw-accordion-action-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;flex-shrink:0}.lw-accordion-action-text{display:flex;flex-direction:column;line-height:1.2}.lw-accordion-action-title{font-size:13px;font-weight:500}.lw-accordion-action-subtitle{font-size:11px;font-weight:400;color:#9ca3af}.lw-accordion-action[data-copied]{background:#ecfdf5;border-color:#059669}.lw-accordion-action[data-copied] .lw-copy-line-icon{display:none!important}.lw-accordion-action[data-copied] .lw-copy-line-check{display:flex!important}.dark .lw-accordion{border-color:#374151}.dark .lw-accordion-header:hover{background:rgba(255, 255, 255, 0.03)}.dark .lw-accordion-static .lw-accordion-header:hover{background:transparent}.dark .lw-accordion-body{border-top-color:#374151}.dark .lw-accordion-cmd-box{background:rgba(255, 255, 255, 0.05);border-color:#374151}.dark .lw-accordion-cmd-box:hover{border-color:#6b7280}.dark .lw-accordion-cmd-box[data-copied]{background:rgba(5, 150, 105, 0.15);border-color:rgba(5, 150, 105, 0.4)}.dark .lw-accordion-action{border-color:#374151}.dark .lw-accordion-action-icon{border-color:#374151}.dark .lw-accordion-action:hover{background:rgba(255, 255, 255, 0.03);border-color:#6b7280}.dark .lw-accordion-action[data-copied]{background:rgba(5, 150, 105, 0.15);border-color:rgba(5, 150, 105, 0.4)}.dark .lw-accordion-chevron{color:#6b7280}.dark .lw-slash-command{color:#fe9a00}#sidebar-group .group>img{align-self:center}#footer{flex-wrap:wrap;row-gap:0}.lw-agent-report{flex:0 0 100%;font-size:14px;color:#9ca3af;padding-bottom:12px}.lw-agent-report a{color:inherit;text-decoration:underline;text-underline-offset:2px}.lw-agent-report a:hover{color:#6b7280}.lw-agent-report code{font-size:13px;white-space:nowrap;background:rgba(0, 0, 0, 0.04);border:1px solid #e5e7eb;border-radius:4px;padding:1px 5px}.dark .lw-agent-report{color:#6b7280}.dark .lw-agent-report a:hover{color:#9ca3af}.dark .lw-agent-report code{background:rgba(255, 255, 255, 0.05);border-color:#374151}"}],"page":{"pagePath":"ai-gateway/governance/ocsf-export","slug":"/ai-gateway/governance/ocsf-export","pageMetadata":{"title":"OCSF / SIEM export","description":"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.","sidebarTitle":"OCSF / SIEM export","href":"/ai-gateway/governance/ocsf-export"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-the-export-contains`,children:`What the export contains`}),`\n`,_jsxs(_components.p,{children:[`LangWatch writes one OCSF record per trace that arrives through an `,_jsx(_components.a,{href:`/ai-governance/ingestion-sources/index`,children:`ingestion source`}),`, and one per admin view of a member’s or a team’s workspace (`,_jsx(_components.code,{children:`actionName`}),` `,_jsx(_components.code,{children:`governance.viewWorkspaceAs`}),`). Each record is an OCSF 1.1 API Activity event (`,_jsx(_components.code,{children:`class_uid`}),` 6003, `,_jsx(_components.code,{children:`category_uid`}),` 6). A record linked to an anomaly alert has `,_jsx(_components.code,{children:`severity_id`}),` 4 (Medium); every other record has `,_jsx(_components.code,{children:`severity_id`}),` 1 (Informational).`]}),`\n`,_jsx(_components.p,{children:`Records are stored with no expiry. Your SIEM pulls them by cursor, on its own schedule, and keeps its own watermark.`}),`\n`,_jsx(Heading,{level:`2`,id:`endpoint-and-auth`,children:`Endpoint and auth`}),`\n`,_jsxs(_components.p,{children:[`The export is the tRPC query `,_jsx(_components.code,{children:`governance.ocsfExport`}),`. Call it as a `,_jsx(_components.code,{children:`GET`}),` on `,_jsx(_components.code,{children:`/api/trpc/governance.ocsfExport`}),` with the input JSON in the `,_jsx(_components.code,{children:`input`}),` query parameter.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Requirement`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Plan`}),_jsx(_components.td,{children:`Enterprise`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Permission`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`complianceExport:view`}),`. Organization admins hold it; grant it to another role through a custom role. See `,_jsx(_components.a,{href:`/ai-gateway/rbac`,children:`RBAC`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Auth`}),_jsx(_components.td,{children:`The session cookie of a signed-in user. API keys and virtual keys are not accepted`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tenancy`}),_jsxs(_components.td,{children:[`The permission is checked against `,_jsx(_components.code,{children:`organizationId`}),`. A call for an organization where the caller does not hold it is refused`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`input`,children:`Input`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`organizationId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`required`}),_jsx(_components.td,{children:`The organization to export`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sinceMs`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0`})}),_jsxs(_components.td,{children:[`Return records with `,_jsx(_components.code,{children:`eventTimeMs`}),` after this UNIX millisecond watermark`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sinceEventId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`none`}),_jsxs(_components.td,{children:[`Paired with `,_jsx(_components.code,{children:`sinceMs`}),`: the `,_jsx(_components.code,{children:`eventId`}),` of the last record you received, so records that share a millisecond are neither skipped nor repeated`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`limit`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`500`})}),_jsx(_components.td,{children:`Page size, 1 to 1000`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`output`,children:`Output`}),`\n`,_jsxs(_components.p,{children:[`The HTTP response wraps the procedure result under `,_jsx(_components.code,{children:`result.data.json`}),`. The result is:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`26`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"events\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"eventId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"evt_01HZX9N...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ocsfSchemaVersion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.1.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"traceId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"trace_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sourceId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"src_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sourceType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"otel_generic\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"classUid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6003`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"categoryUid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"activityId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"typeUid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`600306`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"severityId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"eventTimeMs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1748678421123`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"actorUserId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"user_...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"actorEmail\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"jane@acme.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"actorEnduserId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"actionName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"web_search\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"targetName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"anthropic/claude-sonnet-4\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"anomalyAlertId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rawOcsfJson\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{...}\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"nextCursor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1748678421123`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"nextCursorCompound\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"eventTimeMs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1748678421123`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"eventId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"evt_01HZX9N...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`rawOcsfJson`}),` is the full OCSF 1.1 event as a JSON string. The other fields are the columns your SIEM filters on. `,_jsx(_components.code,{children:`actionName`}),` is the tool the trace invoked, or `,_jsx(_components.code,{children:`trace.recorded`}),` for a trace with no tool call. An organization with no ingestion source yet returns `,_jsx(_components.code,{children:`{ \"events\": [], \"nextCursor\": null, \"nextCursorCompound\": null }`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`anomalyAlertId`}),` is returned on every record and is `,_jsx(_components.strong,{children:`always empty`}),`. No attribute sets it, so no exported record is ever linked to an anomaly alert, and `,_jsx(_components.code,{children:`severityId`}),` is always 1 (Informational). Anomaly alerts are not exported as OCSF rows at all. They are delivered by webhook, described in `,_jsx(_components.a,{href:`/ai-governance/anomaly-rules`,children:`Anomaly rules`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsxs(_components.p,{children:[`Persist `,_jsx(_components.code,{children:`nextCursorCompound`}),` after each page. On the next pull, pass its `,_jsx(_components.code,{children:`eventTimeMs`}),` as `,_jsx(_components.code,{children:`sinceMs`}),` and its `,_jsx(_components.code,{children:`eventId`}),` as `,_jsx(_components.code,{children:`sinceEventId`}),`. Records are ordered by `,_jsx(_components.code,{children:`eventTimeMs`}),` ascending.`]}),`\n`,_jsxs(_components.p,{children:[`A page that returns `,_jsx(_components.code,{children:`limit`}),` records may be followed by more. Pull again at once until a page returns fewer than `,_jsx(_components.code,{children:`limit`}),` records, then wait for your next scheduled run.`]}),`\n`,_jsx(Heading,{level:`2`,id:`example`,children:`Example`}),`\n`,_jsxs(_components.p,{children:[`Write the cookie into a curl config file that only the job user can read, and pass the file rather than the value. A `,_jsx(_components.code,{children:`-H`}),` argument puts the cookie in the process argument list, where every other user on the host can read it out of `,_jsx(_components.code,{children:`ps`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`conf`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`mktemp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`)\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`trap`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'rm -f \"$conf\"'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` EXIT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`printf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'header = \"Cookie: %s\"\\\\n'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$SESSION_COOKIE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$conf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`mktemp`}),` makes a new file each run, owned by the job user and readable only by them. Writing to a fixed path instead would reuse whatever file or symlink is already there, and keep its permissions.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`INPUT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'{\"json\":{\"organizationId\":\"YOUR_ORGANIZATION_ID\",\"sinceMs\":0,\"limit\":500}}'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -G`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.langwatch.ai/api/trpc/governance.ocsfExport\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-urlencode`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"input=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INPUT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$conf`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`$SESSION_COOKIE`}),` is the cookie of a browser session signed in as a user who holds `,_jsx(_components.code,{children:`complianceExport:view`}),`. Read it from your secrets store into the job environment. The `,_jsx(_components.code,{children:`trap`}),` deletes the config file when the shell exits, on a failed run as well as a clean one. Forward `,_jsx(_components.code,{children:`events[]`}),` to your SIEM’s ingest API, then store `,_jsx(_components.code,{children:`nextCursorCompound`}),` for the next run.`]}),`\n`,_jsxs(Warning,{children:[`The session cookie is a full browser credential for that user, and this endpoint takes no other credential. It is not scoped to `,_jsx(_components.code,{children:`complianceExport:view`}),`, and it expires on the session’s own schedule rather than the job’s. Keep it out of shell history, out of the process argument list, and out of any script committed to a repository, and rotate the session when the job host changes.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Also check:`}),` `,_jsx(_components.a,{href:`/ai-governance/anomaly-rules`,children:`Anomaly rules`}),` for how a fired alert reaches you, which is by webhook rather than through this export, and `,_jsx(_components.a,{href:`/ai-gateway/governance/retention`,children:`Retention`}),` for how long the source traces are kept.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"OCSF / SIEM export","description":"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.","sidebarTitle":"OCSF / SIEM export","href":"/ai-gateway/governance/ocsf-export"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What the export contains","slug":"what-the-export-contains","depth":2,"children":[]},{"title":"Endpoint and auth","slug":"endpoint-and-auth","depth":2,"children":[]},{"title":"Input","slug":"input","depth":2,"children":[]},{"title":"Output","slug":"output","depth":2,"children":[]},{"title":"Pagination","slug":"pagination","depth":2,"children":[]},{"title":"Example","slug":"example","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/langwatch/1c7dbbb4aa0b0c87/expand-menus.js","/docs/_mintlify/custom/langwatch/fdd2d1ee81d630a0/posthog.js"],"subdomain":"langwatch","siteName":"LangWatch","title":"OCSF / SIEM export - LangWatch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-09T18:22:26.786Z","gitLastModified":"2026-09-09T18:21:45.000Z","originalFileLocation":"ai-gateway/governance/ocsf-export.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LangWatch\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"OCSF / SIEM export - LangWatch\">\u003cmeta data-mint-head property=\"og:description\" content=\"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LangWatch\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://langwatch.mintlify.site/docs/_mintlify/api/og/v2?division=Governance\u0026amp;title=OCSF+%2F+SIEM+export\u0026amp;description=Pull+governance+events+into+your+SIEM+as+OCSF+1.1+records+through+a+cursor-paginated+read+procedure.\u0026amp;theme=c82022416a7a1873b973b6a4\u0026amp;signature=b8ee67a1de846d148d9ce199797e38c010835ef40b7c345475d94e9ffbf1f0cb\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"OCSF / SIEM export - LangWatch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://langwatch.mintlify.site/docs/_mintlify/api/og/v2?division=Governance\u0026amp;title=OCSF+%2F+SIEM+export\u0026amp;description=Pull+governance+events+into+your+SIEM+as+OCSF+1.1+records+through+a+cursor-paginated+read+procedure.\u0026amp;theme=c82022416a7a1873b973b6a4\u0026amp;signature=b8ee67a1de846d148d9ce199797e38c010835ef40b7c345475d94e9ffbf1f0cb\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/langwatch/kXoUUhFGtPYqSZK4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LangWatch\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#e17100\">\u003clink data-mint-head rel=\"canonical\" href=\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/ai-gateway/governance/ocsf-export.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://langwatch.ai/#organization\",\"name\":\"LangWatch\",\"url\":\"https://langwatch.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://langwatch.ai/docs/logo/light.svg\"},\"sameAs\":[\"https://github.com/langwatch/langwatch\",\"https://x.com/langwatchai\",\"https://www.linkedin.com/company/langwatch/\",\"https://www.youtube.com/@LangWatch\"]},{\"@type\":\"WebSite\",\"@id\":\"https://langwatch.ai/docs#website\",\"name\":\"LangWatch\",\"url\":\"https://langwatch.ai/docs\",\"publisher\":{\"@id\":\"https://langwatch.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export#webpage\",\"url\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export\",\"name\":\"OCSF / SIEM export\",\"description\":\"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\",\"dateModified\":\"2026-09-09T18:21:45.000Z\",\"isPartOf\":{\"@id\":\"https://langwatch.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Governance\",\"item\":\"https://langwatch.ai/docs/ai-gateway/governance/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OCSF / SIEM export\",\"item\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export#article\",\"headline\":\"OCSF / SIEM export\",\"name\":\"OCSF / SIEM export\",\"description\":\"Pull governance events into your SIEM as OCSF 1.1 records through a cursor-paginated read procedure.\",\"url\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export\",\"mainEntityOfPage\":{\"@id\":\"https://langwatch.ai/docs/ai-gateway/governance/ocsf-export#webpage\"},\"dateModified\":\"2026-09-09T18:21:45.000Z\",\"publisher\":{\"@id\":\"https://langwatch.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://langwatch.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LangWatch\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"LangWatch","nav":{"global":{"anchors":[{"anchor":"Get Support","icon":"life-ring","href":"https://docs.langwatch.ai/support#email-support"}]},"anchors":[{"anchor":"Platform","icon":"book-open","pages":[{"title":"Platform","href":"/introduction"}]},{"anchor":"Observability","icon":"plug","pages":[{"title":"Observability","href":"/integration/overview"}]},{"anchor":"AI Gateway","icon":"route","groups":[{"group":"Get Started","pages":[{"title":"LangWatch AI Gateway","sidebarTitle":"Overview","href":"/ai-gateway/overview"},{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/ai-gateway/quickstart"},{"title":"Concepts","sidebarTitle":"Concepts","href":"/ai-gateway/concepts"}]},{"group":"SDK Integration","pages":[{"group":"Python","icon":"python","pages":[{"title":"Python","sidebarTitle":"Python","href":"/ai-gateway/sdks/python"}]},{"group":"TypeScript","icon":"typescript","pages":[{"title":"TypeScript","sidebarTitle":"TypeScript","href":"/ai-gateway/sdks/typescript"}]},{"group":"Go SDK","icon":"/images/logos/golang.svg","pages":[{"title":"Go","sidebarTitle":"Go SDK","href":"/ai-gateway/sdks/go"}]},{"group":"HTTP and other clients","icon":"globe","pages":[{"title":"Any OpenAI-compatible client","sidebarTitle":"HTTP and other clients","href":"/ai-gateway/sdks/http"}]}]},{"group":"Virtual Keys \u0026 Budgets","pages":[{"title":"Virtual Keys","sidebarTitle":"Virtual Keys","href":"/ai-gateway/virtual-keys"},{"title":"Budgets","sidebarTitle":"Budgets","href":"/ai-gateway/budgets"},{"title":"Rate limits","sidebarTitle":"Rate limits","href":"/ai-gateway/rate-limits"},{"title":"RBAC","sidebarTitle":"RBAC","href":"/ai-gateway/rbac"}]},{"group":"Billing \u0026 Metering","pages":[{"title":"Billing and spend events","sidebarTitle":"Billing and spend events","href":"/ai-gateway/billing-events"},{"title":"Webhooks","sidebarTitle":"Webhooks","href":"/features/webhooks"},{"title":"Metering and rebilling your customers through the gateway","sidebarTitle":"Metering \u0026 Rebilling","href":"/ai-gateway/cookbooks/metering-and-rebilling"},{"title":"Voice in a consumer app: one budget per end user","sidebarTitle":"Consumer voice app","href":"/ai-gateway/cookbooks/consumer-voice-app"},{"title":"Demo: a rebilling agent platform","sidebarTitle":"Demo: Rebilling Platform","href":"/ai-gateway/demo-agent-platform"}]},{"group":"Governance","pages":[{"title":"Governance overview","sidebarTitle":"Overview","href":"/ai-gateway/governance/overview"},{"title":"Personal keys","sidebarTitle":"Personal keys","href":"/ai-gateway/governance/personal-keys"},{"title":"Admin setup","sidebarTitle":"Admin setup","href":"/ai-gateway/governance/admin-setup"},{"title":"Routing Policies","sidebarTitle":"Routing policies","href":"/ai-gateway/governance/routing-policies"},{"title":"Retention","description":"What the LangWatch AI Gateway stores for each request, and which setting governs how long each record lives.","sidebarTitle":"Retention","href":"/ai-gateway/governance/retention"},{"title":"OCSF / SIEM export","sidebarTitle":"OCSF / SIEM export","href":"/ai-gateway/governance/ocsf-export"},{"title":"LangWatch AI Gateway architecture","description":"The components of the LangWatch AI Gateway and how they connect, from the request pipeline in the gateway service to the control plane routes, the change feed, the spend spool and the auth cache.","sidebarTitle":"Architecture","href":"/ai-gateway/governance/architecture"}]},{"group":"Providers","pages":[{"title":"Providers","sidebarTitle":"Overview","href":"/ai-gateway/providers/overview"},{"title":"OpenAI","sidebarTitle":"OpenAI","href":"/ai-gateway/providers/openai"},{"title":"Anthropic","sidebarTitle":"Anthropic","href":"/ai-gateway/providers/anthropic"},{"title":"Azure OpenAI","sidebarTitle":"Azure OpenAI","href":"/ai-gateway/providers/azure-openai"},{"title":"AWS Bedrock","sidebarTitle":"AWS Bedrock","href":"/ai-gateway/providers/bedrock"},{"title":"Google Vertex AI","sidebarTitle":"Vertex AI","href":"/ai-gateway/providers/vertex"},{"title":"Google Gemini","sidebarTitle":"Gemini","href":"/ai-gateway/providers/gemini"},{"title":"xAI","sidebarTitle":"xAI","href":"/ai-gateway/providers/xai"},{"title":"Groq","sidebarTitle":"Groq","href":"/ai-gateway/providers/groq"},{"title":"Cerebras","sidebarTitle":"Cerebras","href":"/ai-gateway/providers/cerebras"},{"title":"DeepSeek","sidebarTitle":"DeepSeek","href":"/ai-gateway/providers/deepseek"},{"title":"Doubleword","sidebarTitle":"Doubleword","href":"/ai-gateway/providers/doubleword"},{"title":"Voyage AI","sidebarTitle":"Voyage AI","href":"/ai-gateway/providers/voyage"},{"title":"ElevenLabs","sidebarTitle":"ElevenLabs","href":"/ai-gateway/providers/elevenlabs"},{"title":"OpenAI account","sidebarTitle":"OpenAI account","href":"/ai-gateway/providers/openai-account"},{"title":"Custom OpenAI-compatible","sidebarTitle":"Custom OpenAI-compatible","href":"/ai-gateway/providers/custom-openai-compatible"},{"title":"Fallback Chains","sidebarTitle":"Fallback chains","href":"/ai-gateway/providers/fallback-chains"}]},{"group":"Features","pages":[{"group":"Caching \u0026 Performance","pages":[{"title":"Cache Control","sidebarTitle":"Cache control","href":"/ai-gateway/cache-control"},{"title":"Streaming","sidebarTitle":"Streaming","href":"/ai-gateway/streaming"}]},{"group":"Safety \u0026 Governance","pages":[{"title":"Guardrails","sidebarTitle":"Guardrails","href":"/ai-gateway/guardrails"},{"title":"Security \u0026 Trust","sidebarTitle":"Security \u0026 Trust","href":"/ai-gateway/security"},{"title":"Policy Rules","sidebarTitle":"Policy rules","href":"/ai-gateway/policy-rules"},{"title":"Audit log","sidebarTitle":"Audit log","href":"/ai-gateway/audit"}]},{"title":"Model Naming","sidebarTitle":"Model Naming","href":"/ai-gateway/model-naming"},{"title":"Parameter mapping","sidebarTitle":"Parameter mapping","href":"/ai-gateway/parameter-mapping"},{"title":"Model Aliases","sidebarTitle":"Model Aliases","href":"/ai-gateway/model-aliases"},{"group":"Operations","pages":[{"title":"Observability","sidebarTitle":"Observability","href":"/ai-gateway/observability"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/ai-gateway/troubleshooting"}]}]},{"group":"API Reference","pages":[{"title":"POST /v1/chat/completions","sidebarTitle":"Chat Completions","href":"/ai-gateway/api/chat-completions"},{"title":"POST /v1/messages","sidebarTitle":"Messages","href":"/ai-gateway/api/messages"},{"title":"POST /v1/responses","sidebarTitle":"Responses","href":"/ai-gateway/api/responses"},{"title":"POST /v1/embeddings","sidebarTitle":"Embeddings","href":"/ai-gateway/api/embeddings"},{"title":"POST /v1/decisions","sidebarTitle":"Decisions","href":"/ai-gateway/api/decisions"},{"title":"POST /v1/audio/*","sidebarTitle":"Audio (TTS + STT)","href":"/ai-gateway/api/audio"},{"title":"POST /v1/images/*","sidebarTitle":"Images","href":"/ai-gateway/api/images"},{"title":"ElevenLabs API paths","sidebarTitle":"ElevenLabs","href":"/ai-gateway/api/elevenlabs"},{"title":"Realtime voice","href":"/ai-gateway/api/realtime"},{"title":"Gemini native (/v1beta)","sidebarTitle":"Gemini Native","href":"/ai-gateway/api/gemini-native"},{"title":"GET /v1/models","sidebarTitle":"Models","href":"/ai-gateway/api/models"},{"title":"Error Envelope","sidebarTitle":"Errors","href":"/ai-gateway/api/errors"},{"title":"Management REST API","sidebarTitle":"Management REST","href":"/ai-gateway/api/management"}]},{"group":"Self-Hosting","pages":[{"title":"Helm chart","sidebarTitle":"Helm","href":"/ai-gateway/self-hosting/helm"},{"title":"Post-install checklist","href":"/ai-gateway/self-hosting/post-install-checklist"},{"title":"Config","sidebarTitle":"Config","href":"/ai-gateway/self-hosting/config"},{"title":"DNS and TLS","sidebarTitle":"DNS \u0026 TLS","href":"/ai-gateway/self-hosting/dns-and-tls"},{"title":"Health Checks","sidebarTitle":"Health Checks","href":"/ai-gateway/self-hosting/health-checks"},{"title":"Scaling","sidebarTitle":"Scaling","href":"/ai-gateway/self-hosting/scaling"}]},{"group":"Cookbooks","pages":[{"title":"CI smoke test","sidebarTitle":"CI smoke test","href":"/ai-gateway/cookbooks/ci-smoke-test"},{"title":"Migrate from direct provider calls","sidebarTitle":"Migrate from direct","href":"/ai-gateway/cookbooks/migrate-from-direct"},{"title":"Migrate from Portkey","sidebarTitle":"Migrate from Portkey","href":"/ai-gateway/cookbooks/migrate-from-portkey"},{"title":"Migrate from LiteLLM","sidebarTitle":"Migrate from LiteLLM","href":"/ai-gateway/cookbooks/migrate-from-litellm"},{"title":"Credential-leak incident response","sidebarTitle":"Responding to credential leaks","href":"/ai-gateway/cookbooks/credential-leak-incident"},{"title":"Prometheus alert rules","sidebarTitle":"Prometheus alerts","href":"/ai-gateway/cookbooks/prometheus-alerts"},{"title":"Grafana dashboard","sidebarTitle":"Grafana dashboard","href":"/ai-gateway/cookbooks/grafana-dashboard"}]}]},{"anchor":"AI Governance","icon":"shield-check","pages":[{"title":"AI Governance","href":"/ai-governance/overview"}]},{"anchor":"Coding Agents","icon":"square-terminal","pages":[{"title":"Coding Agents","href":"/coding-agents/overview"}]},{"anchor":"Langy","icon":"robot","pages":[{"title":"Langy","href":"/langy/overview"}]},{"anchor":"Self Hosting","icon":"server","pages":[{"title":"Self Hosting","href":"/self-hosting/overview"}]},{"anchor":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"OCSF / SIEM export - LangWatch","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["10e4515597"],"chunks":["BannerMarkdown-B5WzX-8C.js","dist-BPypQKlo.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-6wHzaN2_.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}