Most Braintrust endpoints are authenticated by providing your API key as a header Authorization: Bearer [api_key] to your HTTP request. You can create an API key in the Braintrust organization settings page.
The ids of all rows that were inserted, aligning one-to-one with the rows provided as input
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Braintrust","description":"Braintrust is the active observability platform for instrumenting, understanding, and improving agents. By actively applying intelligence to agent traces and automatically surfacing the most critical patterns, Braintrust gives teams the visibility to understand how agents behave in production and the tools to improve them.","colors":{"primary":"#3a4af8","light":"#3a4af8","dark":"#7e95fc"},"logo":{"light":"https://mintcdn.com/braintrust/u7i5gTV-ad3TRDYt/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=u7i5gTV-ad3TRDYt\u0026q=85\u0026s=23878ca308aee393dcc8c89ed8705189","dark":"https://mintcdn.com/braintrust/u7i5gTV-ad3TRDYt/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=u7i5gTV-ad3TRDYt\u0026q=85\u0026s=affa9d0eafd44b6cd7fb22c80afee713"},"favicon":"https://mintcdn.com/braintrust/ybJBbXJUYqK_eUdX/images/favicon.ico?fit=max\u0026auto=format\u0026n=ybJBbXJUYqK_eUdX\u0026q=85\u0026s=c9925befa0cf9b6279fab604eff9aad0","api":{},"navbar":{"links":[{"href":"https://braintrust.dev/contact","label":"Request demo"}],"primary":{"type":"button","label":"Start building","href":"https://braintrust.dev/app"}},"footer":{"socials":{"github":"https://github.com/braintrustdata","x":"https://x.com/braintrust","discord":"https://discord.gg/6G8s47F44X","youtube":"https://www.youtube.com/@BraintrustData"},"links":[{"header":"Resources","items":[{"label":"Pricing","href":"https://www.braintrust.dev/pricing"},{"label":"Blog","href":"https://www.braintrust.dev/blog"},{"label":"Careers","href":"https://www.braintrust.dev/careers"},{"label":"Status","href":"https://status.braintrust.dev/"}]}]},"seo":{"metatags":{"og:type":"website","og:site_name":"Braintrust documentation, API reference, and changelog","canonical":"https://docs.braintrust.dev","og:image":"https://www.braintrust.dev/og?template=docs\u0026title=Get+started"},"indexing":"all"},"fonts":{"heading":{"family":"BraintrustDisplayV2-Regular","source":"https://mintlify-assets.b-cdn.net/fonts/bt-sans-regular.woff2","format":"woff2"},"body":{"family":"Inter"}},"icons":{"library":"lucide"},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark-dimmed"}},"latex":true},"integrations":{"segment":{"key":"1BTDVX4cF2K1jWOI5Qh91XXKwgJubQ2R"}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","cursor","vscode","mcp","add-mcp","perplexity","grok","aistudio","devin","devin-mcp","windsurf","download-spec","download-pdf"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"braintrust","hasAudioNarration":false,"actualSubdomain":"braintrust","customDomains":["docs.braintrust.dev"],"gitSource":{"type":"github","owner":"braintrustdata","repo":"braintrust","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4fcf7ed968a0e8f391474","collectionId":"93d39e66-db84-483f-a5c3-b55d9d43d5a4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4fcf7ed968a0e8f391474"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4ff3d822866cf7d003d86","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Reference","count":241},{"language":"default","tag":"API","count":173},{"language":"default","tag":"Resources","count":171},{"language":"default","tag":"SDKs","count":127},{"language":"default","tag":"Guides","count":125},{"language":"default","tag":"Integrations","count":97},{"language":"default","tag":"Cookbook","count":44},{"language":"default","tag":"Recipes","count":43},{"language":"default","tag":"Admin","count":38},{"language":"default","tag":"CLI","count":30}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@braintrust.dev","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"use-workflow","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area h1,#content-area h2,#content-area h3,#content-area h4{letter-spacing:-.01em!important;font-weight:400!important}#content-area h1{font-size:2.3rem!important;line-height:1!important}#content-area h2{font-size:1.6rem!important}#content-area h3{font-size:1.4rem!important}h5{font-family:var(--font-family-body-custom, var(--font-inter, sans-serif));font-weight:600!important}.nav-logo{height:22px}img.rounded,picture img{border:1px solid rgb(var(--gray-100))!important}[data-rmiz] img{margin-top:2em;margin-bottom:2em}.dark img.rounded,.dark picture img{border:1px solid rgb(var(--gray-900))!important}#table-of-contents{margin-top:-56px;overflow-x:hidden}#navbar button[aria-label=\"More actions\"],#navigation-items div.sticky.-top-\\[24px\\],#table-of-contents nav>h2{display:none}#table-of-contents-content{margin:0}#content-area .card h2{font-size:1.2rem!important}li[id^=\"/api-reference/\"]{font-size:.8rem;word-break:break-word}li[id^=\"/api-reference/\"] .method-nav-pill{width:54px;flex:none}li[id^=\"/api-reference/\"] .method-nav-pill span{font-size:.6rem;font-weight:500;letter-spacing:0}#content-area h1,.pagination-title{word-break:break-word}div[data-component-part=card-content]:empty{display:none}#navigation-items{padding-top:40px}#sidebar-group li a,#sidebar-group li button,.sidebar-group li a{border-radius:6px;padding-top:4px;padding-bottom:4px}#sidebar-content h5{font-weight:500!important}#content-container{gap:0}#content-container .lg\\:pl-12{padding-left:0;gap:36px}.dark #content-container{background-color:#000}#content-area{max-width:860px}@media (min-width:1024px){#content-container{padding-left:36px;padding-right:36px}}#footer a[href^=\"https://mintlify.com\"],#footer a[href^=\"https://www.mintlify.com\"]{display:none!important}header#header .sm\\:items-center{align-items:flex-start}a[aria-label^=\"Navigate to\"].-ml-10{margin-left:-28px}a[aria-label^=\"Navigate to\"].-ml-10 div:not(:hover){box-shadow:none}.font-mono{font-family:\"SF Mono\",\"Monaco\",\"Inconsolata\",\"Fira Mono\",\"Droid Sans Mono\",\"Source Code Pro\",monospace!important}:root{--primary:43 30 235;--font-jetbrains-mono:\"SF Mono\", \"Monaco\", \"Inconsolata\", \"Fira Mono\", \"Droid Sans Mono\",\n \"Source Code Pro\", monospace}.dark{--primary-light:87 112 255}:root{--code-line-highlight-background:rgb(var(--primary-light) / 0.06);--code-line-highlight-border:rgb(var(--primary-light) / 0.12)}.dark{--code-line-highlight-background:rgb(var(--primary-light) / 0.08);--code-line-highlight-border:rgb(var(--primary-light) / 0.35)}[data-component-part=code-block-root]:not(.has-line-numbers) .line-highlight,[data-component-part=code-block-root]:not(.has-line-numbers) .line-highlight::after,[data-component-part=code-block-root]:not(.has-line-numbers) .line-highlight::before{background:var(--code-line-highlight-background)!important}[data-component-part=code-block-root]:not(.has-line-numbers) .line-highlight::before{border-left-color:var(--code-line-highlight-border)!important}.has-line-numbers .line-highlight::after{background:var(--code-line-highlight-background)!important;border-left-color:var(--code-line-highlight-border)!important}.navbar-link a{border-radius:6px}#topbar-cta-button a span.absolute{background-color:rgb(var(--primary));border-radius:6px}.dark #topbar-cta-button a span.absolute{background-color:rgb(var(--primary-light))}div[data-page-title=\"Page Not Found\"]>div{width:100vw;max-width:none}.dark\\:bg-background-dark:is(.dark *){background-color:#000}html.dark #navbar div.dark\\:bg-background-dark{background-color:rgb(var(--background-dark)/1)}#footer .nav-logo{opacity:.5;width:100px}#footer .max-w-\\[984px\\]{max-width:72rem;padding-left:1.25rem;padding-right:1.25rem}@media (min-width:1024px){#footer .max-w-\\[984px\\]{padding-left:36px;padding-right:36px}}.integrations-search-input{width:100%;height:2.25rem;padding-left:2.75rem;padding-right:.75rem;font-size:.875rem;line-height:1.5rem;border:0;border-radius:9999px;outline:0;background-color:rgba(3,7,18,.03);color:#6b7280;box-shadow:none;transition:background-color .2s}.integrations-search-input:focus,.integrations-search-input:hover{background-color:rgba(3,7,18,.1)}.integrations-search-input:focus{color:#374151}.integrations-search-input::placeholder{color:#4b5563}.dark .integrations-search-input{background-color:rgba(255,255,255,.06);color:rgba(255,255,255,.5)}.dark .integrations-search-input:focus,.dark .integrations-search-input:hover{background-color:rgba(255,255,255,.1)}.dark .integrations-search-input:focus{color:rgba(255,255,255,.9)}.dark .integrations-search-input::placeholder{color:rgba(255,255,255,.5)}.integrations-search-icon,.integrations-search-kbd{color:#6b7280}.dark .integrations-search-icon,.dark .integrations-search-kbd{color:rgba(255,255,255,.5)}.gateway-models-filters{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}.gateway-models-provider-wrap{display:flex;align-items:center;gap:.5rem}.models-provider-label{font-size:.875rem;font-weight:500;color:#374151;white-space:nowrap}.dark .models-provider-label{color:rgba(255,255,255,.85)}.models-provider-select{height:2.25rem;min-width:10rem;padding:0 2rem 0 .75rem;font-size:.875rem;line-height:1.5;border:1px solid rgba(3,7,18,.08);border-radius:.5rem;outline:0;background-color:#fff;color:#111827;cursor:pointer;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right .75rem center;transition:border-color .15s,box-shadow .15s}.models-provider-select:hover{border-color:rgba(3,7,18,.18)}.models-provider-select:focus{border-color:rgb(43 30 235);box-shadow:0 0 0 2px rgba(43,30,235,.2)}.dark .models-provider-select{background-color:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.9);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E\")}.dark .models-provider-select:hover{border-color:rgba(255,255,255,.22)}.dark .models-provider-select:focus{border-color:rgb(87 112 255);box-shadow:0 0 0 2px rgba(87,112,255,.25)}[data-component-part=accordion-icon],[data-component-part=card-icon]{flex:none}#content-area svg[data-icon]{width:1rem;height:1rem;display:inline;vertical-align:baseline;transform:translateY(-.125rem)}#content-area :not(pre)>code{padding-left:.2rem;padding-right:.2rem;border-radius:3px;background-color:rgb(0 0 0/.05)}#content-area :not(pre)>code:is(.dark *){background-color:rgb(255 255 255/.1)}body.kb-page #sidebar-content{display:none!important}body.kb-page aside:has(#sidebar-content),body.kb-page aside[id*=sidebar]{display:none!important}body.kb-page #content-container{margin-left:0!important;padding-left:24px!important}body.kb-page main{margin-left:0!important}body.kb-page #table-of-contents{display:block!important}div:has(>.tabs-border[data-component-part=tabs-list]){border:1px solid rgb(var(--gray-200));border-radius:16px;padding:0 .75rem .75rem}.dark div:has(>.tabs-border[data-component-part=tabs-list]){border-color:rgb(var(--gray-800))}.tabs-border[data-component-part=tabs-list]{margin-bottom:1rem!important}td [data-base-ui-tooltip-trigger]{text-align:inherit}"}],"page":{"pagePath":"api-reference/logs/insert-project-logs-events","slug":"/api-reference/logs/insert-project-logs-events","pageMetadata":{"title":"Insert project logs events","description":"Insert a set of events into the project logs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_logs/{project_id}/insert","href":"/api-reference/logs/insert-project-logs-events","autogeneratedByOpenApi":true},"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: \"Insert a set of events into the project logs\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark-dimmed"}},"config":{},"pageMetadata":{"title":"Insert project logs events","description":"Insert a set of events into the project logs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_logs/{project_id}/insert","href":"/api-reference/logs/insert-project-logs-events","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/braintrust/dd75b144de68c9c9/custom.js","/_mintlify/custom/braintrust/0c94fa43664e0c40/utm-attribution.js"],"openApiReferenceData":{"operation":{"operationId":"postProjectLogsIdInsert","tags":["Logs"],"description":"Insert a set of events into the project logs","summary":"Insert project logs events","security":["4f165f2c-e37f-4596-8326-ad7644588180","92697011-d17c-47a6-90d6-e088b397de82"],"parameters":["5be287ac-58fd-4371-b39a-42b67064d6dc"],"requestBody":"a2a4edd3-1dc3-4d37-8b42-96e6a39d03cf","responses":{"200":"c7b18f44-1864-4da4-9ed4-d3257d1d84aa","400":"fa2426aa-04f7-4971-a47b-045f7e2413cb","401":"958be76d-9426-496e-9cb7-58789c8e9e1e","403":"62384776-97ec-4d60-adef-7a00c8dabfea","429":"3d2ed7dc-7624-4098-bc55-179aa7567ed1","500":"464d65ce-3056-45d4-8685-50826a6cf14c"},"method":"post","type":"path","servers":["1d9d417d-d904-4567-b8c6-4e98adac3af2"],"path":"/v1/project_logs/{project_id}/insert","baseUrlOptions":["https://api.braintrust.dev"],"title":"Insert project logs events","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5be287ac-58fd-4371-b39a-42b67064d6dc":{"schema":{"type":"string","format":"uuid","description":"Project id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"required":true,"description":"Project id","name":"project_id","in":"path"}},"requestBody":{"description":"An array of project logs events to insert","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object).","uniqueKey":"events.items.[INDEX].input","typeLabel":"any"},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question.","uniqueKey":"events.items.[INDEX].output","typeLabel":"any"},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models.","uniqueKey":"events.items.[INDEX].expected","typeLabel":"any"},"error":{"description":"The error that occurred, if any.","uniqueKey":"events.items.[INDEX].error","typeLabel":"any"},"scores":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"uniqueKey":"events.items.[INDEX].scores.oneOf.0.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"uniqueKey":"events.items.[INDEX].scores.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].scores.oneOf.0.additionalProperties","typeLabel":"number | null"},"description":"A dictionary of numeric values (between 0 and 1) to log. The scores should give you a variety of signals that help you determine how accurate the outputs are compared to what you expect and diagnose failures. For example, a summarization app might have one score that tells you how accurate the summary is, and another that measures the word similarity between the generated and grouth truth summary. The word similarity score could help you determine whether the summarization was covering similar concepts or not. You can use these scores to help you sort, filter, and compare logs.","uniqueKey":"events.items.[INDEX].scores.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"uniqueKey":"events.items.[INDEX].scores.oneOf.1.additionalProperties.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"uniqueKey":"events.items.[INDEX].scores.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].scores.oneOf.1.additionalProperties","typeLabel":"number | null"},"description":"A dictionary of numeric values (between 0 and 1) to log. The scores should give you a variety of signals that help you determine how accurate the outputs are compared to what you expect and diagnose failures. For example, a summarization app might have one score that tells you how accurate the summary is, and another that measures the word similarity between the generated and grouth truth summary. The word similarity score could help you determine whether the summarization was covering similar concepts or not. You can use these scores to help you sort, filter, and compare logs.","uniqueKey":"events.items.[INDEX].scores.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].scores","typeLabel":"object | null"},"metadata":{"oneOf":[{"type":"object","properties":{"model":{"oneOf":[{"type":"string","description":"The model used for this example","uniqueKey":"events.items.[INDEX].metadata.oneOf.0.model.oneOf.0","typeLabel":"string"},{"type":"null","description":"The model used for this example","uniqueKey":"events.items.[INDEX].metadata.oneOf.0.model.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metadata.oneOf.0.model","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].metadata.oneOf.0.additionalProperties","typeLabel":"any"},"description":"A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings","uniqueKey":"events.items.[INDEX].metadata.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"model":{"oneOf":[{"type":"string","description":"The model used for this example"},{"type":"null","description":"The model used for this example"}]}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].metadata.oneOf.1.additionalProperties","typeLabel":"any"},"description":"A dictionary with additional data about the test example, model outputs, or just about anything else that's relevant, that you can use to help find and analyze examples later. For example, you could log the `prompt`, example's `id`, or anything else that would be useful to slice/dice later. The values in `metadata` can be any JSON-serializable type, but its keys must be strings","uniqueKey":"events.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metadata","typeLabel":"object | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"events.items.[INDEX].tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of tags to log","uniqueKey":"events.items.[INDEX].tags.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"A list of tags to log","uniqueKey":"events.items.[INDEX].tags.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].tags","typeLabel":"string[] | null"},"metrics":{"oneOf":[{"type":"object","properties":{"start":{"oneOf":[{"type":"number","description":"A unix timestamp recording when the section of code which produced the project logs event started","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.start.oneOf.0","typeLabel":"number"},{"type":"null","description":"A unix timestamp recording when the section of code which produced the project logs event started","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.start.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics.oneOf.0.start","typeLabel":"number | null"},"end":{"oneOf":[{"type":"number","description":"A unix timestamp recording when the section of code which produced the project logs event finished","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.end.oneOf.0","typeLabel":"number"},{"type":"null","description":"A unix timestamp recording when the section of code which produced the project logs event finished","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.end.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics.oneOf.0.end","typeLabel":"number | null"},"prompt_tokens":{"oneOf":[{"type":"integer","description":"The number of tokens in the prompt used to generate the project logs event (only set if this is an LLM span)","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.prompt_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The number of tokens in the prompt used to generate the project logs event (only set if this is an LLM span)","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.prompt_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics.oneOf.0.prompt_tokens","typeLabel":"integer | null"},"completion_tokens":{"oneOf":[{"type":"integer","description":"The number of tokens in the completion generated by the model (only set if this is an LLM span)","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.completion_tokens.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The number of tokens in the completion generated by the model (only set if this is an LLM span)","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.completion_tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics.oneOf.0.completion_tokens","typeLabel":"integer | null"},"tokens":{"oneOf":[{"type":"integer","description":"The total number of tokens in the input and output of the project logs event.","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.tokens.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The total number of tokens in the input and output of the project logs event.","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.tokens.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics.oneOf.0.tokens","typeLabel":"integer | null"},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead.","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.caller_functionname","typeLabel":"any"},"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead.","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.caller_filename","typeLabel":"any"},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead.","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.caller_lineno","typeLabel":"any"}},"additionalProperties":{"type":"number","uniqueKey":"events.items.[INDEX].metrics.oneOf.0.additionalProperties","typeLabel":"number"},"description":"Metrics are numerical measurements tracking the execution of the code that produced the project logs event. Use \"start\" and \"end\" to track the time span over which the project logs event was produced","uniqueKey":"events.items.[INDEX].metrics.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"start":{"oneOf":[{"type":"number","description":"A unix timestamp recording when the section of code which produced the project logs event started"},{"type":"null","description":"A unix timestamp recording when the section of code which produced the project logs event started"}]},"end":{"oneOf":[{"type":"number","description":"A unix timestamp recording when the section of code which produced the project logs event finished"},{"type":"null","description":"A unix timestamp recording when the section of code which produced the project logs event finished"}]},"prompt_tokens":{"oneOf":[{"type":"integer","description":"The number of tokens in the prompt used to generate the project logs event (only set if this is an LLM span)"},{"type":"null","description":"The number of tokens in the prompt used to generate the project logs event (only set if this is an LLM span)"}]},"completion_tokens":{"oneOf":[{"type":"integer","description":"The number of tokens in the completion generated by the model (only set if this is an LLM span)"},{"type":"null","description":"The number of tokens in the completion generated by the model (only set if this is an LLM span)"}]},"tokens":{"oneOf":[{"type":"integer","description":"The total number of tokens in the input and output of the project logs event."},{"type":"null","description":"The total number of tokens in the input and output of the project logs event."}]},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."}},"additionalProperties":{"type":"number","uniqueKey":"events.items.[INDEX].metrics.oneOf.1.additionalProperties","typeLabel":"number"},"description":"Metrics are numerical measurements tracking the execution of the code that produced the project logs event. Use \"start\" and \"end\" to track the time span over which the project logs event was produced","uniqueKey":"events.items.[INDEX].metrics.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].metrics","typeLabel":"object | null"},"context":{"oneOf":[{"type":"object","properties":{"caller_functionname":{"oneOf":[{"type":"string","description":"The function in code which created the project logs event","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_functionname.oneOf.0","typeLabel":"string"},{"type":"null","description":"The function in code which created the project logs event","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_functionname.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_functionname","typeLabel":"string | null"},"caller_filename":{"oneOf":[{"type":"string","description":"Name of the file in code where the project logs event was created","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_filename.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the file in code where the project logs event was created","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_filename.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_filename","typeLabel":"string | null"},"caller_lineno":{"oneOf":[{"type":"integer","description":"Line of code where the project logs event was created","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_lineno.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Line of code where the project logs event was created","uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_lineno.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].context.oneOf.0.caller_lineno","typeLabel":"integer | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].context.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Context is additional information about the code that produced the project logs event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the project logs event","uniqueKey":"events.items.[INDEX].context.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"caller_functionname":{"oneOf":[{"type":"string","description":"The function in code which created the project logs event"},{"type":"null","description":"The function in code which created the project logs event"}]},"caller_filename":{"oneOf":[{"type":"string","description":"Name of the file in code where the project logs event was created"},{"type":"null","description":"Name of the file in code where the project logs event was created"}]},"caller_lineno":{"oneOf":[{"type":"integer","description":"Line of code where the project logs event was created"},{"type":"null","description":"Line of code where the project logs event was created"}]}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].context.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Context is additional information about the code that produced the project logs event. It is essentially the textual counterpart to `metrics`. Use the `caller_*` attributes to track the location in code which produced the project logs event","uniqueKey":"events.items.[INDEX].context.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].context","typeLabel":"object | null"},"span_attributes":{"oneOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string","description":"Name of the span, for display purposes only","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the span, for display purposes only","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.name","typeLabel":"string | null"},"type":{"oneOf":[{"type":"string","enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log",null],"description":"Type of the span, for display purposes only","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log",null],"description":"Type of the span, for display purposes only","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.type","typeLabel":"enum\u003cstring> | null"},"purpose":{"oneOf":[{"type":"string","enum":["scorer",null],"description":"A special value that indicates the span was generated by a scoring automation","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.purpose.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["scorer",null],"description":"A special value that indicates the span was generated by a scoring automation","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.purpose.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.purpose","typeLabel":"enum\u003cstring> | null"},"log_level":{"oneOf":[{"type":"string","enum":["trace","debug","info","warn","error","fatal",null],"description":"Severity level of a log","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.log_level.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["trace","debug","info","warn","error","fatal",null],"description":"Severity level of a log","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.log_level.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.log_level","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0.additionalProperties","typeLabel":"any"},"description":"Human-identifying attributes of the span, such as name, type, etc.","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"name":{"oneOf":[{"type":"string","description":"Name of the span, for display purposes only"},{"type":"null","description":"Name of the span, for display purposes only"}]},"type":{"oneOf":[{"type":"string","enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log",null],"description":"Type of the span, for display purposes only"},{"type":"null","enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log",null],"description":"Type of the span, for display purposes only"}]},"purpose":{"oneOf":[{"type":"string","enum":["scorer",null],"description":"A special value that indicates the span was generated by a scoring automation"},{"type":"null","enum":["scorer",null],"description":"A special value that indicates the span was generated by a scoring automation"}]},"log_level":{"oneOf":[{"type":"string","enum":["trace","debug","info","warn","error","fatal",null],"description":"Severity level of a log"},{"type":"null","enum":["trace","debug","info","warn","error","fatal",null],"description":"Severity level of a log"}]}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX].span_attributes.oneOf.1.additionalProperties","typeLabel":"any"},"description":"Human-identifying attributes of the span, such as name, type, etc.","uniqueKey":"events.items.[INDEX].span_attributes.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_attributes","typeLabel":"object | null"},"id":{"oneOf":[{"type":"string","description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","uniqueKey":"events.items.[INDEX].id.oneOf.0","typeLabel":"string"},{"type":"null","description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","uniqueKey":"events.items.[INDEX].id.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].id","typeLabel":"string | null"},"created":{"oneOf":[{"type":"string","format":"date-time","description":"The timestamp the project logs event was created","uniqueKey":"events.items.[INDEX].created.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The timestamp the project logs event was created","uniqueKey":"events.items.[INDEX].created.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].created","typeLabel":"string\u003cdate-time> | null"},"origin":{"oneOf":[{"type":"object","properties":{"object_type":{"type":"string","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"description":"Type of the object the event is originating from.","isRequired":true,"uniqueKey":"events.items.[INDEX].origin.oneOf.0.object_type","typeLabel":"enum\u003cstring>"},"object_id":{"type":"string","format":"uuid","description":"ID of the object the event is originating from.","isRequired":true,"uniqueKey":"events.items.[INDEX].origin.oneOf.0.object_id","typeLabel":"string\u003cuuid>"},"id":{"type":"string","description":"ID of the original event.","isRequired":true,"uniqueKey":"events.items.[INDEX].origin.oneOf.0.id","typeLabel":"string"},"_xact_id":{"oneOf":[{"type":"string","description":"Transaction ID of the original event.","uniqueKey":"events.items.[INDEX].origin.oneOf.0._xact_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Transaction ID of the original event.","uniqueKey":"events.items.[INDEX].origin.oneOf.0._xact_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].origin.oneOf.0._xact_id","typeLabel":"string | null"},"created":{"oneOf":[{"type":"string","description":"Created timestamp of the original event. Used to help sort in the UI","uniqueKey":"events.items.[INDEX].origin.oneOf.0.created.oneOf.0","typeLabel":"string"},{"type":"null","description":"Created timestamp of the original event. Used to help sort in the UI","uniqueKey":"events.items.[INDEX].origin.oneOf.0.created.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].origin.oneOf.0.created","typeLabel":"string | null"}},"required":["object_type","object_id","id"],"description":"Indicates the event was copied from another object.","uniqueKey":"events.items.[INDEX].origin.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"object_type":{"type":"string","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"description":"Type of the object the event is originating from."},"object_id":{"type":"string","format":"uuid","description":"ID of the object the event is originating from."},"id":{"type":"string","description":"ID of the original event."},"_xact_id":{"oneOf":[{"type":"string","description":"Transaction ID of the original event."},{"type":"null","description":"Transaction ID of the original event."}]},"created":{"oneOf":[{"type":"string","description":"Created timestamp of the original event. Used to help sort in the UI"},{"type":"null","description":"Created timestamp of the original event. Used to help sort in the UI"}]}},"required":["object_type","object_id","id"],"description":"Indicates the event was copied from another object.","uniqueKey":"events.items.[INDEX].origin.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].origin","typeLabel":"object | null"},"facets":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"events.items.[INDEX].facets.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"events.items.[INDEX].facets.oneOf.0.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].facets.oneOf.0.additionalProperties","typeLabel":"string | null"},"description":"Facets for categorization (dictionary from facet id to value)","uniqueKey":"events.items.[INDEX].facets.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"events.items.[INDEX].facets.oneOf.1.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"events.items.[INDEX].facets.oneOf.1.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].facets.oneOf.1.additionalProperties","typeLabel":"string | null"},"description":"Facets for categorization (dictionary from facet id to value)","uniqueKey":"events.items.[INDEX].facets.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].facets","typeLabel":"object | null"},"_object_delete":{"oneOf":[{"type":"boolean","description":"Pass `_object_delete=true` to mark the project logs event deleted. Deleted events will not show up in subsequent fetches for this project logs","uniqueKey":"events.items.[INDEX]._object_delete.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Pass `_object_delete=true` to mark the project logs event deleted. Deleted events will not show up in subsequent fetches for this project logs","uniqueKey":"events.items.[INDEX]._object_delete.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX]._object_delete","typeLabel":"boolean | null"},"_is_merge":{"oneOf":[{"type":"boolean","description":"The `_is_merge` field controls how the row is merged with any existing row with the same id in the DB. By default (or when set to `false`), the existing row is completely replaced by the new row. When set to `true`, the new row is deep-merged into the existing row, if one is found. If no existing row is found, the new row is inserted as is.\n\nFor example, say there is an existing row in the DB `{\"id\": \"foo\", \"input\": {\"a\": 5, \"b\": 10}}`. If we merge a new row as `{\"_is_merge\": true, \"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`, the new row will be `{\"id\": \"foo\", \"input\": {\"a\": 5, \"b\": 11, \"c\": 20}}`. If we replace the new row as `{\"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`, the new row will be `{\"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`","uniqueKey":"events.items.[INDEX]._is_merge.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"The `_is_merge` field controls how the row is merged with any existing row with the same id in the DB. By default (or when set to `false`), the existing row is completely replaced by the new row. When set to `true`, the new row is deep-merged into the existing row, if one is found. If no existing row is found, the new row is inserted as is.\n\nFor example, say there is an existing row in the DB `{\"id\": \"foo\", \"input\": {\"a\": 5, \"b\": 10}}`. If we merge a new row as `{\"_is_merge\": true, \"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`, the new row will be `{\"id\": \"foo\", \"input\": {\"a\": 5, \"b\": 11, \"c\": 20}}`. If we replace the new row as `{\"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`, the new row will be `{\"id\": \"foo\", \"input\": {\"b\": 11, \"c\": 20}}`","uniqueKey":"events.items.[INDEX]._is_merge.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX]._is_merge","typeLabel":"boolean | null"},"_merge_paths":{"oneOf":[{"type":"array","items":{"type":"array","items":{"type":"string","uniqueKey":"events.items.[INDEX]._merge_paths.oneOf.0.items.[INDEX].items.[INDEX]","typeLabel":"string"},"uniqueKey":"events.items.[INDEX]._merge_paths.oneOf.0.items.[INDEX]","typeLabel":"string[]"},"description":"The `_merge_paths` field allows controlling the depth of the merge, when `_is_merge=true`. `_merge_paths` is a list of paths, where each path is a list of field names. The deep merge will not descend below any of the specified merge paths.\n\nFor example, say there is an existing row in the DB `{\"id\": \"foo\", \"input\": {\"a\": {\"b\": 10}, \"c\": {\"d\": 20}}, \"output\": {\"a\": 20}}`. If we merge a new row as `{\"_is_merge\": true, \"_merge_paths\": [[\"input\", \"a\"], [\"output\"]], \"input\": {\"a\": {\"q\": 30}, \"c\": {\"e\": 30}, \"bar\": \"baz\"}, \"output\": {\"d\": 40}}`, the new row will be `{\"id\": \"foo\": \"input\": {\"a\": {\"q\": 30}, \"c\": {\"d\": 20, \"e\": 30}, \"bar\": \"baz\"}, \"output\": {\"d\": 40}}`. In this case, due to the merge paths, we have replaced `input.a` and `output`, but have still deep-merged `input` and `input.c`.","uniqueKey":"events.items.[INDEX]._merge_paths.oneOf.0","typeLabel":"string[][]"},{"type":"null","items":{"type":"array","items":{"type":"string"}},"description":"The `_merge_paths` field allows controlling the depth of the merge, when `_is_merge=true`. `_merge_paths` is a list of paths, where each path is a list of field names. The deep merge will not descend below any of the specified merge paths.\n\nFor example, say there is an existing row in the DB `{\"id\": \"foo\", \"input\": {\"a\": {\"b\": 10}, \"c\": {\"d\": 20}}, \"output\": {\"a\": 20}}`. If we merge a new row as `{\"_is_merge\": true, \"_merge_paths\": [[\"input\", \"a\"], [\"output\"]], \"input\": {\"a\": {\"q\": 30}, \"c\": {\"e\": 30}, \"bar\": \"baz\"}, \"output\": {\"d\": 40}}`, the new row will be `{\"id\": \"foo\": \"input\": {\"a\": {\"q\": 30}, \"c\": {\"d\": 20, \"e\": 30}, \"bar\": \"baz\"}, \"output\": {\"d\": 40}}`. In this case, due to the merge paths, we have replaced `input.a` and `output`, but have still deep-merged `input` and `input.c`.","uniqueKey":"events.items.[INDEX]._merge_paths.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX]._merge_paths","typeLabel":"string[][] | null"},"_array_delete":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string","uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0.items.[INDEX].path.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0.items.[INDEX].path","typeLabel":"string[]"},"delete":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0.items.[INDEX].delete.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0.items.[INDEX].delete","typeLabel":"any[]"}},"required":["path","delete"],"uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"The `_array_delete` field allows removing specific values from array fields. It is an array of objects with `path` and `delete` properties.\n\nFor example, to remove tags \"foo\" and \"bar\" from an existing row: `{\"_is_merge\": true, \"_array_delete\": [{\"path\": [\"tags\"], \"delete\": [\"foo\", \"bar\"]}]}`. For nested fields like `metadata.categories`, use `[{\"path\": [\"metadata\", \"categories\"], \"delete\": [\"value\"]}]`. This will remove those specific values from the array while preserving others.","uniqueKey":"events.items.[INDEX]._array_delete.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"path":{"type":"array","items":{"type":"string"}},"delete":{"type":"array","items":{"oneOf":[{}]}}},"required":["path","delete"]},"description":"The `_array_delete` field allows removing specific values from array fields. It is an array of objects with `path` and `delete` properties.\n\nFor example, to remove tags \"foo\" and \"bar\" from an existing row: `{\"_is_merge\": true, \"_array_delete\": [{\"path\": [\"tags\"], \"delete\": [\"foo\", \"bar\"]}]}`. For nested fields like `metadata.categories`, use `[{\"path\": [\"metadata\", \"categories\"], \"delete\": [\"value\"]}]`. This will remove those specific values from the array while preserving others.","uniqueKey":"events.items.[INDEX]._array_delete.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX]._array_delete","typeLabel":"object[] | null"},"_parent_id":{"oneOf":[{"type":"string","description":"DEPRECATED: The `_parent_id` field is deprecated and should not be used. Support for `_parent_id` will be dropped in a future version of Braintrust. Log `span_id`, `root_span_id`, and `span_parents` explicitly instead.\n\nUse the `_parent_id` field to create this row as a subspan of an existing row. Tracking hierarchical relationships are important for tracing (see the [guide](https://docs.braintrust.dev/instrument) for full details).\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"_parent_id\": \"abc\", \"id\": \"llm_call\", \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX]._parent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"DEPRECATED: The `_parent_id` field is deprecated and should not be used. Support for `_parent_id` will be dropped in a future version of Braintrust. Log `span_id`, `root_span_id`, and `span_parents` explicitly instead.\n\nUse the `_parent_id` field to create this row as a subspan of an existing row. Tracking hierarchical relationships are important for tracing (see the [guide](https://docs.braintrust.dev/instrument) for full details).\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"_parent_id\": \"abc\", \"id\": \"llm_call\", \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX]._parent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX]._parent_id","typeLabel":"string | null"},"span_id":{"oneOf":[{"type":"string","description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].span_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].span_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_id","typeLabel":"string | null"},"root_span_id":{"oneOf":[{"type":"string","description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].root_span_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].root_span_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].root_span_id","typeLabel":"string | null"},"span_parents":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"events.items.[INDEX].span_parents.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].span_parents.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"Use `span_id`, `root_span_id`, and `span_parents` instead of `_parent_id`, which is now deprecated. The span_id is a unique identifier describing the row's place in the a trace, and the root_span_id is a unique identifier for the whole trace. See the [guide](https://docs.braintrust.dev/instrument) for full details.\n\nFor example, say we have logged a row `{\"id\": \"abc\", \"span_id\": \"span0\", \"root_span_id\": \"root_span0\", \"input\": \"foo\", \"output\": \"bar\", \"expected\": \"boo\", \"scores\": {\"correctness\": 0.33}}`. We can create a sub-span of the parent row by logging `{\"id\": \"llm_call\", \"span_id\": \"span1\", \"root_span_id\": \"root_span0\", \"span_parents\": [\"span0\"], \"input\": {\"prompt\": \"What comes after foo?\"}, \"output\": \"bar\", \"metrics\": {\"tokens\": 1}}`. In the webapp, only the root span row `\"abc\"` will show up in the summary view. You can view the full trace hierarchy (in this case, the `\"llm_call\"` row) by clicking on the \"abc\" row.\n\nIf the row is being merged into an existing row, this field will be ignored.","uniqueKey":"events.items.[INDEX].span_parents.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].span_parents","typeLabel":"string[] | null"}},"description":"A project logs event","uniqueKey":"events.items.[INDEX]","typeLabel":"object"},"description":"A list of project logs events to insert","isRequired":true,"uniqueKey":"events","typeLabel":"object[]"}},"required":["events"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"events":[{"input":"\u003cunknown>","output":"\u003cunknown>","expected":"\u003cunknown>","error":"\u003cunknown>","scores":{},"metadata":{"model":"\u003cstring>"},"tags":["\u003cstring>"],"metrics":{"start":123,"end":123,"prompt_tokens":123,"completion_tokens":123,"tokens":123,"caller_functionname":"\u003cunknown>","caller_filename":"\u003cunknown>","caller_lineno":"\u003cunknown>"},"context":{"caller_functionname":"\u003cstring>","caller_filename":"\u003cstring>","caller_lineno":123},"span_attributes":{"name":"\u003cstring>"},"id":"\u003cstring>","created":"2023-11-07T05:31:56Z","origin":{"object_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","id":"\u003cstring>","_xact_id":"\u003cstring>","created":"\u003cstring>"},"facets":{},"_object_delete":true,"_is_merge":true,"_merge_paths":[["\u003cstring>"]],"_array_delete":[{"path":["\u003cstring>"],"delete":["\u003cunknown>"]}],"_parent_id":"\u003cstring>","span_id":"\u003cstring>","root_span_id":"\u003cstring>","span_parents":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c7b18f44-1864-4da4-9ed4-d3257d1d84aa":{"description":"Returns the inserted row ids","content":{"application/json":{"schema":{"type":"object","properties":{"row_ids":{"type":"array","items":{"type":"string","uniqueKey":"row_ids.items.[INDEX]","typeLabel":"string"},"description":"The ids of all rows that were inserted, aligning one-to-one with the rows provided as input","isRequired":true,"uniqueKey":"row_ids","typeLabel":"string[]"}},"required":["row_ids"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"row_ids":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"fa2426aa-04f7-4971-a47b-045f7e2413cb":{"description":"The request was unacceptable, often due to missing a required parameter","content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{}}},"exampleType":"generated"},"958be76d-9426-496e-9cb7-58789c8e9e1e":{"description":"No valid API key provided","content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{}}},"exampleType":"generated"},"62384776-97ec-4d60-adef-7a00c8dabfea":{"description":"The API key doesn’t have permissions to perform the request","content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{}}},"exampleType":"generated"},"3d2ed7dc-7624-4098-bc55-179aa7567ed1":{"description":"Too many requests hit the API too quickly. We recommend an exponential backoff of your requests","headers":{"Retry-After":{"schema":{"type":"string"}}},"content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{}}},"exampleType":"generated"},"464d65ce-3056-45d4-8685-50826a6cf14c":{"description":"Something went wrong on Braintrust's end. (These are rare.)","content":{"text/plain":{"schema":{"type":"string","uniqueKey":"","typeLabel":"string"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"},"application/json":{"schema":{}}},"exampleType":"generated"}},"security":{"4f165f2c-e37f-4596-8326-ad7644588180":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key or JWT","description":"Most Braintrust endpoints are authenticated by providing your API key as a header `Authorization: Bearer [api_key]` to your HTTP request. You can create an API key in the Braintrust [organization settings page](https://www.braintrustdata.com/app/settings?subroute=api-keys).","scopes":[],"schemeName":"bearerAuth"}},"92697011-d17c-47a6-90d6-e088b397de82":{}},"servers":{"1d9d417d-d904-4567-b8c6-4e98adac3af2":{"url":"https://api.braintrust.dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API key or JWT","description":"Most Braintrust endpoints are authenticated by providing your API key as a header `Authorization: Bearer [api_key]` to your HTTP request. You can create an API key in the Braintrust [organization settings page](https://www.braintrustdata.com/app/settings?subroute=api-keys).","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Most Braintrust endpoints are authenticated by providing your API key as a header `Authorization: Bearer [api_key]` to your HTTP request. You can create an API key in the Braintrust [organization settings page](https://www.braintrustdata.com/app/settings?subroute=api-keys).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"braintrust","siteName":"Braintrust","title":"Insert project logs events - Braintrust","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T19:52:51.654Z","originalFileLocation":"api-reference/logs/insert-project-logs-events.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=\"Insert a set of events into the project logs\">\u003cmeta data-mint-head name=\"application-name\" content=\"Braintrust\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_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=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Insert project logs events - Braintrust\">\u003cmeta data-mint-head property=\"og:description\" content=\"Insert a set of events into the project logs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Braintrust documentation, API reference, and changelog\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.braintrust.dev/og?template=docs\u0026amp;title=Get+started\">\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=\"Insert project logs events - Braintrust\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Insert a set of events into the project logs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.braintrust.dev/og?template=docs\u0026amp;title=Get+started\">\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=\"/mintlify-assets/_mintlify/favicons/braintrust/Pnqso5CFAxfn5afF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Braintrust\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3a4af8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/logs/insert-project-logs-events.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.braintrust.dev/#organization\",\"name\":\"Braintrust\",\"url\":\"https://docs.braintrust.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/braintrust/u7i5gTV-ad3TRDYt/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=u7i5gTV-ad3TRDYt\u0026q=85\u0026s=23878ca308aee393dcc8c89ed8705189\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.braintrust.dev#website\",\"name\":\"Braintrust\",\"url\":\"https://docs.braintrust.dev\",\"publisher\":{\"@id\":\"https://docs.braintrust.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events#webpage\",\"url\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events\",\"name\":\"Insert project logs events\",\"description\":\"Insert a set of events into the project logs\",\"dateModified\":\"2026-10-30T19:52:51.654Z\",\"isPartOf\":{\"@id\":\"https://docs.braintrust.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API\",\"item\":\"https://docs.braintrust.dev/api-reference/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resources\",\"item\":\"https://docs.braintrust.dev/api-reference/projects/list-projects\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Insert project logs events\",\"item\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events#apireference\",\"headline\":\"Insert project logs events\",\"name\":\"Insert project logs events\",\"description\":\"Insert a set of events into the project logs\",\"url\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events\",\"mainEntityOfPage\":{\"@id\":\"https://docs.braintrust.dev/api-reference/logs/insert-project-logs-events#webpage\"},\"image\":\"https://www.braintrust.dev/og?template=docs\u0026title=Get+started\",\"dateModified\":\"2026-10-30T19:52:51.654Z\",\"publisher\":{\"@id\":\"https://docs.braintrust.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.braintrust.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Braintrust\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Braintrust","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":""}]},{"tab":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"SDKs","icon":"blocks","dropdowns":[{"dropdown":"All SDKs","pages":[{"title":"SDKs","mode":"custom","href":"/sdks"}]},{"dropdown":"TypeScript","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/typescript.svg","pages":[{"title":"TypeScript SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/typescript/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/typescript/install-and-instrument"},{"title":"TypeScript SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/typescript/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/typescript/troubleshooting"}]},{"group":"Features","icon":"component","pages":[{"title":"Workflow evaluations","href":"/sdks/typescript/workflow-evaluations"},{"title":"Application logs","href":"/sdks/typescript/application-logs"},{"title":"Redact sensitive data","href":"/sdks/typescript/redact-sensitive-data"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/typescript/api-reference"},{"group":"Versions","boost":0.5,"pages":[{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.42.0 (latest)","href":"/sdks/typescript/versions/3.42.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.41.0","href":"/sdks/typescript/versions/3.41.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.40.0","href":"/sdks/typescript/versions/3.40.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.39.0","href":"/sdks/typescript/versions/3.39.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.38.0","href":"/sdks/typescript/versions/3.38.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.37.2","href":"/sdks/typescript/versions/3.37.2"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.36.0","href":"/sdks/typescript/versions/3.36.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.35.0","href":"/sdks/typescript/versions/3.35.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.34.0","href":"/sdks/typescript/versions/3.34.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.33.0","href":"/sdks/typescript/versions/3.33.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.32.0","href":"/sdks/typescript/versions/3.32.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.31.0","href":"/sdks/typescript/versions/3.31.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.30.0","href":"/sdks/typescript/versions/3.30.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.29.0","href":"/sdks/typescript/versions/3.29.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.28.0","href":"/sdks/typescript/versions/3.28.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.27.0","href":"/sdks/typescript/versions/3.27.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.26.0","href":"/sdks/typescript/versions/3.26.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.25.0","href":"/sdks/typescript/versions/3.25.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.24.0","href":"/sdks/typescript/versions/3.24.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.23.1","href":"/sdks/typescript/versions/3.23.1"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.22.0","href":"/sdks/typescript/versions/3.22.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.21.0","href":"/sdks/typescript/versions/3.21.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.20.0","href":"/sdks/typescript/versions/3.20.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.19.0","href":"/sdks/typescript/versions/3.19.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.18.0","href":"/sdks/typescript/versions/3.18.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.17.0","href":"/sdks/typescript/versions/3.17.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.16.0","href":"/sdks/typescript/versions/3.16.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.15.0","href":"/sdks/typescript/versions/3.15.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.14.0","href":"/sdks/typescript/versions/3.14.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.13.0","href":"/sdks/typescript/versions/3.13.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.12.0","href":"/sdks/typescript/versions/3.12.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.11.0","href":"/sdks/typescript/versions/3.11.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.10.0","href":"/sdks/typescript/versions/3.10.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.9.0","href":"/sdks/typescript/versions/3.9.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.8.0","href":"/sdks/typescript/versions/3.8.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.7.1","href":"/sdks/typescript/versions/3.7.1"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.7.0","href":"/sdks/typescript/versions/3.7.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.6.0","href":"/sdks/typescript/versions/3.6.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.5.0","href":"/sdks/typescript/versions/3.5.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.4.0","href":"/sdks/typescript/versions/3.4.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.3.0","href":"/sdks/typescript/versions/3.3.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.2.0","href":"/sdks/typescript/versions/3.2.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.1.0","href":"/sdks/typescript/versions/3.1.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v3.0.0","href":"/sdks/typescript/versions/3.0.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v2.2.2","href":"/sdks/typescript/versions/2.2.2"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v2.1.0","href":"/sdks/typescript/versions/2.1.0"},{"title":"Braintrust TypeScript SDK","sidebarTitle":"v2.0.2","href":"/sdks/typescript/versions/2.0.2"},{"title":"TypeScript SDK","sidebarTitle":"v1.1.1","href":"/sdks/typescript/versions/1.1.1"}]},{"group":"Migration guides","pages":[{"title":"Migrate from v2.x to v3.x","sidebarTitle":"v2.x to v3.x","href":"/sdks/typescript/migrations/v2-to-v3"},{"title":"Migrate from v1.x to v2.x","sidebarTitle":"v1.x to v2.x","href":"/sdks/typescript/migrations/v1-to-v2"},{"title":"Migrate from v0.x to v1.x","sidebarTitle":"v0.x to v1.x","href":"/sdks/typescript/migrations/v0-to-v1"}]},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-javascript/releases?q=js-sdk-\u0026expanded=true","href":"/sdks/typescript/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-javascript","href":"/sdks/typescript/github"}]},{"group":"Related packages","icon":"puzzle","pages":[{"title":"TypeScript SDK: related packages","sidebarTitle":"Overview","href":"/sdks/typescript/related/index"},{"group":"Audio","boost":0.5,"pages":[{"title":"Audio JS package","sidebarTitle":"v0.1.0 (latest)","href":"/sdks/typescript/related/audio/0.1.0"}]},{"group":"Autoevals","boost":0.5,"pages":[{"title":"Autoevals TypeScript API","sidebarTitle":"v0.3.0 (latest)","href":"/sdks/typescript/related/autoevals/0.3.0"},{"title":"Autoevals TypeScript API","sidebarTitle":"v0.0.132","href":"/sdks/typescript/related/autoevals/0.0.132"},{"title":"Autoevals TypeScript API","sidebarTitle":"v0.0.131","href":"/sdks/typescript/related/autoevals/0.0.131"}]},{"group":"LangChain (deprecated)","boost":0.5,"pages":[{"title":"LangChain JS Integration","sidebarTitle":"v0.2.5 (latest)","href":"/sdks/typescript/related/langchain/0.2.5"},{"title":"LangChain JS Integration","sidebarTitle":"v0.2.4","href":"/sdks/typescript/related/langchain/0.2.4"}]},{"group":"OpenAI Agents","boost":0.5,"pages":[{"title":"OpenAI Agents JS Integration","sidebarTitle":"v0.1.7 (latest)","href":"/sdks/typescript/related/openai-agents/0.1.7"},{"title":"OpenAI Agents JS Integration","sidebarTitle":"v0.1.6","href":"/sdks/typescript/related/openai-agents/0.1.6"}]},{"group":"OpenTelemetry","boost":0.5,"pages":[{"title":"OpenTelemetry JS Integration","sidebarTitle":"v1.1.0 (latest)","href":"/sdks/typescript/related/otel/1.1.0"},{"title":"OpenTelemetry JS Integration","sidebarTitle":"v1.0.2","href":"/sdks/typescript/related/otel/1.0.2"},{"title":"OpenTelemetry JS Integration","sidebarTitle":"v1.0.0","href":"/sdks/typescript/related/otel/1.0.0"}]}]}]},{"dropdown":"Python","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/python.svg","pages":[{"title":"Python SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/python/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/python/install-and-instrument"},{"title":"Python SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/python/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/python/troubleshooting"}]},{"group":"Features","icon":"component","pages":[{"title":"Workflow evaluations","href":"/sdks/python/workflow-evaluations"},{"title":"Application logs","href":"/sdks/python/application-logs"},{"title":"Redact sensitive data","href":"/sdks/python/redact-sensitive-data"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/python/api-reference"},{"group":"Versions","boost":0.5,"pages":[{"title":"Braintrust Python SDK","sidebarTitle":"v0.49.1 (latest)","href":"/sdks/python/versions/0.49.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.48.1","href":"/sdks/python/versions/0.48.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.47.0","href":"/sdks/python/versions/0.47.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.46.1","href":"/sdks/python/versions/0.46.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.45.0","href":"/sdks/python/versions/0.45.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.44.1","href":"/sdks/python/versions/0.44.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.43.0","href":"/sdks/python/versions/0.43.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.42.0","href":"/sdks/python/versions/0.42.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.41.1","href":"/sdks/python/versions/0.41.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.40.0","href":"/sdks/python/versions/0.40.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.39.0","href":"/sdks/python/versions/0.39.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.38.0","href":"/sdks/python/versions/0.38.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.37.0","href":"/sdks/python/versions/0.37.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.36.0","href":"/sdks/python/versions/0.36.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.35.0","href":"/sdks/python/versions/0.35.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.34.0","href":"/sdks/python/versions/0.34.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.33.0","href":"/sdks/python/versions/0.33.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.32.0","href":"/sdks/python/versions/0.32.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.31.1","href":"/sdks/python/versions/0.31.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.31.0","href":"/sdks/python/versions/0.31.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.30.1","href":"/sdks/python/versions/0.30.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.30.0","href":"/sdks/python/versions/0.30.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.29.0","href":"/sdks/python/versions/0.29.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.28.0","href":"/sdks/python/versions/0.28.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.27.0","href":"/sdks/python/versions/0.27.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.26.0","href":"/sdks/python/versions/0.26.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.25.0","href":"/sdks/python/versions/0.25.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.24.0","href":"/sdks/python/versions/0.24.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.23.0","href":"/sdks/python/versions/0.23.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.22.1","href":"/sdks/python/versions/0.22.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.21.0","href":"/sdks/python/versions/0.21.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.20.0","href":"/sdks/python/versions/0.20.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.19.0","href":"/sdks/python/versions/0.19.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.18.0","href":"/sdks/python/versions/0.18.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.17.0","href":"/sdks/python/versions/0.17.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.16.0","href":"/sdks/python/versions/0.16.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.15.0","href":"/sdks/python/versions/0.15.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.14.0","href":"/sdks/python/versions/0.14.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.13.0","href":"/sdks/python/versions/0.13.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.12.1","href":"/sdks/python/versions/0.12.1"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.11.0","href":"/sdks/python/versions/0.11.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.10.0","href":"/sdks/python/versions/0.10.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.9.0","href":"/sdks/python/versions/0.9.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.8.0","href":"/sdks/python/versions/0.8.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.7.0","href":"/sdks/python/versions/0.7.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.6.0","href":"/sdks/python/versions/0.6.0"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.5.6","href":"/sdks/python/versions/0.5.6"},{"title":"Braintrust Python SDK","sidebarTitle":"v0.4.3","href":"/sdks/python/versions/0.4.3"},{"title":"Python SDK","sidebarTitle":"v0.3.15","href":"/sdks/python/versions/0.3.15"}]},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-python/releases","href":"/sdks/python/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-python","href":"/sdks/python/github"}]},{"group":"Related packages","icon":"puzzle","pages":[{"title":"Python SDK: related packages","sidebarTitle":"Overview","href":"/sdks/python/related/index"},{"group":"Autoevals","boost":0.5,"pages":[{"title":"Autoevals Python API","sidebarTitle":"v0.3.0 (latest)","href":"/sdks/python/related/autoevals/0.3.0"},{"title":"Autoevals Python API","sidebarTitle":"v0.2.0","href":"/sdks/python/related/autoevals/0.2.0"},{"title":"Autoevals Python API","sidebarTitle":"v0.1.0","href":"/sdks/python/related/autoevals/0.1.0"},{"title":"Autoevals Python API","sidebarTitle":"v0.0.131","href":"/sdks/python/related/autoevals/0.0.131"},{"title":"Autoevals Python API","sidebarTitle":"v0.0.130","href":"/sdks/python/related/autoevals/0.0.130"}]},{"group":"LangChain (deprecated)","boost":0.5,"pages":[{"title":"LangChain Python Integration","sidebarTitle":"v0.3.0 (deprecated)","href":"/sdks/python/related/langchain/0.3.0"},{"title":"LangChain Python Integration","sidebarTitle":"v0.2.1 (deprecated)","href":"/sdks/python/related/langchain/0.2.1"},{"title":"LangChain Python Integration","sidebarTitle":"v0.2.0 (deprecated)","href":"/sdks/python/related/langchain/0.2.0"},{"title":"LangChain Python Integration","sidebarTitle":"v0.1.5 (deprecated)","href":"/sdks/python/related/langchain/0.1.5"}]},{"group":"Google ADK (deprecated)","boost":0.5,"pages":[{"title":"Google ADK Integration","sidebarTitle":"v0.4.0 (deprecated)","href":"/sdks/python/related/adk/0.4.0"},{"title":"Google ADK Integration","sidebarTitle":"v0.3.1 (deprecated)","href":"/sdks/python/related/adk/0.3.1"},{"title":"Google ADK Integration","sidebarTitle":"v0.2.4 (deprecated)","href":"/sdks/python/related/adk/0.2.4"}]}]}]},{"dropdown":"Go","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/go.svg","pages":[{"title":"Go SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/go/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/go/install-and-instrument"},{"title":"Go SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/go/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/go/troubleshooting"}]},{"group":"Features","icon":"component","pages":[{"title":"Workflow evaluations","href":"/sdks/go/workflow-evaluations"},{"title":"Redact sensitive data","href":"/sdks/go/redact-sensitive-data"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/go/api-reference"},{"group":"Versions","boost":0.5,"pages":[{"title":"Braintrust Go SDK","sidebarTitle":"v0.19.0 (latest)","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.19.0","href":"/sdks/go/versions/0.19.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.18.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.18.0","href":"/sdks/go/versions/0.18.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.17.2","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.17.2","href":"/sdks/go/versions/0.17.2"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.17.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.17.1","href":"/sdks/go/versions/0.17.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.17.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.17.0","href":"/sdks/go/versions/0.17.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.16.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.16.0","href":"/sdks/go/versions/0.16.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.15.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.15.0","href":"/sdks/go/versions/0.15.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.14.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.14.0","href":"/sdks/go/versions/0.14.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.13.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.13.0","href":"/sdks/go/versions/0.13.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.12.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.12.0","href":"/sdks/go/versions/0.12.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.11.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.11.1","href":"/sdks/go/versions/0.11.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.11.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.11.0","href":"/sdks/go/versions/0.11.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.10.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.10.0","href":"/sdks/go/versions/0.10.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.9.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.9.1","href":"/sdks/go/versions/0.9.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.9.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.9.0","href":"/sdks/go/versions/0.9.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.8.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.8.0","href":"/sdks/go/versions/0.8.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.7.2","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.7.2","href":"/sdks/go/versions/0.7.2"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.7.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.7.0","href":"/sdks/go/versions/0.7.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.6.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.6.1","href":"/sdks/go/versions/0.6.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.6.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.6.0","href":"/sdks/go/versions/0.6.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.5.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.5.0","href":"/sdks/go/versions/0.5.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.4.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.4.1","href":"/sdks/go/versions/0.4.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.4.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.4.0","href":"/sdks/go/versions/0.4.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.3.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.3.1","href":"/sdks/go/versions/0.3.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.3.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.3.0","href":"/sdks/go/versions/0.3.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.2.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.2.1","href":"/sdks/go/versions/0.2.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.2.0-beta.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.2.0-beta.1","href":"/sdks/go/versions/0.2.0-beta.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.1.2","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.1.2","href":"/sdks/go/versions/0.1.2"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.1.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.1.1","href":"/sdks/go/versions/0.1.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.1.1-beta.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.1.1-beta.1","href":"/sdks/go/versions/0.1.1-beta.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.1.0","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.1.0","href":"/sdks/go/versions/0.1.0"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.0.3","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.0.3","href":"/sdks/go/versions/0.0.3"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.0.2","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.0.2","href":"/sdks/go/versions/0.0.2"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.0.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.0.1","href":"/sdks/go/versions/0.0.1"},{"title":"Braintrust Go SDK","sidebarTitle":"v0.0.1-beta.1","url":"https://pkg.go.dev/github.com/braintrustdata/braintrust-sdk-go@v0.0.1-beta.1","href":"/sdks/go/versions/0.0.1-beta.1"}]},{"group":"Migration guides","pages":[{"title":"Migrate from v0.3.x to v0.4.x","sidebarTitle":"v0.3.x to v0.4.x","href":"/sdks/go/migrations/v0-3-to-v0-4"}]},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-go/releases","href":"/sdks/go/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-go","href":"/sdks/go/github"}]}]},{"dropdown":"Java","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/java.svg","pages":[{"title":"Java SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/java/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/java/install-and-instrument"},{"title":"Java SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/java/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/java/troubleshooting"}]},{"group":"Features","icon":"component","pages":[{"title":"Redact sensitive data","href":"/sdks/java/redact-sensitive-data"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/java/api-reference"},{"group":"Versions","boost":0.5,"pages":[{"title":"0.3.26","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.26","href":"/sdks/java/versions/0.3.26"},{"title":"0.3.25","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.25","href":"/sdks/java/versions/0.3.25"},{"title":"0.3.24","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.24","href":"/sdks/java/versions/0.3.24"},{"title":"0.3.23","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.23","href":"/sdks/java/versions/0.3.23"},{"title":"0.3.22","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.22","href":"/sdks/java/versions/0.3.22"},{"title":"0.3.21","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.21","href":"/sdks/java/versions/0.3.21"},{"title":"0.3.20","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.20","href":"/sdks/java/versions/0.3.20"},{"title":"0.3.19","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.19","href":"/sdks/java/versions/0.3.19"},{"title":"0.3.18","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.18","href":"/sdks/java/versions/0.3.18"},{"title":"0.3.17","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.17","href":"/sdks/java/versions/0.3.17"},{"title":"0.3.16","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.16","href":"/sdks/java/versions/0.3.16"},{"title":"0.3.15","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.15","href":"/sdks/java/versions/0.3.15"},{"title":"0.3.14","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.14","href":"/sdks/java/versions/0.3.14"},{"title":"0.3.13","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.13","href":"/sdks/java/versions/0.3.13"},{"title":"0.3.12","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.12","href":"/sdks/java/versions/0.3.12"},{"title":"0.3.11","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.11","href":"/sdks/java/versions/0.3.11"},{"title":"0.3.10","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.10","href":"/sdks/java/versions/0.3.10"},{"title":"0.3.9","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.9","href":"/sdks/java/versions/0.3.9"},{"title":"0.3.8","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.8","href":"/sdks/java/versions/0.3.8"},{"title":"0.3.7","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.7","href":"/sdks/java/versions/0.3.7"},{"title":"0.3.6","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.6","href":"/sdks/java/versions/0.3.6"},{"title":"0.3.5","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.5","href":"/sdks/java/versions/0.3.5"},{"title":"0.3.4","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.4","href":"/sdks/java/versions/0.3.4"},{"title":"0.3.3","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.3","href":"/sdks/java/versions/0.3.3"},{"title":"0.3.2","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.2","href":"/sdks/java/versions/0.3.2"},{"title":"0.3.1","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.1","href":"/sdks/java/versions/0.3.1"},{"title":"0.3.0","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.3.0","href":"/sdks/java/versions/0.3.0"},{"title":"0.2.11","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.11","href":"/sdks/java/versions/0.2.11"},{"title":"0.2.10","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.10","href":"/sdks/java/versions/0.2.10"},{"title":"0.2.9","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.9","href":"/sdks/java/versions/0.2.9"},{"title":"0.2.8","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.8","href":"/sdks/java/versions/0.2.8"},{"title":"0.2.7","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.7","href":"/sdks/java/versions/0.2.7"},{"title":"0.2.6","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.6","href":"/sdks/java/versions/0.2.6"},{"title":"0.2.5","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.5","href":"/sdks/java/versions/0.2.5"},{"title":"0.2.4","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.4","href":"/sdks/java/versions/0.2.4"},{"title":"0.2.3","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.3","href":"/sdks/java/versions/0.2.3"},{"title":"0.2.2","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.2","href":"/sdks/java/versions/0.2.2"},{"title":"0.2.1","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.1","href":"/sdks/java/versions/0.2.1"},{"title":"0.2.0","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.2.0","href":"/sdks/java/versions/0.2.0"},{"title":"0.1.3","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.1.3","href":"/sdks/java/versions/0.1.3"},{"title":"0.1.2","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.1.2","href":"/sdks/java/versions/0.1.2"},{"title":"0.1.1","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.1.1","href":"/sdks/java/versions/0.1.1"},{"title":"0.1.0","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.1.0","href":"/sdks/java/versions/0.1.0"},{"title":"0.0.2","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.0.2","href":"/sdks/java/versions/0.0.2"},{"title":"0.0.1","url":"https://javadoc.io/doc/dev.braintrust/braintrust-sdk-java/0.0.1","href":"/sdks/java/versions/0.0.1"}]},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-java/releases","href":"/sdks/java/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-java","href":"/sdks/java/github"}]}]},{"dropdown":"Ruby","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/ruby.svg","pages":[{"title":"Ruby SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/ruby/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/ruby/install-and-instrument"},{"title":"Ruby SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/ruby/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/ruby/troubleshooting"}]},{"group":"Features","icon":"component","pages":[{"title":"Redact sensitive data","href":"/sdks/ruby/redact-sensitive-data"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/ruby/api-reference"},{"group":"Versions","boost":0.5,"pages":[{"title":"0.6.0","url":"https://gemdocs.org/gems/braintrust/0.6.0/","href":"/sdks/ruby/versions/0.6.0"},{"title":"0.5.0","url":"https://gemdocs.org/gems/braintrust/0.5.0/","href":"/sdks/ruby/versions/0.5.0"},{"title":"0.4.2","url":"https://gemdocs.org/gems/braintrust/0.4.2/","href":"/sdks/ruby/versions/0.4.2"},{"title":"0.4.1","url":"https://gemdocs.org/gems/braintrust/0.4.1/","href":"/sdks/ruby/versions/0.4.1"},{"title":"0.4.0","url":"https://gemdocs.org/gems/braintrust/0.4.0/","href":"/sdks/ruby/versions/0.4.0"},{"title":"0.3.2","url":"https://gemdocs.org/gems/braintrust/0.3.2/","href":"/sdks/ruby/versions/0.3.2"},{"title":"0.3.1","url":"https://gemdocs.org/gems/braintrust/0.3.1/","href":"/sdks/ruby/versions/0.3.1"},{"title":"0.3.0","url":"https://gemdocs.org/gems/braintrust/0.3.0/","href":"/sdks/ruby/versions/0.3.0"},{"title":"0.2.1","url":"https://gemdocs.org/gems/braintrust/0.2.1/","href":"/sdks/ruby/versions/0.2.1"},{"title":"0.2.0","url":"https://gemdocs.org/gems/braintrust/0.2.0/","href":"/sdks/ruby/versions/0.2.0"},{"title":"0.1.4","url":"https://gemdocs.org/gems/braintrust/0.1.4/","href":"/sdks/ruby/versions/0.1.4"},{"title":"0.1.3","url":"https://gemdocs.org/gems/braintrust/0.1.3/","href":"/sdks/ruby/versions/0.1.3"},{"title":"0.1.2","url":"https://gemdocs.org/gems/braintrust/0.1.2/","href":"/sdks/ruby/versions/0.1.2"},{"title":"0.1.1","url":"https://gemdocs.org/gems/braintrust/0.1.1/","href":"/sdks/ruby/versions/0.1.1"},{"title":"0.1.0","url":"https://gemdocs.org/gems/braintrust/0.1.0/","href":"/sdks/ruby/versions/0.1.0"},{"title":"0.0.12","url":"https://gemdocs.org/gems/braintrust/0.0.12/","href":"/sdks/ruby/versions/0.0.12"},{"title":"0.0.11","url":"https://gemdocs.org/gems/braintrust/0.0.11/","href":"/sdks/ruby/versions/0.0.11"},{"title":"0.0.10","url":"https://gemdocs.org/gems/braintrust/0.0.10/","href":"/sdks/ruby/versions/0.0.10"},{"title":"0.0.9","url":"https://gemdocs.org/gems/braintrust/0.0.9/","href":"/sdks/ruby/versions/0.0.9"},{"title":"0.0.8","url":"https://gemdocs.org/gems/braintrust/0.0.8/","href":"/sdks/ruby/versions/0.0.8"},{"title":"0.0.7","url":"https://gemdocs.org/gems/braintrust/0.0.7/","href":"/sdks/ruby/versions/0.0.7"},{"title":"0.0.6","url":"https://gemdocs.org/gems/braintrust/0.0.6/","href":"/sdks/ruby/versions/0.0.6"},{"title":"0.0.5","url":"https://gemdocs.org/gems/braintrust/0.0.5/","href":"/sdks/ruby/versions/0.0.5"},{"title":"0.0.4","url":"https://gemdocs.org/gems/braintrust/0.0.4/","href":"/sdks/ruby/versions/0.0.4"},{"title":"0.0.3","url":"https://gemdocs.org/gems/braintrust/0.0.3/","href":"/sdks/ruby/versions/0.0.3"},{"title":"0.0.2","url":"https://gemdocs.org/gems/braintrust/0.0.2/","href":"/sdks/ruby/versions/0.0.2"},{"title":"0.0.1","url":"https://gemdocs.org/gems/braintrust/0.0.1/","href":"/sdks/ruby/versions/0.0.1"}]},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-ruby/releases","href":"/sdks/ruby/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-ruby","href":"/sdks/ruby/github"}]}]},{"dropdown":"C#","icon":"https://mintlify.s3.us-west-1.amazonaws.com/braintrust/images/sdk-icons/csharp.svg","pages":[{"title":"C# SDK quickstart","sidebarTitle":"Quickstart","href":"/sdks/csharp/quickstart"},{"group":"Use the SDK","icon":"code","pages":[{"title":"Install and instrument","href":"/sdks/csharp/install-and-instrument"},{"title":"C# SDK integrations","sidebarTitle":"SDK integrations","href":"/sdks/csharp/sdk-integrations"},{"title":"Troubleshooting","href":"/sdks/csharp/troubleshooting"}]},{"group":"Reference","icon":"file-text","pages":[{"title":"API reference","href":"/sdks/csharp/api-reference"},{"title":"Changelog","url":"https://github.com/braintrustdata/braintrust-sdk-dotnet/releases","href":"/sdks/csharp/changelog"},{"title":"GitHub","url":"https://github.com/braintrustdata/braintrust-sdk-dotnet","href":"/sdks/csharp/github"}]}]}]},{"tab":"Reference","icon":"code","pages":[{"title":"Reference","sidebarTitle":"Overview","href":"/reference"},{"title":"Glossary","href":"/reference/glossary"},{"group":"API","icon":"cloud","pages":[{"title":"API Reference","sidebarTitle":"Overview","href":"/api-reference/index"},{"title":"Query by SQL","href":"/api-reference/query"},{"group":"Resources","pages":[{"group":"Projects","pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project","href":"/api-reference/projects/list-projects"},{"title":"Create project","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project","href":"/api-reference/projects/create-project"},{"title":"Get project","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project/{project_id}","href":"/api-reference/projects/get-project"},{"title":"Delete project","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project/{project_id}","href":"/api-reference/projects/delete-project"},{"title":"Partially update project","description":"Partially update a project object. Specify the fields to update in the payload. Any object-type fields will be deep-merged with existing content. Currently we do not support removing fields or setting them to null.","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project/{project_id}","href":"/api-reference/projects/partially-update-project"}]},{"group":"Logs","pages":[{"title":"Insert project logs events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_logs/{project_id}/insert","href":"/api-reference/logs/insert-project-logs-events"},{"title":"Fetch project logs (GET form)","description":"Fetch the events in a project logs. Equivalent to the POST form of the same path, but with the parameters in the URL query rather than in the request body. For more complex queries, use the `POST /btql` endpoint.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_logs/{project_id}/fetch","href":"/api-reference/logs/fetch-project-logs-get-form"},{"title":"Fetch project logs (POST form)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_logs/{project_id}/fetch","href":"/api-reference/logs/fetch-project-logs-post-form"},{"title":"Feedback for project logs events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_logs/{project_id}/feedback","href":"/api-reference/logs/feedback-for-project-logs-events"}]},{"group":"Experiments","pages":[{"title":"List experiments","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/experiment","href":"/api-reference/experiments/list-experiments"},{"title":"Create experiment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/experiment","href":"/api-reference/experiments/create-experiment"},{"title":"Get experiment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/experiment/{experiment_id}","href":"/api-reference/experiments/get-experiment"},{"title":"Delete experiment","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/experiment/{experiment_id}","href":"/api-reference/experiments/delete-experiment"},{"title":"Partially update experiment","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/experiment/{experiment_id}","href":"/api-reference/experiments/partially-update-experiment"},{"title":"Insert experiment events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/experiment/{experiment_id}/insert","href":"/api-reference/experiments/insert-experiment-events"},{"title":"Fetch experiment (GET form)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/experiment/{experiment_id}/fetch","href":"/api-reference/experiments/fetch-experiment-get-form"},{"title":"Fetch experiment (POST form)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/experiment/{experiment_id}/fetch","href":"/api-reference/experiments/fetch-experiment-post-form"},{"title":"Feedback for experiment events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/experiment/{experiment_id}/feedback","href":"/api-reference/experiments/feedback-for-experiment-events"},{"title":"Summarize experiment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/experiment/{experiment_id}/summarize","href":"/api-reference/experiments/summarize-experiment"}]},{"group":"Datasets","pages":[{"title":"List datasets","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset","href":"/api-reference/datasets/list-datasets"},{"title":"Create dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset","href":"/api-reference/datasets/create-dataset"},{"title":"Get dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset/{dataset_id}","href":"/api-reference/datasets/get-dataset"},{"title":"Delete dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/dataset/{dataset_id}","href":"/api-reference/datasets/delete-dataset"},{"title":"Partially update dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/dataset/{dataset_id}","href":"/api-reference/datasets/partially-update-dataset"},{"title":"Insert dataset events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset/{dataset_id}/insert","href":"/api-reference/datasets/insert-dataset-events"},{"title":"Fetch dataset (GET form)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset/{dataset_id}/fetch","href":"/api-reference/datasets/fetch-dataset-get-form"},{"title":"Fetch dataset (POST form)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset/{dataset_id}/fetch","href":"/api-reference/datasets/fetch-dataset-post-form"},{"title":"Feedback for dataset events","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset/{dataset_id}/feedback","href":"/api-reference/datasets/feedback-for-dataset-events"},{"title":"Summarize dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset/{dataset_id}/summarize","href":"/api-reference/datasets/summarize-dataset"},{"title":"Preview dataset restore","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset/{dataset_id}/restore/preview","href":"/api-reference/datasets/preview-dataset-restore"},{"title":"Restore dataset","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset/{dataset_id}/restore","href":"/api-reference/datasets/restore-dataset"}]},{"group":"Prompts","pages":[{"title":"List prompts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prompt","href":"/api-reference/prompts/list-prompts"},{"title":"Create or replace prompt","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/prompt","href":"/api-reference/prompts/create-or-replace-prompt"},{"title":"Create prompt","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/prompt","href":"/api-reference/prompts/create-prompt"},{"title":"Get prompt","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/prompt/{prompt_id}","href":"/api-reference/prompts/get-prompt"},{"title":"Delete prompt","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/prompt/{prompt_id}","href":"/api-reference/prompts/delete-prompt"},{"title":"Partially update prompt","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/prompt/{prompt_id}","href":"/api-reference/prompts/partially-update-prompt"}]},{"group":"Roles","pages":[{"title":"List roles","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/role","href":"/api-reference/roles/list-roles"},{"title":"Create or replace role","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/role","href":"/api-reference/roles/create-or-replace-role"},{"title":"Create role","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/role","href":"/api-reference/roles/create-role"},{"title":"Get role","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/role/{role_id}","href":"/api-reference/roles/get-role"},{"title":"Delete role","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/role/{role_id}","href":"/api-reference/roles/delete-role"},{"title":"Partially update role","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/role/{role_id}","href":"/api-reference/roles/partially-update-role"}]},{"group":"Groups","pages":[{"title":"List groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/group","href":"/api-reference/groups/list-groups"},{"title":"Create or replace group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/group","href":"/api-reference/groups/create-or-replace-group"},{"title":"Create group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/group","href":"/api-reference/groups/create-group"},{"title":"Get group","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/group/{group_id}","href":"/api-reference/groups/get-group"},{"title":"Delete group","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/group/{group_id}","href":"/api-reference/groups/delete-group"},{"title":"Partially update group","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/group/{group_id}","href":"/api-reference/groups/partially-update-group"}]},{"group":"ProjectGroups","pages":[{"title":"List project groups","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_group","href":"/api-reference/projectgroups/list-project-groups"},{"title":"Create or replace project group","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/project_group","href":"/api-reference/projectgroups/create-or-replace-project-group"},{"title":"Create project group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_group","href":"/api-reference/projectgroups/create-project-group"},{"title":"Get project group","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_group/{project_group_id}","href":"/api-reference/projectgroups/get-project-group"},{"title":"Delete project group","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project_group/{project_group_id}","href":"/api-reference/projectgroups/delete-project-group"},{"title":"Partially update project group","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project_group/{project_group_id}","href":"/api-reference/projectgroups/partially-update-project-group"}]},{"group":"Acls","pages":[{"title":"List ACLs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/acl","href":"/api-reference/acls/list-acls"},{"title":"Create ACL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/acl","href":"/api-reference/acls/create-acl"},{"title":"Delete single ACL","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/acl","href":"/api-reference/acls/delete-single-acl"},{"title":"Get ACL","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/acl/{acl_id}","href":"/api-reference/acls/get-acl"},{"title":"Delete ACL","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/acl/{acl_id}","href":"/api-reference/acls/delete-acl"},{"title":"Batch update ACLs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/acl/batch_update","href":"/api-reference/acls/batch-update-acls"},{"title":"List org ACLs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/acl/list_org","href":"/api-reference/acls/list-org-acls"}]},{"group":"Users","pages":[{"title":"List users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/user","href":"/api-reference/users/list-users"},{"title":"Get user","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/user/{user_id}","href":"/api-reference/users/get-user"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent","href":"/api-reference/agents/list-agents"},{"title":"Create or replace agent","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/agent","href":"/api-reference/agents/create-or-replace-agent"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent","href":"/api-reference/agents/create-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent/{agent_id}","href":"/api-reference/agents/get-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/agent/{agent_id}","href":"/api-reference/agents/delete-agent"},{"title":"Partially update agent","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/agent/{agent_id}","href":"/api-reference/agents/partially-update-agent"}]},{"group":"ProjectAutomations","pages":[{"title":"List project automations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_automation","href":"/api-reference/projectautomations/list-project-automations"},{"title":"Create or replace project automation","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/project_automation","href":"/api-reference/projectautomations/create-or-replace-project-automation"},{"title":"Create project automation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_automation","href":"/api-reference/projectautomations/create-project-automation"},{"title":"Get project automation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_automation/{project_automation_id}","href":"/api-reference/projectautomations/get-project-automation"},{"title":"Delete project automation","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project_automation/{project_automation_id}","href":"/api-reference/projectautomations/delete-project-automation"},{"title":"Partially update project automation","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project_automation/{project_automation_id}","href":"/api-reference/projectautomations/partially-update-project-automation"}]},{"group":"OrgAutomations","pages":[{"title":"List org automations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/org_automation","href":"/api-reference/orgautomations/list-org-automations"},{"title":"Create or replace org automation","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/org_automation","href":"/api-reference/orgautomations/create-or-replace-org-automation"},{"title":"Create org automation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/org_automation","href":"/api-reference/orgautomations/create-org-automation"},{"title":"Get org automation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/org_automation/{org_automation_id}","href":"/api-reference/orgautomations/get-org-automation"},{"title":"Delete org automation","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/org_automation/{org_automation_id}","href":"/api-reference/orgautomations/delete-org-automation"},{"title":"Partially update org automation","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/org_automation/{org_automation_id}","href":"/api-reference/orgautomations/partially-update-org-automation"}]},{"group":"ProjectScores","pages":[{"title":"List project scores","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_score","href":"/api-reference/projectscores/list-project-scores"},{"title":"Create or replace project score","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/project_score","href":"/api-reference/projectscores/create-or-replace-project-score"},{"title":"Create project score","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_score","href":"/api-reference/projectscores/create-project-score"},{"title":"Get project score","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_score/{project_score_id}","href":"/api-reference/projectscores/get-project-score"},{"title":"Delete project score","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project_score/{project_score_id}","href":"/api-reference/projectscores/delete-project-score"},{"title":"Partially update project score","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project_score/{project_score_id}","href":"/api-reference/projectscores/partially-update-project-score"}]},{"group":"ProjectTags","pages":[{"title":"List project tags","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_tag","href":"/api-reference/projecttags/list-project-tags"},{"title":"Create or replace project tag","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/project_tag","href":"/api-reference/projecttags/create-or-replace-project-tag"},{"title":"Create project tag","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project_tag","href":"/api-reference/projecttags/create-project-tag"},{"title":"Get project tag","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project_tag/{project_tag_id}","href":"/api-reference/projecttags/get-project-tag"},{"title":"Delete project tag","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project_tag/{project_tag_id}","href":"/api-reference/projecttags/delete-project-tag"},{"title":"Partially update project tag","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project_tag/{project_tag_id}","href":"/api-reference/projecttags/partially-update-project-tag"}]},{"group":"SpanIframes","pages":[{"title":"List span iframes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/span_iframe","href":"/api-reference/spaniframes/list-span-iframes"},{"title":"Create or replace span iframe","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/span_iframe","href":"/api-reference/spaniframes/create-or-replace-span-iframe"},{"title":"Create span iframe","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/span_iframe","href":"/api-reference/spaniframes/create-span-iframe"},{"title":"Get span iframe","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/span_iframe/{span_iframe_id}","href":"/api-reference/spaniframes/get-span-iframe"},{"title":"Delete span iframe","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/span_iframe/{span_iframe_id}","href":"/api-reference/spaniframes/delete-span-iframe"},{"title":"Partially update span iframe","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/span_iframe/{span_iframe_id}","href":"/api-reference/spaniframes/partially-update-span-iframe"}]},{"group":"Functions","pages":[{"title":"List functions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/function","href":"/api-reference/functions/list-functions"},{"title":"Create or replace function","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/function","href":"/api-reference/functions/create-or-replace-function"},{"title":"Create function","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/function","href":"/api-reference/functions/create-function"},{"title":"Get function","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/function/{function_id}","href":"/api-reference/functions/get-function"},{"title":"Delete function","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/function/{function_id}","href":"/api-reference/functions/delete-function"},{"title":"Partially update function","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/function/{function_id}","href":"/api-reference/functions/partially-update-function"},{"title":"Invoke function","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/function/{function_id}/invoke","href":"/api-reference/functions/invoke-function"}]},{"group":"Views","pages":[{"title":"List views","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/view","href":"/api-reference/views/list-views"},{"title":"Create or replace view","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/view","href":"/api-reference/views/create-or-replace-view"},{"title":"Create view","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/view","href":"/api-reference/views/create-view"},{"title":"Get view","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/view/{view_id}","href":"/api-reference/views/get-view"},{"title":"Delete view","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/view/{view_id}","href":"/api-reference/views/delete-view"},{"title":"Partially update view","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/view/{view_id}","href":"/api-reference/views/partially-update-view"}]},{"group":"Organizations","pages":[{"title":"List organizations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/organization","href":"/api-reference/organizations/list-organizations"},{"title":"Get organization","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/organization/{organization_id}","href":"/api-reference/organizations/get-organization"},{"title":"Partially update organization","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/organization/{organization_id}","href":"/api-reference/organizations/partially-update-organization"},{"title":"Modify organization membership","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/organization/members","href":"/api-reference/organizations/modify-organization-membership"},{"title":"List organization API keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/organization/api_keys","href":"/api-reference/organizations/list-organization-api-keys"}]},{"group":"ApiKeys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/api_key","href":"/api-reference/apikeys/list-api-keys"},{"title":"Get API key","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/api_key/{api_key_id}","href":"/api-reference/apikeys/get-api-key"},{"title":"Delete API key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api_key/{api_key_id}","href":"/api-reference/apikeys/delete-api-key"}]},{"group":"ServiceTokens","pages":[{"title":"List service tokens","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/service_token","href":"/api-reference/servicetokens/list-service-tokens"},{"title":"Create or replace service token","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/service_token","href":"/api-reference/servicetokens/create-or-replace-service-token"},{"title":"Create service token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/service_token","href":"/api-reference/servicetokens/create-service-token"},{"title":"Delete single service token","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/service_token","href":"/api-reference/servicetokens/delete-single-service-token"},{"title":"Get service token","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/service_token/{service_token_id}","href":"/api-reference/servicetokens/get-service-token"},{"title":"Delete service token","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/service_token/{service_token_id}","href":"/api-reference/servicetokens/delete-service-token"}]},{"group":"AiSecrets","pages":[{"title":"List AI secrets","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/ai_secret","href":"/api-reference/aisecrets/list-ai-secrets"},{"title":"Create or replace AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/ai_secret","href":"/api-reference/aisecrets/create-or-replace-ai-secret"},{"title":"Create AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/ai_secret","href":"/api-reference/aisecrets/create-ai-secret"},{"title":"Delete single AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/ai_secret","href":"/api-reference/aisecrets/delete-single-ai-secret"},{"title":"Get AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/ai_secret/{ai_secret_id}","href":"/api-reference/aisecrets/get-ai-secret"},{"title":"Delete AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/ai_secret/{ai_secret_id}","href":"/api-reference/aisecrets/delete-ai-secret"},{"title":"Partially update AI secret","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/ai_secret/{ai_secret_id}","href":"/api-reference/aisecrets/partially-update-ai-secret"}]},{"group":"EnvVars","pages":[{"title":"List env vars","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/env_var","href":"/api-reference/envvars/list-env-vars"},{"title":"Create or replace env var","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/env_var","href":"/api-reference/envvars/create-or-replace-env-var"},{"title":"Create env var","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/env_var","href":"/api-reference/envvars/create-env-var"},{"title":"Get env var","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/env_var/{env_var_id}","href":"/api-reference/envvars/get-env-var"},{"title":"Delete env var","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/env_var/{env_var_id}","href":"/api-reference/envvars/delete-env-var"},{"title":"Partially update env var","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/env_var/{env_var_id}","href":"/api-reference/envvars/partially-update-env-var"}]},{"group":"McpServers","pages":[{"title":"List MCP servers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/mcp_server","href":"/api-reference/mcpservers/list-mcp-servers"},{"title":"Create or replace MCP server","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/mcp_server","href":"/api-reference/mcpservers/create-or-replace-mcp-server"},{"title":"Create MCP server","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/mcp_server","href":"/api-reference/mcpservers/create-mcp-server"},{"title":"Get MCP server","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/mcp_server/{mcp_server_id}","href":"/api-reference/mcpservers/get-mcp-server"},{"title":"Delete MCP server","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/mcp_server/{mcp_server_id}","href":"/api-reference/mcpservers/delete-mcp-server"},{"title":"Partially update MCP server","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/mcp_server/{mcp_server_id}","href":"/api-reference/mcpservers/partially-update-mcp-server"}]},{"group":"DatasetSnapshots","pages":[{"title":"List dataset snapshots","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset_snapshot","href":"/api-reference/datasetsnapshots/list-dataset-snapshots"},{"title":"Create or replace dataset snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/dataset_snapshot","href":"/api-reference/datasetsnapshots/create-or-replace-dataset-snapshot"},{"title":"Create dataset snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/dataset_snapshot","href":"/api-reference/datasetsnapshots/create-dataset-snapshot"},{"title":"Get dataset snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/dataset_snapshot/{dataset_snapshot_id}","href":"/api-reference/datasetsnapshots/get-dataset-snapshot"},{"title":"Delete dataset snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/dataset_snapshot/{dataset_snapshot_id}","href":"/api-reference/datasetsnapshots/delete-dataset-snapshot"},{"title":"Partially update dataset snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/dataset_snapshot/{dataset_snapshot_id}","href":"/api-reference/datasetsnapshots/partially-update-dataset-snapshot"}]},{"group":"Simulated users","pages":[{"title":"List simulated users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project/{project_id}/simulated_user","href":"/api-reference/simulated-users/list-simulated-users"},{"title":"Create simulated user","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/project/{project_id}/simulated_user","href":"/api-reference/simulated-users/create-simulated-user"},{"title":"Get simulated user","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/project/{project_id}/simulated_user/{id}","href":"/api-reference/simulated-users/get-simulated-user"},{"title":"Delete simulated user","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/project/{project_id}/simulated_user/{id}","href":"/api-reference/simulated-users/delete-simulated-user"},{"title":"Update simulated user","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/project/{project_id}/simulated_user/{id}","href":"/api-reference/simulated-users/update-simulated-user"}]},{"group":"Environments","pages":[{"title":"List environments","deprecated":null,"version":null,"openapi":"/openapi.yaml get /environment","href":"/api-reference/environments/list-environments"},{"title":"Create environment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /environment","href":"/api-reference/environments/create-environment"},{"title":"Get environment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /environment/{environment_id}","href":"/api-reference/environments/get-environment"},{"title":"Delete environment","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /environment/{environment_id}","href":"/api-reference/environments/delete-environment"},{"title":"Partially update environment","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /environment/{environment_id}","href":"/api-reference/environments/partially-update-environment"}]},{"group":"Other","pages":[{"title":"Hello world endpoint","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1","href":"/api-reference/other/hello-world-endpoint"}]},{"group":"CrossObject","pages":[{"title":"Cross-object insert","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/insert","href":"/api-reference/crossobject/cross-object-insert"}]},{"group":"Proxy","pages":[{"title":"Proxy chat/completions","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/chat/completions","href":"/api-reference/proxy/proxy-chatcompletions"},{"title":"Proxy completions","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/completions","href":"/api-reference/proxy/proxy-completions"},{"title":"Proxy a model to chat/completions or completions automatically","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/auto","href":"/api-reference/proxy/proxy-a-model-to-chatcompletions-or-completions-automatically"},{"title":"Proxy embeddings","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/embeddings","href":"/api-reference/proxy/proxy-embeddings"},{"title":"Create temporary credential","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/credentials","href":"/api-reference/proxy/create-temporary-credential"},{"title":"Proxy any OpenAI request (fallback)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/proxy/{path+}","href":"/api-reference/proxy/proxy-any-openai-request-fallback"}]},{"group":"Evals","pages":[{"title":"Launch an eval","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/eval","href":"/api-reference/evals/launch-an-eval"}]}]}]},{"group":"CLI","boost":2,"icon":"terminal","pages":[{"title":"CLI quickstart","sidebarTitle":"Quickstart","href":"/reference/cli/quickstart"},{"group":"Commands","pages":[{"title":"CLI overview","sidebarTitle":"Overview","href":"/reference/cli/overview"},{"title":"bt custom-views","sidebarTitle":"bt custom-views","href":"/reference/cli/custom-views"},{"title":"bt datasets","sidebarTitle":"bt datasets","href":"/reference/cli/datasets"},{"title":"bt docs","sidebarTitle":"bt docs","href":"/reference/cli/docs"},{"title":"bt environments","sidebarTitle":"bt environments","href":"/reference/cli/environments"},{"title":"bt eval","sidebarTitle":"bt eval","href":"/reference/cli/eval"},{"title":"bt experiments","sidebarTitle":"bt experiments","href":"/reference/cli/experiments"},{"title":"bt functions","sidebarTitle":"bt functions","href":"/reference/cli/functions"},{"title":"bt init","sidebarTitle":"bt init","href":"/reference/cli/init"},{"title":"bt login","sidebarTitle":"bt login","href":"/reference/cli/login"},{"title":"bt logout","sidebarTitle":"bt logout","href":"/reference/cli/logout"},{"title":"bt mcp","sidebarTitle":"bt mcp","href":"/reference/cli/mcp"},{"title":"bt observability","sidebarTitle":"bt observability","href":"/reference/cli/observability"},{"title":"bt preprocessors","sidebarTitle":"bt preprocessors","href":"/reference/cli/preprocessors"},{"title":"bt profiles","sidebarTitle":"bt profiles","href":"/reference/cli/profiles"},{"title":"bt projects","sidebarTitle":"bt projects","href":"/reference/cli/projects"},{"title":"bt prompts","sidebarTitle":"bt prompts","href":"/reference/cli/prompts"},{"title":"bt scorers","sidebarTitle":"bt scorers","href":"/reference/cli/scorers"},{"title":"bt setup","sidebarTitle":"bt setup","href":"/reference/cli/setup"},{"title":"bt sql","sidebarTitle":"bt sql","href":"/reference/cli/sql"},{"title":"bt status","sidebarTitle":"bt status","href":"/reference/cli/status"},{"title":"bt switch","sidebarTitle":"bt switch","href":"/reference/cli/switch"},{"title":"bt sync","sidebarTitle":"bt sync","href":"/reference/cli/sync"},{"title":"bt tools","sidebarTitle":"bt tools","href":"/reference/cli/tools"},{"title":"bt topics","sidebarTitle":"bt topics","href":"/reference/cli/topics"},{"title":"bt trace","sidebarTitle":"bt trace","href":"/reference/cli/trace"},{"title":"bt update","sidebarTitle":"bt update","href":"/reference/cli/update"},{"title":"bt view","sidebarTitle":"bt view","href":"/reference/cli/view"}]},{"title":"Migrate bt","sidebarTitle":"Migrate","href":"/reference/cli/migrate"}]},{"group":"Terraform","icon":"boxes","pages":[{"title":"Terraform provider","sidebarTitle":"Overview","href":"/reference/terraform"},{"title":"Terraform Registry","sidebarTitle":"Reference","url":"https://registry.terraform.io/providers/braintrustdata/braintrust/latest/docs","href":"/reference/terraform-registry"}]},{"group":"SQL","icon":"database","pages":[{"title":"SQL reference","sidebarTitle":"Overview","href":"/reference/sql/index"},{"title":"How filtering works","sidebarTitle":"Filtering","href":"/reference/sql/filtering"},{"title":"SQL query structure","sidebarTitle":"Query structure","href":"/reference/sql/query-structure"},{"title":"SQL functions and operators","sidebarTitle":"Functions and operators","href":"/reference/sql/functions"},{"title":"Example queries","sidebarTitle":"Examples","href":"/reference/sql/examples"},{"title":"SQL best practices","sidebarTitle":"Best practices","href":"/reference/sql/best-practices"}]}]},{"tab":"Cookbook","icon":"notebook","pages":[{"title":"Cookbook","href":"/cookbook"}]},{"tab":"Troubleshooting","icon":"wrench","pages":[{"title":"Troubleshooting","href":"/kb"}]},{"tab":"Changelog","icon":"mailbox","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Insert project logs events - Braintrust","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}