Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.
Apart from the reserved pre-defined events, you can also define your own events relevant to your business to correlate with your LLM messages and threads to measure your product performance.Custom events allow you to track any user interactions with your LLM application by sending numeric metrics and capturing additional details about the event. You can define any name for the event on the event_type field, and any metric names you want on metrics with numeric values, plus any extra details you want to capture on event_details with string values. Keep them consistent to visualize on the dashboard, where you can customize the display later on.
You can send any event type with corresponding numeric metrics and string details. This flexibility allows you to tailor event tracking to your specific needs.On the dashboard, you can visualize the tracked events on the “Events” tab when opening the trace details.
Last modified on October 29, 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":"user-events/custom","slug":"/user-events/custom","pageMetadata":{"title":"Custom Events","description":"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.","href":"/user-events/custom"},"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: \"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\"\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={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Apart from the reserved pre-defined events, you can also define your own events relevant to your business to correlate with your LLM messages and threads to measure your product performance.`}),`\n`,_jsxs(_components.p,{children:[`Custom events allow you to track any user interactions with your LLM application by sending numeric metrics and capturing additional details about the event. You can define any name for the event on the `,_jsx(_components.code,{children:`event_type`}),` field, and any metric names you want on `,_jsx(_components.code,{children:`metrics`}),` with numeric values, plus any extra details you want to capture on `,_jsx(_components.code,{children:`event_details`}),` with string values. Keep them consistent to visualize on the dashboard, where you can customize the display later on.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rest-api-specification`,children:`REST API Specification`}),`\n`,_jsx(Heading,{level:`3`,id:`endpoint`,children:`Endpoint`}),`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`POST /api/track_event`})}),`\n`,_jsx(Heading,{level:`3`,id:`headers`,children:`Headers`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`X-Auth-Token`}),`: Your LangWatch API key.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`request-body`,children:`Request Body`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`jsonc`,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:`jsonc`,children:_jsxs(_components.code,{language:`jsonc`,numberOfLines:`11`,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:` \"trace_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"id of the message the event occurred\"`}),_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:` \"event_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"your_custom_event_type\"`}),_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:` \"metrics\"`}),_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:` \"your_metric_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`123`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Any numeric metric`})]}),`\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:` \"event_details\"`}),_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:` \"your_detail_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Any string detail\"`})]}),`\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:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1617981376000`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Unix timestamp in milliseconds`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`15`,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:`15`,children:[_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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://app.langwatch.ai/api/track_event\"`}),_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:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-Auth-Token: your_api_key\"`}),_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:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_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:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"trace_id\": \"trace_Yy0XWu6BOwwnrkLtQh9Ji\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event_type\": \"add_to_cart\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"metrics\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 17.5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event_details\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"product_id\": \"sku_123\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"referral_source\": \"bot_suggested\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"timestamp\": 1617981376000`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can send any event type with corresponding numeric metrics and string details. This flexibility allows you to tailor event tracking to your specific needs.`}),`\n`,_jsx(_components.p,{children:`On the dashboard, you can visualize the tracked events on the “Events” tab when opening the trace details.`}),`\n`,_jsx(OptimizedImage,{className:`mint-block`,src:`https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=1d314126c88ed98ccebeb914d1d7c12f`,alt:`Custom Events details table`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`371`,height:`371`,\"data-path\":`images/custom-events.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=280\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=009a7e602fa18beea1e2ec1781be32c1 280w, https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=560\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=1a53018bc8fddb0685b44532a287943f 560w, https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=840\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=9c9de42de3b2e4e1c51c8ee2b72e6918 840w, https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=31dce0a4724590fc221a65bd1b3f6b91 1100w, https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=09529e6eb1af0824a2895cc76aa7735e 1650w, https://mintcdn.com/langwatch/yNF_rRIoKmcNweQl/images/custom-events.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yNF_rRIoKmcNweQl\u0026q=85\u0026s=314f279f80363207ef0365ee781ffa22 2500w`})]})}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":"Custom Events","description":"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.","href":"/user-events/custom"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"REST API Specification","slug":"rest-api-specification","depth":2,"children":[{"title":"Endpoint","slug":"endpoint","depth":3,"children":[]},{"title":"Headers","slug":"headers","depth":3,"children":[]},{"title":"Request Body","slug":"request-body","depth":3,"children":[]},{"title":"Example","slug":"example","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/langwatch/1c7dbbb4aa0b0c87/expand-menus.js","/docs/_mintlify/custom/langwatch/fdd2d1ee81d630a0/posthog.js"],"dynamicCss":".mint-block {\n display: block\n}","subdomain":"langwatch","siteName":"LangWatch","title":"Custom Events - LangWatch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T01:41:27.910Z","gitLastModified":"2026-10-29T01:40:40.000Z","originalFileLocation":"user-events/custom.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=\"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\">\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=\"Custom Events - LangWatch\">\u003cmeta data-mint-head property=\"og:description\" content=\"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LangWatch\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://langwatch.ai/docs/user-events/custom\">\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=User+Events\u0026amp;title=Custom+Events\u0026amp;description=Track+custom+user+events+in+your+LLM+application+using+LangWatch+to+support+analytics%2C+evaluations%2C+and+agent+testing+workflows.\u0026amp;theme=c82022416a7a1873b973b6a4\u0026amp;signature=d7a5ed1d8d2bbaae3a30536e8bd604205f35d44ab4c7f1f440cfb964581b1ab5\">\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=\"Custom Events - LangWatch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://langwatch.mintlify.site/docs/_mintlify/api/og/v2?division=User+Events\u0026amp;title=Custom+Events\u0026amp;description=Track+custom+user+events+in+your+LLM+application+using+LangWatch+to+support+analytics%2C+evaluations%2C+and+agent+testing+workflows.\u0026amp;theme=c82022416a7a1873b973b6a4\u0026amp;signature=d7a5ed1d8d2bbaae3a30536e8bd604205f35d44ab4c7f1f440cfb964581b1ab5\">\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/user-events/custom\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/user-events/custom.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/user-events/custom#webpage\",\"url\":\"https://langwatch.ai/docs/user-events/custom\",\"name\":\"Custom Events\",\"description\":\"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\",\"dateModified\":\"2026-10-29T01:40:40.000Z\",\"isPartOf\":{\"@id\":\"https://langwatch.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://langwatch.ai/docs/user-events/custom#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://langwatch.ai/docs/user-events/custom#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Observability\",\"item\":\"https://langwatch.ai/docs/observability/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Events\",\"item\":\"https://langwatch.ai/docs/user-events/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Custom Events\",\"item\":\"https://langwatch.ai/docs/user-events/custom\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://langwatch.ai/docs/user-events/custom#article\",\"headline\":\"Custom Events\",\"name\":\"Custom Events\",\"description\":\"Track custom user events in your LLM application using LangWatch to support analytics, evaluations, and agent testing workflows.\",\"url\":\"https://langwatch.ai/docs/user-events/custom\",\"mainEntityOfPage\":{\"@id\":\"https://langwatch.ai/docs/user-events/custom#webpage\"},\"dateModified\":\"2026-10-29T01:40:40.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","groups":[{"group":"Get Started","pages":[{"title":"The open-source platform for AI in production","sidebarTitle":"Introduction","href":"/introduction"},{"group":"LangWatch Skills","pages":[{"title":"Skills Directory","sidebarTitle":"Skills Directory","href":"/skills/directory"},{"title":"PM \u0026 Domain Expert Skills","sidebarTitle":"PM \u0026 Domain Experts","href":"/skills/pms-and-domain-experts"}]},{"title":"LangWatch CLI","sidebarTitle":"LangWatch CLI","href":"/integration/cli"},{"title":"LangWatch MCP Server","sidebarTitle":"LangWatch MCP","href":"/integration/mcp"},{"title":"Changelog","href":"/changelog"}]},{"group":"Agent Testing","pages":[{"title":"Agent Testing","sidebarTitle":"Overview","href":"/agent-testing/overview"},{"group":"Get started","pages":[{"title":"Test Your Agent from the Platform","sidebarTitle":"Test from the platform","href":"/agent-testing/test-from-the-platform"},{"title":"Write Scenarios in Code","sidebarTitle":"Scenarios in code","href":"/agent-testing/scenarios-in-code"}]},{"group":"Connect your agent","pages":[{"title":"Connect Your Agent","sidebarTitle":"Overview","href":"/agent-testing/connect-your-agent"},{"title":"Targets","sidebarTitle":"Targets","href":"/agent-testing/targets"},{"title":"Environments and Personal Agents","sidebarTitle":"Environments","href":"/agent-testing/environments"},{"title":"Linking Your Traces","sidebarTitle":"Linking your traces","href":"/agent-testing/linking-your-traces"},{"title":"Testing Agents Behind Authentication","sidebarTitle":"Authenticated agents","href":"/agent-testing/authenticated-agents"},{"title":"Other Ways to Connect","sidebarTitle":"Other ways to connect","href":"/agent-testing/other-ways-to-connect"}]},{"group":"Scenarios","pages":[{"title":"Scenarios","sidebarTitle":"Scenarios","href":"/agent-testing/scenarios"},{"title":"Test Suites","sidebarTitle":"Test suites","href":"/agent-testing/test-suites"},{"title":"Evaluators","sidebarTitle":"Evaluators","href":"/agent-testing/evaluators"},{"title":"Scenario Run Parameters","sidebarTitle":"Run parameters","href":"/agent-testing/run-parameters"},{"title":"Setup and Teardown Hooks","sidebarTitle":"Setup and teardown hooks","href":"/agent-testing/setup-and-teardown-hooks"}]},{"group":"Runs and results","pages":[{"title":"Run Plans","sidebarTitle":"Run plans","href":"/agent-testing/run-plans"},{"title":"Results","sidebarTitle":"Results","href":"/agent-testing/results"},{"title":"Compare Agents","sidebarTitle":"Compare agents","href":"/agent-testing/compare-agents"},{"title":"Run from CI","sidebarTitle":"Run from CI","href":"/agent-testing/run-from-ci"}]},{"group":"Improve your agent","pages":[{"title":"Improve Your Agent","sidebarTitle":"Overview","href":"/improve-your-agent/overview"},{"title":"Reduce the Turns of an Agent","sidebarTitle":"Reduce turns","href":"/improve-your-agent/reduce-turns"},{"title":"Fix and Optimize Tool Calls","sidebarTitle":"Fix tool calls","href":"/improve-your-agent/fix-tool-calls"},{"title":"Reduce Cost and Latency","sidebarTitle":"Reduce cost and latency","href":"/improve-your-agent/reduce-cost-and-latency"},{"title":"Optimize with DSPy Using Scenarios as the Metric","sidebarTitle":"Optimize with DSPy","href":"/improve-your-agent/optimize-with-dspy"},{"title":"Optimization Algorithms","sidebarTitle":"Optimization algorithms","href":"/improve-your-agent/algorithms"}]},{"title":"Voice Agents","sidebarTitle":"Voice Agents","href":"/agent-testing/voice-agents"},{"title":"Red Teaming","sidebarTitle":"Red Teaming","href":"/agent-testing/red-teaming"}]},{"group":"Observability","pages":[{"title":"Observability \u0026 Tracing","sidebarTitle":"Overview","href":"/observability/overview"},{"title":"Quick Start","mode":"wide","href":"/integration/quick-start"},{"title":"Concepts","href":"/concepts"},{"group":"User Events","pages":[{"title":"Overview","href":"/user-events/overview"},{"title":"Thumbs Up/Down","href":"/user-events/thumbs-up-down"},{"title":"Waited To Finish Events","href":"/user-events/waited-to-finish"},{"title":"Selected Text Events","description":"Track selected text events in LangWatch to understand user behavior and improve LLM performance across AI agent evaluations.","href":"/user-events/selected-text"},{"title":"Custom Events","href":"/user-events/custom"}]},{"title":"Querying your data","description":"LangWatch answers two query languages, analytics SQL and the trace filter. One endpoint describes both, and the CLI runs either without a browser.","href":"/features/querying-your-data"},{"title":"Dashboards","href":"/features/dashboards"},{"title":"Alerts and Automations","href":"/features/automations"},{"title":"Topic clustering","href":"/features/topic-clustering"},{"title":"Exporting Analytics","href":"/features/embedded-analytics"}]},{"group":"Evaluations","pages":[{"title":"Evaluations Overview","sidebarTitle":"Overview","href":"/evaluations/overview"},{"group":"Experiments","pages":[{"title":"Experiments Overview","sidebarTitle":"Overview","href":"/evaluations/experiments/overview"},{"title":"Experiments via SDK","sidebarTitle":"Via SDK","href":"/evaluations/experiments/sdk"},{"group":"Via UI","pages":[{"title":"Answer Correctness: check answers against expected output","sidebarTitle":"Answer Correctness","href":"/evaluations/experiments/ui/answer-correctness"},{"title":"LLM-as-a-Judge: score outputs without expected answers","sidebarTitle":"LLM-as-a-Judge","href":"/evaluations/experiments/ui/llm-as-a-judge"},{"title":"Pairwise Comparison: judge candidates head-to-head","sidebarTitle":"Comparison","href":"/evaluations/experiments/ui/pairwise-compare"}]},{"title":"Running Experiments in CI/CD","sidebarTitle":"CI/CD Integration","href":"/evaluations/experiments/ci-cd"},{"title":"Multimodal Evaluation: images, PDFs and vision models","sidebarTitle":"Multimodal Evaluation","href":"/evaluations/experiments/multimodal-evaluation"}]},{"group":"Online Evaluation","pages":[{"title":"Online Evaluation Overview","sidebarTitle":"Overview","href":"/evaluations/online-evaluation/overview"},{"title":"Online Evaluations: monitor your production traffic","sidebarTitle":"Setting up Monitors","href":"/evaluations/online-evaluation/setup-monitors"}]},{"group":"Instant Evals","pages":[{"title":"Instant Evals","sidebarTitle":"Overview","href":"/features/instant-evals/overview"},{"title":"Instant Evals questions","sidebarTitle":"Questions","href":"/features/instant-evals/questions"},{"title":"Instant Evals targets and statements","sidebarTitle":"Targets and statements","href":"/features/instant-evals/targets"},{"title":"Reading Instant Eval results","sidebarTitle":"Results","href":"/features/instant-evals/results"},{"title":"Instant Evals limits, cost and billing","sidebarTitle":"Limits and cost","href":"/features/instant-evals/limits-and-cost"},{"title":"Run Instant Evals on your own decision model","sidebarTitle":"Your own model","href":"/features/instant-evals/own-model"},{"title":"Instant Evals CLI reference","sidebarTitle":"CLI reference","href":"/features/instant-evals/cli"}]},{"group":"Guardrails","pages":[{"title":"Guardrails Overview","sidebarTitle":"Overview","href":"/evaluations/guardrails/overview"},{"title":"Guardrails Code Integration","sidebarTitle":"Code Integration","href":"/evaluations/guardrails/code-integration"}]},{"group":"Evaluators","pages":[{"title":"Evaluators Overview","sidebarTitle":"Overview","href":"/evaluations/evaluators/overview"},{"title":"Using Built-in Evaluators","sidebarTitle":"Built-in Evaluators","href":"/evaluations/evaluators/built-in-evaluators"},{"title":"Saved Evaluators","sidebarTitle":"Saved Evaluators","href":"/evaluations/evaluators/saved-evaluators"},{"title":"Custom Scoring","sidebarTitle":"Custom Scoring","href":"/evaluations/evaluators/custom-scoring"},{"title":"List of Evaluators","href":"/evaluations/evaluators/list"}]},{"group":"Datasets","pages":[{"title":"Datasets","sidebarTitle":"Overview","href":"/datasets/overview"},{"title":"Datasets: programmatic access from SDKs, CLI and MCP","sidebarTitle":"Programmatic Access","href":"/datasets/programmatic-access"},{"title":"Automations: build a dataset from your traces","sidebarTitle":"Datasets from traces","href":"/datasets/automatically-from-traces"},{"title":"Threads in datasets","href":"/datasets/dataset-threads"},{"title":"Images and files in datasets","href":"/datasets/dataset-images"}]},{"group":"Annotations","pages":[{"title":"Annotations","sidebarTitle":"Overview","href":"/annotations/overview"},{"title":"Annotation queues","href":"/annotations/queues"},{"title":"Annotation scores","href":"/annotations/scores"}]}]},{"group":"Prompt Management","pages":[{"title":"Overview","href":"/prompt-management/overview"},{"title":"Get Started","href":"/prompt-management/getting-started"},{"title":"Prompts CLI","href":"/prompt-management/cli"},{"title":"Prompt Playground","href":"/prompt-management/prompt-playground"},{"group":"Features","pages":[{"title":"Version Control","href":"/prompt-management/features/essential/version-control"},{"title":"Liquid Template Syntax","href":"/prompts/template-syntax"},{"title":"Data Model","href":"/prompt-management/data-model"},{"title":"Runtime Parameters","href":"/prompt-management/features/essential/runtime-parameters"},{"title":"Scope","href":"/prompt-management/scope"},{"title":"Analytics","href":"/prompt-management/features/essential/analytics"},{"title":"GitHub Integration","href":"/prompt-management/features/essential/github-integration"},{"title":"Tags","href":"/prompt-management/features/essential/tags"},{"title":"Link to Traces","href":"/prompt-management/features/advanced/link-to-traces"},{"title":"Use Prompts in Workflows","sidebarTitle":"Prompts in workflows","href":"/prompt-management/features/advanced/workflows"},{"title":"Guaranteed Availability","href":"/prompt-management/features/advanced/guaranteed-availability"},{"title":"A/B Testing","href":"/prompt-management/features/advanced/a-b-testing"}]},{"group":"Workflows","pages":[{"title":"Workflows","sidebarTitle":"Overview","href":"/workflows/overview"},{"title":"Building a Workflow","sidebarTitle":"Building a workflow","href":"/workflows/building-a-workflow"},{"title":"Workflow as Evaluator","sidebarTitle":"Workflow as evaluator","href":"/workflows/workflow-as-evaluator"},{"title":"Workflow as Agent","sidebarTitle":"Workflow as agent","href":"/workflows/workflow-as-agent"}]}]},{"group":"Platform","pages":[{"title":"Command Bar","sidebarTitle":"Command Bar","href":"/platform/command-bar"},{"group":"Administration","pages":[{"title":"Members and Teams","sidebarTitle":"Members and Teams","href":"/platform/members-and-teams"},{"title":"Access Control (RBAC)","sidebarTitle":"Access Control (RBAC)","href":"/platform/rbac"},{"title":"Roles \u0026 access","sidebarTitle":"Roles \u0026 access","href":"/platform/roles-and-access"},{"title":"Single sign-on and provisioning","sidebarTitle":"SSO and provisioning","href":"/platform/sso"},{"title":"Move to your own identity provider","sidebarTitle":"Move to your own identity provider","href":"/platform/sso-update"},{"title":"API Keys","sidebarTitle":"API Keys","href":"/platform/api-keys"},{"title":"Audit Log","sidebarTitle":"Audit Log","href":"/platform/audit-log"},{"title":"Data Privacy","sidebarTitle":"Data Privacy","href":"/platform/data-privacy"},{"title":"Data Retention","href":"/platform/data-retention"},{"title":"Secrets","sidebarTitle":"Secrets","href":"/platform/secrets"},{"title":"SCIM Provisioning","sidebarTitle":"SCIM Provisioning","href":"/platform/scim"},{"title":"SCIM Groups \u0026 Role Mapping","sidebarTitle":"SCIM Groups","href":"/platform/scim-groups"},{"title":"Model Providers","sidebarTitle":"Model Providers","href":"/platform/model-providers"}]}]},{"group":"Examples \u0026 Cookbooks","pages":[{"group":"Cookbooks","pages":[{"title":"Measuring RAG Performance","href":"/cookbooks/build-a-simple-rag-app"},{"title":"Optimizing Embeddings","href":"/cookbooks/finetuning-embedding-models"},{"title":"Vector Search vs Hybrid Search using LanceDB","sidebarTitle":"Vector Search vs Hybrid Search","href":"/cookbooks/vector-vs-hybrid-search"},{"title":"Evaluating Tool Selection","href":"/cookbooks/tool-selection"},{"title":"Finetuning Agents with GRPO","href":"/cookbooks/finetuning-agents"},{"title":"Multi-Turn Conversations","href":"/cookbooks/evaluating-multi-turn-conversations"}]},{"group":"Use Cases","pages":[{"title":"Evaluating a RAG Chatbot for Technical Manuals","href":"/use-cases/technical-rag"},{"title":"Evaluating an AI Coach with LLM-as-a-Judge","href":"/use-cases/ai-coach"},{"title":"Evaluating Structured Data Extraction","href":"/use-cases/structured-outputs"}]},{"title":"Code Examples","href":"/integration/code-examples"}]},{"group":"Help","pages":[{"title":"Pricing","href":"/pricing"},{"title":"What counts as a billable event","sidebarTitle":"Billable events","href":"/pricing/billable-events"},{"title":"Troubleshooting and Support","href":"/support"},{"title":"Status Page","href":"/status"}]}]},{"anchor":"Observability","icon":"plug","pages":[{"title":"Observability","href":"/integration/overview"}]},{"anchor":"AI Gateway","icon":"route","pages":[{"title":"AI Gateway","href":"/ai-gateway/overview"}]},{"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":"Custom Events - LangWatch","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["10e4515597","a74be98ba7"],"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","zoom-image-lightbox-CypZe82l.js","lightbox-handle-r17bVUz3.js"]}