Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer’s training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf’s answer and distribution, and the content when the decision stores it) and its group’s split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content’s text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader’s call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer’s first, blind answer and true on each answer that changed it after Moonbounce’s call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack’s terms bar training an LLM on slack feedback. Scoped to the key’s organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key’s environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission’s creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions’ original creation time. A reason added later to a submission already read (a reviewer’s POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents’ context. The web session may not read it (403).
An API key, sent as Authorization: Bearer <key>. Each operation lists the scope its key needs: decisions:evaluate (evaluate and read evaluations), decisions:feedback (your app's feedback) or decisions:develop (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.
The environment of the key that made the call: production or test. Evaluations, feedback, reviews and suggestions are separate per environment; registered structures are shared.
Where to resume: pass it as cursor. Set whenever the page has items (the last item's position) and, on an empty page read with a cursor, that cursor again, so a reader at the end keeps its place. Reading from it later returns what was written after it, apart from writes that commit behind it and reasons added later to submissions already read (see the endpoint), so re-read from the start now and then. Null only on an empty first page.
Submission rows, including withdrawal events (not distinct evaluations), in scope (this decision, the key's environment, the same version filters) that the export leaves out of every page. Counted on the first page only (no cursor); null on later pages. Counts per filter can tell you that a version gained held-out feedback, never which item.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Moonbounce Decisions API","colors":{"primary":"#4f46e5"},"banner":{"content":"Looking for the Clavata policy and labeling API? Those docs are at [docs.clavata.ai](https://docs.clavata.ai). You are on the docs for the Moonbounce decisions platform.","dismissible":true,"type":"info"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moonbounce","hasAudioNarration":false,"actualSubdomain":"moonbounce","customDomains":[],"gitSource":{"type":"github","owner":"clavataai","repo":"decisions-platform","deployBranch":"main","contentDirectory":"docs/site","isPrivate":true,"mountPath":"","label":"","_id":"6ae8f7a905e268646b31d443"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae8f896f8277f19c7cc79c9","collectionId":"f756780d-07b6-4802-bb88-e6a9d392f388","liveDeploymentHistoryId":"6ae8f896f8277f19c7cc79c9","schemaVersion":"v3"},"entitlements":{},"buildId":"6ae8f896f8277f19c7cc79c9","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API reference","count":34},{"language":"default","tag":"Endpoints","count":33},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"review","count":9},{"language":"default","tag":"suggestions","count":6},{"language":"default","tag":"specs","count":5},{"language":"default","tag":"Improve a decision","count":4},{"language":"default","tag":"feedback","count":4},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"engines","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/feedback/export-a-decisions-feedback-as-training-data","slug":"/api-reference/feedback/export-a-decisions-feedback-as-training-data","pageMetadata":{"title":"Export a decision's feedback as training data","description":"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer's training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf's answer and distribution, and the content when the decision stores it) and its group's split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in `withheld.holdout`, together with feedback whose content's text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. `withheld` counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no `cursor`) and is null on later pages. Counts per `structure` or `weights` filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked `superseded_by`, and how submissions become training data is the reader's call. `withdrawn_at` marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, `after_reveal` is false on the reviewer's first, blind answer and true on each answer that changed it after Moonbounce's call was revealed: pick the blind answer to measure accuracy, the latest to train. `channel` says where each submission came from; Slack's terms bar training an LLM on `slack` feedback. Scoped to the key's organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. `structure` and `weights` keep only evaluations on those hashes. `split.group` is an opaque id shared by submissions on near-identical items in the key's environment; it never names an item. Page forward by passing `next_cursor` as `cursor` while `has_more` is true. `next_cursor` is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission's creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions' original creation time. A reason added later to a submission already read (a reviewer's `POST /v1/review/items/{item_id}/reason`) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents' context. The web session may not read it (403).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/feedback","href":"/api-reference/feedback/export-a-decisions-feedback-as-training-data","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer’s training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf’s answer and distribution, and the content when the decision stores it) and its group’s split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in \", _jsx(_components.code, {\n children: \"withheld.holdout\"\n }), \", together with feedback whose content’s text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. \", _jsx(_components.code, {\n children: \"withheld\"\n }), \" counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no \", _jsx(_components.code, {\n children: \"cursor\"\n }), \") and is null on later pages. Counts per \", _jsx(_components.code, {\n children: \"structure\"\n }), \" or \", _jsx(_components.code, {\n children: \"weights\"\n }), \" filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked \", _jsx(_components.code, {\n children: \"superseded_by\"\n }), \", and how submissions become training data is the reader’s call. \", _jsx(_components.code, {\n children: \"withdrawn_at\"\n }), \" marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, \", _jsx(_components.code, {\n children: \"after_reveal\"\n }), \" is false on the reviewer’s first, blind answer and true on each answer that changed it after Moonbounce’s call was revealed: pick the blind answer to measure accuracy, the latest to train. \", _jsx(_components.code, {\n children: \"channel\"\n }), \" says where each submission came from; Slack’s terms bar training an LLM on \", _jsx(_components.code, {\n children: \"slack\"\n }), \" feedback. Scoped to the key’s organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. \", _jsx(_components.code, {\n children: \"structure\"\n }), \" and \", _jsx(_components.code, {\n children: \"weights\"\n }), \" keep only evaluations on those hashes. \", _jsx(_components.code, {\n children: \"split.group\"\n }), \" is an opaque id shared by submissions on near-identical items in the key’s environment; it never names an item. Page forward by passing \", _jsx(_components.code, {\n children: \"next_cursor\"\n }), \" as \", _jsx(_components.code, {\n children: \"cursor\"\n }), \" while \", _jsx(_components.code, {\n children: \"has_more\"\n }), \" is true. \", _jsx(_components.code, {\n children: \"next_cursor\"\n }), \" is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission’s creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions’ original creation time. A reason added later to a submission already read (a reviewer’s \", _jsx(_components.code, {\n children: \"POST /v1/review/items/{item_id}/reason\"\n }), \") does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents’ context. The web session may not read it (403).\"]\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":{"config":{},"pageMetadata":{"title":"Export a decision's feedback as training data","description":"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer's training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf's answer and distribution, and the content when the decision stores it) and its group's split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in `withheld.holdout`, together with feedback whose content's text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. `withheld` counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no `cursor`) and is null on later pages. Counts per `structure` or `weights` filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked `superseded_by`, and how submissions become training data is the reader's call. `withdrawn_at` marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, `after_reveal` is false on the reviewer's first, blind answer and true on each answer that changed it after Moonbounce's call was revealed: pick the blind answer to measure accuracy, the latest to train. `channel` says where each submission came from; Slack's terms bar training an LLM on `slack` feedback. Scoped to the key's organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. `structure` and `weights` keep only evaluations on those hashes. `split.group` is an opaque id shared by submissions on near-identical items in the key's environment; it never names an item. Page forward by passing `next_cursor` as `cursor` while `has_more` is true. `next_cursor` is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission's creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions' original creation time. A reason added later to a submission already read (a reviewer's `POST /v1/review/items/{item_id}/reason`) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents' context. The web session may not read it (403).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/feedback","href":"/api-reference/feedback/export-a-decisions-feedback-as-training-data","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listFeedback","tags":["feedback"],"security":["62320bf7-f7cd-425a-8ca6-1d9ed767150f"],"summary":"Export a decision's feedback as training data","description":"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer's training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf's answer and distribution, and the content when the decision stores it) and its group's split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in `withheld.holdout`, together with feedback whose content's text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. `withheld` counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no `cursor`) and is null on later pages. Counts per `structure` or `weights` filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked `superseded_by`, and how submissions become training data is the reader's call. `withdrawn_at` marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, `after_reveal` is false on the reviewer's first, blind answer and true on each answer that changed it after Moonbounce's call was revealed: pick the blind answer to measure accuracy, the latest to train. `channel` says where each submission came from; Slack's terms bar training an LLM on `slack` feedback. Scoped to the key's organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. `structure` and `weights` keep only evaluations on those hashes. `split.group` is an opaque id shared by submissions on near-identical items in the key's environment; it never names an item. Page forward by passing `next_cursor` as `cursor` while `has_more` is true. `next_cursor` is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission's creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions' original creation time. A reason added later to a submission already read (a reviewer's `POST /v1/review/items/{item_id}/reason`) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents' context. The web session may not read it (403).","x-mcp":false,"parameters":["84d2306d-b456-4887-be42-476882f9ccca","84a4fe49-f5b8-4f03-9789-c6f0065141a0","b43a6f62-8ab4-40b9-a359-60a83bb33efb","45de6502-4118-40f4-b27b-dafc2644d18f","f47dfbfa-634a-4b6f-b988-e6789b4f1e49"],"responses":{"200":"dcd28544-0744-4fcc-b2be-35a64f9eca24","400":"c2406496-cd66-452d-a183-e6dbead14ae2","401":"b1390fcc-61b4-4d0a-be37-a62232be03c5","403":"342dafc8-e5fc-412b-986d-a2cb49e08ca7","429":"09231641-7223-40de-b8f6-83de4188c785","503":"d8d59c51-8942-425f-9516-e1a7032ab41b"},"method":"get","type":"path","servers":["9e61324b-4cc4-430d-a8d9-fa0221e50db5"],"path":"/v1/decisions/{decision_id}/feedback","baseUrlOptions":["https://api.moonbounce.ai"],"title":"Export a decision's feedback as training data","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"84d2306d-b456-4887-be42-476882f9ccca":{"schema":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"decision_id","in":"path"},"84a4fe49-f5b8-4f03-9789-c6f0065141a0":{"schema":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Only feedback on evaluations of this structure hash.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only feedback on evaluations of this structure hash.","name":"structure","in":"query"},"b43a6f62-8ab4-40b9-a359-60a83bb33efb":{"schema":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Only feedback on evaluations with this weights hash.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only feedback on evaluations with this weights hash.","name":"weights","in":"query"},"45de6502-4118-40f4-b27b-dafc2644d18f":{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"isRequired":false,"uniqueKey":"","typeLabel":"integer"},"required":false,"name":"limit","in":"query"},"f47dfbfa-634a-4b6f-b988-e6789b4f1e49":{"schema":{"type":"string","minLength":1,"maxLength":1024,"description":"The previous page's `next_cursor`.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"The previous page's `next_cursor`.","name":"cursor","in":"query"}},"responses":{"dcd28544-0744-4fcc-b2be-35a64f9eca24":{"description":"A page of feedback, oldest first","content":{"application/json":{"schema":{"type":"object","properties":{"environment":{"type":"string","enum":["production","test"],"description":"The environment of the key that made the call: `production` or `test`. Evaluations, feedback, reviews and suggestions are separate per environment; registered structures are shared.","isRequired":true,"uniqueKey":"environment","typeLabel":"enum\u003cstring>"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^fbk_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"source":{"type":"string","enum":["app_native","app_resolution","reviewer","owner","import","synthetic_review"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","enum":["slack","web","api","mcp","import"],"description":"The surface the submission came through, stamped by the server. Slack's terms bar training an LLM on Slack data: leave out `slack` when you fit a model.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].channel","typeLabel":"enum\u003cstring>"},"actor":{"type":"string","description":"Who submitted it, as recorded (an `ext:` prefix marks an actor a key named).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].actor","typeLabel":"string"},"reason_pending":{"type":"boolean","description":"True when a reason was promised and has not arrived yet. On a superseded submission (`superseded_by` set) it means the reason was never added before the answer was replaced, and none will be: read the chain head.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].reason_pending","typeLabel":"boolean"},"unsure":{"type":"boolean","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unsure","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"\\items.items.[INDEX].created_at","typeLabel":"string\u003cdate-time>"},"claims":{"type":"array","items":{"type":"object","properties":{"claim":{"oneOf":[{"type":"object","description":"Whether the target statement is true. Only for specs that declare a target.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["target"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"boolean","description":"Whether the spec's target statement is true of this item.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.0.value","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.0","typeLabel":"object"},{"type":"object","description":"The outcome this item should have had. On a cut score, the lowest outcome also says the target is false and the highest says it is true; middle outcomes say nothing about the target.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["outcome"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"string","minLength":1,"maxLength":64,"description":"The right outcome: one of this evaluation's outcomes (`below` or a cut's outcome); an `abstain` name counts only where it reuses one of them.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.1.value","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.1","typeLabel":"object"},{"type":"object","description":"Approve or reject the outcome that was shown. Needs `about.evaluation_id`, and an evaluation whose outcome was shown to someone: primary traffic that decided (it has a score). An evaluation that abstained has only a fallback outcome, whatever it is called.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["verdict"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"string","enum":["approve","reject"],"description":"approve: the shown outcome was right. reject: it was wrong.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.2.value","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.2","typeLabel":"object"},{"type":"object","description":"The expected answer of one boolean feature. It is stored against that feature's prompt as it was judged, so a reworded prompt does not inherit it.","required":["kind","feature","value"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","minLength":1,"maxLength":64,"description":"A boolean feature of the evaluation's spec.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.3.feature","typeLabel":"string"},"value":{"type":"boolean","description":"What the feature's answer should have been.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.3.value","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.3","typeLabel":"object"},{"type":"object","description":"The content could not be judged. The evaluation is kept out of fits and previews.","required":["kind","problem"],"properties":{"kind":{"type":"string","enum":["input_broken"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"problem":{"type":"string","enum":["truncated","wrong_language","bad_extraction","unreadable","other"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.4.problem","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.4","typeLabel":"object"},{"type":"object","description":"What your app did with the outcome. Observed behavior, not a statement of what is true.","required":["kind","value"],"properties":{"kind":{"type":"string","enum":["action"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"string","minLength":1,"maxLength":128,"description":"What your app did, in your own words (for example `auto_approved`).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.5.value","typeLabel":"string"},"logic_version":{"type":"string","maxLength":128,"description":"Which version of your own logic acted.","uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.5.logic_version","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim.oneOf.5","typeLabel":"object"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].claim","typeLabel":"object"},"shown":{"type":"object","properties":{"structure":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].shown.structure","typeLabel":"string"},"weights":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].shown.weights","typeLabel":"string"}},"required":["structure","weights"],"additionalProperties":false,"description":"The structure and weights whose answers the person saw.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].shown","typeLabel":"object"},"node_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Feature claims only: the node hash of the prompt that was judged. A feature whose prompt has since changed has a different hash, and the claim does not apply to it.","uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX].node_hash","typeLabel":"string"}},"required":["claim","shown"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].claims.items.[INDEX]","typeLabel":"object"},"description":"The claims, in the order they were sent.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].claims","typeLabel":"object[]"},"evaluation":{"type":"object","properties":{"id":{"type":"string","pattern":"^evl_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.id","typeLabel":"string"},"item_id":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.item_id","typeLabel":"string"},"assignment_mode":{"type":"string","enum":["primary","shadow","backtest","seed"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.assignment_mode","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.created_at","typeLabel":"string\u003cdate-time>"},"version":{"type":"object","properties":{"structure":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version.structure","typeLabel":"string"},"weights":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version.weights","typeLabel":"string"},"weights_source":{"type":"string","enum":["pinned","default"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version.weights_source","typeLabel":"enum\u003cstring>"},"binding":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version.binding","typeLabel":"integer"},"engine_profile":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version.engine_profile","typeLabel":"string"}},"required":["structure","weights","weights_source","binding","engine_profile"],"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.version","typeLabel":"object"},"features":{"type":"object","additionalProperties":{"type":"object","properties":{"node_hash":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"The hash of the prompt as it was asked.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.node_hash","typeLabel":"string"},"status":{"type":"string","enum":["answered","abstained","failed"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.status","typeLabel":"enum\u003cstring>"},"cached":{"type":"boolean","description":"True when the answer came from the feature cache.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.cached","typeLabel":"boolean"},"value":{"type":"number","minimum":0,"maximum":1,"description":"The answer's probability of true, when answered.","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.value","typeLabel":"number"},"distribution":{"type":"object","additionalProperties":{"type":"number","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.distribution.additionalProperties","typeLabel":"number"},"description":"The raw per-answer distribution as the engine returned it, never re-rounded.","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.distribution","typeLabel":"object"},"engine":{"type":"string","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.engine","typeLabel":"string"},"model":{"type":"string","description":"The model the binding asked for.","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.model","typeLabel":"string"},"resolved_model":{"type":"string","description":"The versioned model id that answered.","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.resolved_model","typeLabel":"string"},"adapter":{"type":"string","description":"The adapter package and version.","uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties.adapter","typeLabel":"string"}},"required":["node_hash","status","cached"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.features.additionalProperties","typeLabel":"object"},"description":"Each leaf's answer, by feature name.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.features","typeLabel":"object"},"content":{"oneOf":[{"type":"object","description":"The content judged; null when the decision does not store content.","required":["subject"],"properties":{"subject":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.0.text","typeLabel":"string"},"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Names the part, so a feature's `inputs` can pick it. In `subject`, avoid \"context\" when the request also sends `context`.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.0.name","typeLabel":"string"},"sensitive":{"type":"boolean","description":"Display policy only: reviewers see the part blurred or behind a link. The engine still reads it and it is stored like any other part.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.0.sensitive","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","data"],"properties":{"type":{"type":"string","enum":["json"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.data.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.data.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.data.oneOf.1.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.data.oneOf.1","typeLabel":"any[]"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.data","typeLabel":"object | any[]"},"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Names the part, so a feature's `inputs` can pick it. In `subject`, avoid \"context\" when the request also sends `context`.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.name","typeLabel":"string"},"sensitive":{"type":"boolean","description":"Display policy only: reviewers see the part blurred or behind a link. The engine still reads it and it is stored like any other part.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1.sensitive","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.subject","typeLabel":"object[]"},"context":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","text"],"properties":{"type":{"type":"string","enum":["text"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"text":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.0.text","typeLabel":"string"},"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Names the part, so a feature's `inputs` can pick it. In `subject`, avoid \"context\" when the request also sends `context`.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.0.name","typeLabel":"string"},"sensitive":{"type":"boolean","description":"Display policy only: reviewers see the part blurred or behind a link. The engine still reads it and it is stored like any other part.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.0.sensitive","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","data"],"properties":{"type":{"type":"string","enum":["json"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"data":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.data.oneOf.0.additionalProperties","typeLabel":"any"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.data.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.data.oneOf.1.items.[INDEX]","typeLabel":"any"},"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.data.oneOf.1","typeLabel":"any[]"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.data","typeLabel":"object | any[]"},"name":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"Names the part, so a feature's `inputs` can pick it. In `subject`, avoid \"context\" when the request also sends `context`.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.name","typeLabel":"string"},"sensitive":{"type":"boolean","description":"Display policy only: reviewers see the part blurred or behind a link. The engine still reads it and it is stored like any other part.","uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1.sensitive","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0.context","typeLabel":"object[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.0","typeLabel":"object"},{"type":"null","description":"The content judged; null when the decision does not store content.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.content","typeLabel":"object | null"},"outcomes":{"type":"object","properties":{"below":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","description":"The outcome for a score under the first cut.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.below","typeLabel":"string"},"cuts":{"type":"array","items":{"type":"object","properties":{"at":{"type":"number","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.cuts.items.[INDEX].at","typeLabel":"number"},"outcome":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.cuts.items.[INDEX].outcome","typeLabel":"string"}},"required":["at","outcome"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.cuts.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":9,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.cuts","typeLabel":"object[]"},"abstain":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"\\items.items.[INDEX].evaluation.outcomes.abstain","typeLabel":"string"}},"required":["below","cuts"],"additionalProperties":false,"description":"The cut points as the caller sent them.","uniqueKey":"\\items.items.[INDEX].evaluation.outcomes","typeLabel":"object"},"score":{"type":"number","uniqueKey":"\\items.items.[INDEX].evaluation.score","typeLabel":"number"},"outcome":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$","uniqueKey":"\\items.items.[INDEX].evaluation.outcome","typeLabel":"string"}},"required":["id","item_id","assignment_mode","created_at","version","features","content"],"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].evaluation","typeLabel":"object"},"split":{"type":"object","properties":{"split":{"type":"string","enum":["seed","train","burned"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].split.split","typeLabel":"enum\u003cstring>"},"group":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"An opaque, stable id of the item's group of near-identical items in the key's environment: submissions with the same `group` share one. It never names an item.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].split.group","typeLabel":"string"}},"required":["split","group"],"additionalProperties":false,"description":"The item's group and its side of the training line: `seed` (a starting example), `train`, or `burned` (a holdout group whose cases were shown in a preview, that was merged with a near-duplicate group, or whose content was later imported as a seed example; it counts as training).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].split","typeLabel":"object"},"reason":{"type":"string","uniqueKey":"\\items.items.[INDEX].reason","typeLabel":"string"},"reason_added_at":{"type":"string","format":"date-time","description":"When a pending reason was filled in. A reason added after the answer was revealed is commentary, not blind evidence.","uniqueKey":"\\items.items.[INDEX].reason_added_at","typeLabel":"string\u003cdate-time>"},"withdrawn_at":{"type":"string","format":"date-time","description":"When this claimless submission withdrew its chain. Resolve chain heads before excluding withdrawn chains; ancestors never revive.","uniqueKey":"\\items.items.[INDEX].withdrawn_at","typeLabel":"string\u003cdate-time>"},"after_reveal":{"type":"boolean","description":"Spot checks only. `false` on the reviewer's first answer, given blind; `true` on an answer that changed it after Moonbounce's call was revealed. Accuracy is measured on the blind answer. Omitted on other items, other sources and withdrawal events.","uniqueKey":"\\items.items.[INDEX].after_reveal","typeLabel":"boolean"},"supersedes":{"type":"string","pattern":"^fbk_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"The submission this one replaces.","uniqueKey":"\\items.items.[INDEX].supersedes","typeLabel":"string"},"superseded_by":{"type":"string","pattern":"^fbk_[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$","description":"Set when a later submission replaced this one. This one no longer counts.","uniqueKey":"\\items.items.[INDEX].superseded_by","typeLabel":"string"}},"required":["id","source","channel","actor","reason_pending","unsure","created_at","claims","evaluation","split"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"next_cursor":{"oneOf":[{"type":"string","description":"Where to resume: pass it as `cursor`. Set whenever the page has items (the last item's position) and, on an empty page read with a cursor, that cursor again, so a reader at the end keeps its place. Reading from it later returns what was written after it, apart from writes that commit behind it and reasons added later to submissions already read (see the endpoint), so re-read from the start now and then. Null only on an empty first page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Where to resume: pass it as `cursor`. Set whenever the page has items (the last item's position) and, on an empty page read with a cursor, that cursor again, so a reader at the end keeps its place. Reading from it later returns what was written after it, apart from writes that commit behind it and reasons added later to submissions already read (see the endpoint), so re-read from the start now and then. Null only on an empty first page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_cursor","typeLabel":"string | null"},"has_more":{"type":"boolean","description":"True when more items follow this page now.","isRequired":true,"uniqueKey":"has_more","typeLabel":"boolean"},"withheld":{"oneOf":[{"type":"object","description":"Submission rows, including withdrawal events (not distinct evaluations), in scope (this decision, the key's environment, the same version filters) that the export leaves out of every page. Counted on the first page only (no `cursor`); null on later pages. Counts per filter can tell you that a version gained held-out feedback, never which item.","required":["holdout","unassigned"],"properties":{"holdout":{"type":"integer","minimum":0,"description":"Submissions in held-out groups, and submissions whose content's text belongs to a held-out group: counted, never listed.","isRequired":true,"uniqueKey":"withheld.oneOf.0.holdout","typeLabel":"integer"},"unassigned":{"type":"integer","minimum":0,"description":"Submissions whose item has no split yet.","isRequired":true,"uniqueKey":"withheld.oneOf.0.unassigned","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"withheld.oneOf.0","typeLabel":"object"},{"type":"null","description":"Submission rows, including withdrawal events (not distinct evaluations), in scope (this decision, the key's environment, the same version filters) that the export leaves out of every page. Counted on the first page only (no `cursor`); null on later pages. Counts per filter can tell you that a version gained held-out feedback, never which item.","isRequired":true,"uniqueKey":"withheld.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"withheld","typeLabel":"object | null"}},"required":["environment","items","next_cursor","has_more","withheld"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"environment":"production","items":[{"id":"\u003cstring>","source":"app_native","channel":"slack","actor":"\u003cstring>","reason_pending":true,"unsure":true,"created_at":"2023-11-07T05:31:56Z","claims":[{"claim":{"kind":"target","value":true},"shown":{"structure":"\u003cstring>","weights":"\u003cstring>"},"node_hash":"\u003cstring>"}],"evaluation":{"id":"\u003cstring>","item_id":"\u003cstring>","assignment_mode":"primary","created_at":"2023-11-07T05:31:56Z","version":{"structure":"\u003cstring>","weights":"\u003cstring>","weights_source":"pinned","binding":2,"engine_profile":"\u003cstring>"},"features":{},"content":{"subject":[{"type":"text","text":"\u003cstring>","name":"\u003cstring>","sensitive":true}],"context":[{"type":"text","text":"\u003cstring>","name":"\u003cstring>","sensitive":true}]},"outcomes":{"below":"\u003cstring>","cuts":[{"at":123,"outcome":"\u003cstring>"}],"abstain":"\u003cstring>"},"score":123,"outcome":"\u003cstring>"},"split":{"split":"seed","group":"\u003cstring>"},"reason":"\u003cstring>","reason_added_at":"2023-11-07T05:31:56Z","withdrawn_at":"2023-11-07T05:31:56Z","after_reveal":true,"supersedes":"\u003cstring>","superseded_by":"\u003cstring>"}],"next_cursor":"\u003cstring>","has_more":true,"withheld":{"holdout":1,"unassigned":1}}}},"exampleType":"generated"}},"exampleType":"generated"},"c2406496-cd66-452d-a183-e6dbead14ae2":{"description":"Invalid request: `param` names the field at fault when one applies","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`subject.0.text`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"b1390fcc-61b4-4d0a-be37-a62232be03c5":{"description":"Missing or invalid API key (reason KEY_INVALID)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`subject.0.text`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"342dafc8-e5fc-412b-986d-a2cb49e08ca7":{"description":"The key may not do this","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`subject.0.text`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"09231641-7223-40de-b8f6-83de4188c785":{"description":"RATE_LIMITED: retry after Retry-After seconds; QUOTA_EXCEEDED: details.reset_at gives the daily reset time (no Retry-After), or details.too_large asks for a smaller request","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying, when waiting helps."},"required":false,"description":"Seconds to wait before retrying, when waiting helps."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`subject.0.text`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d8d59c51-8942-425f-9516-e1a7032ab41b":{"description":"Temporarily unavailable, with Retry-After (for example reason AUTH_UNAVAILABLE, ENGINE_UNAVAILABLE or STORE_UNAVAILABLE): retry with the same Idempotency-Key","headers":{"Retry-After":{"schema":{"type":"string","description":"Seconds to wait before retrying, when waiting helps."},"required":true,"description":"Seconds to wait before retrying, when waiting helps."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication","permission_denied","not_found","conflict","rate_limited","engine_failed","unavailable","internal"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"For people; don't parse it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"reason":{"type":"string","pattern":"^[A-Z][A-Z0-9_]+$","description":"Set where a caller can act on it, one of the reasons in the ErrorReason schema. New reasons may be added: treat an unknown one by the status and `type`.","uniqueKey":"error.reason","typeLabel":"string"},"param":{"type":"string","description":"The request field at fault, as a dotted path (`subject.0.text`, `claims.1.value`).","uniqueKey":"error.param","typeLabel":"string"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["type","message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request","message":"\u003cstring>","reason":"\u003cstring>","param":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"62320bf7-f7cd-425a-8ca6-1d9ed767150f":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:develop"],"schemeName":"bearerAuth"}}},"servers":{"9e61324b-4cc4-430d-a8d9-fa0221e50db5":{"url":"https://api.moonbounce.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","scopes":["decisions:develop"],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key, sent as `Authorization: Bearer \u003ckey>`. Each operation lists the scope its key needs: `decisions:evaluate` (evaluate and read evaluations), `decisions:feedback` (your app's feedback) or `decisions:develop` (everything else, including owner feedback and the review queue). An operation listing no scope takes any scoped key. A key with no scope, or without the operation's, gets 403 INSUFFICIENT_SCOPE.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"moonbounce","siteName":"Moonbounce Decisions API","title":"Export a decision's feedback as training data - Moonbounce Decisions API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T20:55:03.968Z","originalFileLocation":"api-reference/feedback/export-a-decisions-feedback-as-training-data.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=\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer\u0026#x27;s training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf\u0026#x27;s answer and distribution, and the content when the decision stores it) and its group\u0026#x27;s split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content\u0026#x27;s text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader\u0026#x27;s call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer\u0026#x27;s first, blind answer and true on each answer that changed it after Moonbounce\u0026#x27;s call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack\u0026#x27;s terms bar training an LLM on slack feedback. Scoped to the key\u0026#x27;s organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key\u0026#x27;s environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission\u0026#x27;s creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions\u0026#x27; original creation time. A reason added later to a submission already read (a reviewer\u0026#x27;s POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents\u0026#x27; context. The web session may not read it (403).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/moonbounce/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/moonbounce/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/moonbounce/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/moonbounce/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Export a decision\u0026#x27;s feedback as training data - Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer\u0026#x27;s training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf\u0026#x27;s answer and distribution, and the content when the decision stores it) and its group\u0026#x27;s split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content\u0026#x27;s text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader\u0026#x27;s call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer\u0026#x27;s first, blind answer and true on each answer that changed it after Moonbounce\u0026#x27;s call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack\u0026#x27;s terms bar training an LLM on slack feedback. Scoped to the key\u0026#x27;s organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key\u0026#x27;s environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission\u0026#x27;s creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions\u0026#x27; original creation time. A reason added later to a submission already read (a reviewer\u0026#x27;s POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents\u0026#x27; context. The web session may not read it (403).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moonbounce.mintlify.app/_mintlify/api/og/v2?division=feedback\u0026amp;title=Export+a+decision%27s+feedback+as+training+data\u0026amp;description=Lists+feedback+with+its+claims+and+evaluated+cases%3B+reads+only.+The+raw+feedback+on+a+decision%2C+for+a+producer%27s+training+data+%28calibration%2C+weights%2C+suggested+\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=dda2d0eafa7cda88e4294e90e0fefc71a992437e1cb3cd25491c6193a7eb2473\">\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=\"Export a decision\u0026#x27;s feedback as training data - Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer\u0026#x27;s training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf\u0026#x27;s answer and distribution, and the content when the decision stores it) and its group\u0026#x27;s split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content\u0026#x27;s text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader\u0026#x27;s call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer\u0026#x27;s first, blind answer and true on each answer that changed it after Moonbounce\u0026#x27;s call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack\u0026#x27;s terms bar training an LLM on slack feedback. Scoped to the key\u0026#x27;s organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key\u0026#x27;s environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission\u0026#x27;s creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions\u0026#x27; original creation time. A reason added later to a submission already read (a reviewer\u0026#x27;s POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents\u0026#x27; context. The web session may not read it (403).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moonbounce.mintlify.app/_mintlify/api/og/v2?division=feedback\u0026amp;title=Export+a+decision%27s+feedback+as+training+data\u0026amp;description=Lists+feedback+with+its+claims+and+evaluated+cases%3B+reads+only.+The+raw+feedback+on+a+decision%2C+for+a+producer%27s+training+data+%28calibration%2C+weights%2C+suggested+\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=dda2d0eafa7cda88e4294e90e0fefc71a992437e1cb3cd25491c6193a7eb2473\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/moonbounce/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4f46e5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/feedback/export-a-decisions-feedback-as-training-data.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://moonbounce.mintlify.app/#organization\",\"name\":\"Moonbounce Decisions API\",\"url\":\"https://moonbounce.mintlify.app\"},{\"@type\":\"WebSite\",\"@id\":\"https://moonbounce.mintlify.app#website\",\"name\":\"Moonbounce Decisions API\",\"url\":\"https://moonbounce.mintlify.app\",\"publisher\":{\"@id\":\"https://moonbounce.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data#webpage\",\"url\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data\",\"name\":\"Export a decision's feedback as training data\",\"description\":\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer's training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf's answer and distribution, and the content when the decision stores it) and its group's split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content's text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader's call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer's first, blind answer and true on each answer that changed it after Moonbounce's call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack's terms bar training an LLM on slack feedback. Scoped to the key's organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key's environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission's creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions' original creation time. A reason added later to a submission already read (a reviewer's POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents' context. The web session may not read it (403).\",\"dateModified\":\"2026-11-02T20:55:03.968Z\",\"isPartOf\":{\"@id\":\"https://moonbounce.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://moonbounce.mintlify.app/api-reference/health/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"feedback\",\"item\":\"https://moonbounce.mintlify.app/api-reference/feedback/submit-feedback-on-an-evaluation-or-item\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Export a decision's feedback as training data\",\"item\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data#apireference\",\"headline\":\"Export a decision's feedback as training data\",\"name\":\"Export a decision's feedback as training data\",\"description\":\"Lists feedback with its claims and evaluated cases; reads only. The raw feedback on a decision, for a producer's training data (calibration, weights, suggested versions): one item per submission, oldest first, with its claims, the evaluation it judged (version hashes, engine profile, cut points, score, outcome, each leaf's answer and distribution, and the content when the decision stores it) and its group's split. Holdout feedback is never listed, not its claims, its evaluation or its content; it is only counted in withheld.holdout, together with feedback whose content's text belongs to a held-out group, so suggestions can still be tested on feedback their producer never saw. withheld counts submission rows, including withdrawal events, not distinct evaluations. It is counted on the first page only (no cursor) and is null on later pages. Counts per structure or weights filter can tell you that a version gained held-out feedback, never which item. It is raw, not a consensus: superseded submissions are listed and marked superseded_by, and how submissions become training data is the reader's call. withdrawn_at marks a claimless withdrawal event: resolve chain heads across pages, exclude withdrawn chains without reviving ancestors, and invalidate cached answers. On a spot check, after_reveal is false on the reviewer's first, blind answer and true on each answer that changed it after Moonbounce's call was revealed: pick the blind answer to measure accuracy, the latest to train. channel says where each submission came from; Slack's terms bar training an LLM on slack feedback. Scoped to the key's organization and environment, and feedback on deleted evaluations is left out. A decision with no feedback this key can see answers 200 with no items. structure and weights keep only evaluations on those hashes. split.group is an opaque id shared by submissions on near-identical items in the key's environment; it never names an item. Page forward by passing next_cursor as cursor while has_more is true. next_cursor is also set on the last page, so keep it: reading from it later returns what was written after it, apart from the following. Items are in creation order, not commit order, and a submission's creation time is the start of the transaction that wrote it: any write that commits after a later one was read (a seed batch, or any concurrent submission) can land behind a cursor already handed out, and a holdout group that is burned later appears under its submissions' original creation time. A reason added later to a submission already read (a reviewer's POST /v1/review/items/{item_id}/reason) does not move it either. So a forward reader re-reads from the start now and then. Not an MCP tool, so bulk content stays out of coding agents' context. The web session may not read it (403).\",\"url\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data\",\"mainEntityOfPage\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/export-a-decisions-feedback-as-training-data#webpage\"},\"dateModified\":\"2026-11-02T20:55:03.968Z\",\"publisher\":{\"@id\":\"https://moonbounce.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://moonbounce.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moonbounce Decisions API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Moonbounce Decisions API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference overview","href":"/reference/overview"}]},{"group":"Endpoints","pages":[{"group":"health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi.json get /health","href":"/api-reference/health/health-check"}]},{"group":"specs","pages":[{"title":"Hash a decision spec","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/specs/hash","href":"/api-reference/specs/hash-a-decision-spec"},{"title":"List registered structures","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/structures","href":"/api-reference/specs/list-registered-structures"},{"title":"Register a spec structure","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/structures","href":"/api-reference/specs/register-a-spec-structure"},{"title":"Get a registered structure and its spec","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/structures/{structure}","href":"/api-reference/specs/get-a-registered-structure-and-its-spec"},{"title":"List decisions in this environment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions","href":"/api-reference/specs/list-decisions-in-this-environment"}]},{"group":"engines","pages":[{"title":"List the engines a decision can run on","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/engines","href":"/api-reference/engines/list-the-engines-a-decision-can-run-on"},{"title":"Get the engine a decision runs on","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/binding","href":"/api-reference/engines/get-the-engine-a-decision-runs-on"},{"title":"Choose the engine a decision runs on","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/binding/revisions","href":"/api-reference/engines/choose-the-engine-a-decision-runs-on"}]},{"group":"evaluate","pages":[{"title":"Evaluate an item against a decision","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evaluate","href":"/api-reference/evaluate/evaluate-an-item-against-a-decision"},{"title":"Get a past evaluation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evaluations/{evaluation_id}","href":"/api-reference/evaluate/get-a-past-evaluation"},{"title":"List a decision's evaluations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/evaluations","href":"/api-reference/evaluate/list-a-decisions-evaluations"}]},{"group":"feedback","pages":[{"title":"Submit feedback on an evaluation or item","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/feedback","href":"/api-reference/feedback/submit-feedback-on-an-evaluation-or-item"},{"title":"Get a feedback submission as stored","description":"Reads back any feedback submission in the key's environment: one from `POST /v1/feedback`, a seed example's from `POST /v1/decisions/{decision_id}/seeds`, or a review answer. `claims` are in the order and shape they were sent, and `claim_count` says how many there are. `resolved_from_item` says the submission named an item and the server picked the evaluation. `superseded_by` is set when a later submission replaced this one; a replaced submission no longer counts. `supersedes` is the one this replaced. `split` is the side of the training line the item's group is on: `seed` is a starting example, `train` is used for fitting, `holdout` is kept back to test suggestions and never shown to a suggestion generator, and `burned` is a holdout group whose cases were shown in a preview, that was merged with a near-duplicate group, or whose content was later imported as a seed example; it counts as training from then on. It is null when the item has no group yet. Held-out feedback is kept back to test suggestions, so even its author reads only that it was recorded and how many claims it holds: while the group is `holdout` (or the content's text belongs to a held-out group), `withheld` is `holdout` and `claims`, `reason`, `reason_pending` and `unsure` are left out; they come back once the group is burned. A submission whose item has no split yet is withheld the same way, as `unassigned`. `withdrawn_at` marks a claimless withdrawal of the chain; ancestors never revive. On a spot check, `after_reveal` is false on the reviewer's blind answer and true on a later change of it; it is left out while `withheld` is set. `reason_pending` on a superseded submission means its reason was never added before the answer was replaced: read the chain head. `supersedes` and `superseded_by` only ever name a submission on the same evaluation. 404 for an unknown id, another organization's or environment's submission, or one whose evaluation was deleted.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/feedback/{feedback_id}","href":"/api-reference/feedback/get-a-feedback-submission-as-stored"},{"title":"Export a decision's feedback as training data","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/feedback","href":"/api-reference/feedback/export-a-decisions-feedback-as-training-data"},{"title":"Seed a decision with labeled examples","description":"Imports labeled starting examples (seeds): each runs through the engines (spends engine calls) and is stored as an evaluation with seed feedback. Fresh responses include recorded cost per result and a batch total; engine_calls counts upstream calls, which can answer several features, and cache_hits is 0 today. Evaluates up to 200 labeled examples and records their claims as seed feedback in one atomic batch, so previews can replay them. Before any engine call each example is checked: media and turn parts are 400 CAPABILITY_UNSUPPORTED (`param` `examples.\u003ci>.subject.\u003cj>.type`), an `inputs` name its subject lacks is 400 CONTENT_INVALID (`examples.\u003ci>.nodes.\u003cleaf>.inputs.\u003ck>`), and claims are checked (`examples.\u003ci>.claims.\u003cj>`). If any example's output fails, the whole batch is refused with 502 engine_failed and `details.items` naming every failed example with its per-feature failures (`features`); nothing is saved. The request has a 60 s budget, the commit included; a batch that cannot be evaluated within it is a 422 naming how many examples were evaluated in time (send smaller batches). A replay with the same Idempotency-Key returns the first result with the Idempotent-Replayed header and calls no engine.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/seeds","href":"/api-reference/feedback/seed-a-decision-with-labeled-examples"}]},{"group":"review","pages":[{"title":"List review items","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/review/items","href":"/api-reference/review/list-review-items"},{"title":"Get a review item","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/review/items/{item_id}","href":"/api-reference/review/get-a-review-item"},{"title":"Get the structure and weights a review item was decided with","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/review/items/{item_id}/configuration","href":"/api-reference/review/get-the-structure-and-weights-a-review-item-was-decided-with"},{"title":"Mark a review item as shown","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/shown","href":"/api-reference/review/mark-a-review-item-as-shown"},{"title":"Submit a review","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/submit","href":"/api-reference/review/submit-a-review"},{"title":"Withdraw a review answer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/withdraw","href":"/api-reference/review/withdraw-a-review-answer"},{"title":"Change your own earlier review answer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/change","href":"/api-reference/review/change-your-own-earlier-review-answer"},{"title":"Skip a review item","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/skip","href":"/api-reference/review/skip-a-review-item"},{"title":"Add the reason for a blind disagreement","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/review/items/{item_id}/reason","href":"/api-reference/review/add-the-reason-for-a-blind-disagreement"}]},{"group":"suggestions","pages":[{"title":"List suggestions for a decision","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/suggestions","href":"/api-reference/suggestions/list-suggestions-for-a-decision"},{"title":"Generate a suggestion on demand","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/suggestions","href":"/api-reference/suggestions/generate-a-suggestion-on-demand"},{"title":"Get a suggestion","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suggestions/{suggestion_id}","href":"/api-reference/suggestions/get-a-suggestion"},{"title":"Mark a suggestion pulled or rejected","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suggestions/{suggestion_id}/status","href":"/api-reference/suggestions/mark-a-suggestion-pulled-or-rejected"},{"title":"Preview a spec change against past feedback","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/decisions/{decision_id}/previews","href":"/api-reference/suggestions/preview-a-spec-change-against-past-feedback"},{"title":"Get the improvement loop's status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/loop","href":"/api-reference/suggestions/get-the-improvement-loops-status"}]},{"group":"usage","pages":[{"title":"Engine and model cost for a decision, per evaluation and in total","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/decisions/{decision_id}/usage","href":"/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total"}]},{"group":"keys","pages":[{"title":"Identify the calling key or sign-in","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whoami","href":"/api-reference/keys/identify-the-calling-key-or-sign-in"}]}]}]}]},"basePath":"","title":"Export a decision's feedback as training data - Moonbounce Decisions API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-DHaG7hr_.js","dist-DKZWslLH.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-BIWXJmsZ.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","AssistantPageLink-UDqbR6xh.js"]}