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.
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.
Which side of the training line this item's group is on: seed (a starting example, used for fitting), train (used for fitting), holdout (kept back to test suggestions, never shown to a suggestion generator) 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). Null when the item has no group yet.
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. Left out while withheld is set.
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, withdrawal events and withheld rows.
Set when the judgment (claims, reason, reason_pending, unsure) is not returned, even to its author, by the same rules as the feedback export. holdout: the item's group is held out, or the content's text belongs to a held-out group; the judgment is kept back to test suggestions and is returned once the group is burned. unassigned: the item has no split yet.
Available options:
holdout,
unassigned
{"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/get-a-feedback-submission-as-stored","slug":"/api-reference/feedback/get-a-feedback-submission-as-stored","pageMetadata":{"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","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: [\"Reads back any feedback submission in the key’s environment: one from \", _jsx(_components.code, {\n children: \"POST /v1/feedback\"\n }), \", a seed example’s from \", _jsx(_components.code, {\n children: \"POST /v1/decisions/{decision_id}/seeds\"\n }), \", or a review answer. \", _jsx(_components.code, {\n children: \"claims\"\n }), \" are in the order and shape they were sent, and \", _jsx(_components.code, {\n children: \"claim_count\"\n }), \" says how many there are. \", _jsx(_components.code, {\n children: \"resolved_from_item\"\n }), \" says the submission named an item and the server picked the evaluation. \", _jsx(_components.code, {\n children: \"superseded_by\"\n }), \" is set when a later submission replaced this one; a replaced submission no longer counts. \", _jsx(_components.code, {\n children: \"supersedes\"\n }), \" is the one this replaced. \", _jsx(_components.code, {\n children: \"split\"\n }), \" is the side of the training line the item’s group is on: \", _jsx(_components.code, {\n children: \"seed\"\n }), \" is a starting example, \", _jsx(_components.code, {\n children: \"train\"\n }), \" is used for fitting, \", _jsx(_components.code, {\n children: \"holdout\"\n }), \" is kept back to test suggestions and never shown to a suggestion generator, and \", _jsx(_components.code, {\n children: \"burned\"\n }), \" 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 \", _jsx(_components.code, {\n children: \"holdout\"\n }), \" (or the content’s text belongs to a held-out group), \", _jsx(_components.code, {\n children: \"withheld\"\n }), \" is \", _jsx(_components.code, {\n children: \"holdout\"\n }), \" and \", _jsx(_components.code, {\n children: \"claims\"\n }), \", \", _jsx(_components.code, {\n children: \"reason\"\n }), \", \", _jsx(_components.code, {\n children: \"reason_pending\"\n }), \" and \", _jsx(_components.code, {\n children: \"unsure\"\n }), \" 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 \", _jsx(_components.code, {\n children: \"unassigned\"\n }), \". \", _jsx(_components.code, {\n children: \"withdrawn_at\"\n }), \" marks a claimless withdrawal of the chain; ancestors never revive. On a spot check, \", _jsx(_components.code, {\n children: \"after_reveal\"\n }), \" is false on the reviewer’s blind answer and true on a later change of it; it is left out while \", _jsx(_components.code, {\n children: \"withheld\"\n }), \" is set. \", _jsx(_components.code, {\n children: \"reason_pending\"\n }), \" on a superseded submission means its reason was never added before the answer was replaced: read the chain head. \", _jsx(_components.code, {\n children: \"supersedes\"\n }), \" and \", _jsx(_components.code, {\n children: \"superseded_by\"\n }), \" 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.\"]\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":"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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getFeedback","tags":["feedback"],"security":["88e06e7c-55ea-4249-bb5f-c3ef361d81e1","6c2d7731-929a-4c4a-bd2e-5984bb245445"],"summary":"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.","parameters":["df9a4e7d-35c3-44c5-8d8c-5e7143f3f39c"],"responses":{"200":"732df9e3-d419-45cf-8965-b126e940e21e","400":"9a6ba2ca-2bf0-43f7-b772-fbe8b28fc7c9","401":"0411ba65-0f6a-43ec-b169-8ebfeed48e0e","403":"c230a605-4645-401c-bed9-d0ee801eb0f3","404":"95000436-865d-461c-be2d-a6b5093f3653","429":"451948dc-c855-4e5c-9e10-90333613dabf","503":"a29c2ca0-c973-41cd-afe5-e8aa9b464406"},"method":"get","type":"path","servers":["9e61324b-4cc4-430d-a8d9-fa0221e50db5"],"path":"/v1/feedback/{feedback_id}","baseUrlOptions":["https://api.moonbounce.ai"],"title":"Get a feedback submission as stored","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"df9a4e7d-35c3-44c5-8d8c-5e7143f3f39c":{"schema":{"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":"","typeLabel":"string"},"required":true,"name":"feedback_id","in":"path"}},"responses":{"732df9e3-d419-45cf-8965-b126e940e21e":{"description":"The submission","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>"},"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":"id","typeLabel":"string"},"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","isRequired":true,"uniqueKey":"decision_id","typeLabel":"string"},"evaluation_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":"evaluation_id","typeLabel":"string"},"item_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"item_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"item_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"item_id","typeLabel":"string | null"},"resolved_from_item":{"type":"boolean","description":"True when the submission named an item and the server resolved it to this evaluation.","isRequired":true,"uniqueKey":"resolved_from_item","typeLabel":"boolean"},"source":{"type":"string","enum":["app_native","app_resolution","reviewer","owner","import","synthetic_review"],"isRequired":true,"uniqueKey":"source","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","enum":["slack","web","api","mcp","import"],"description":"The surface the submission came through, stamped by the server.","isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"actor":{"type":"string","description":"Who submitted it, as recorded (an `ext:` prefix marks an actor your key named).","isRequired":true,"uniqueKey":"actor","typeLabel":"string"},"claim_count":{"type":"integer","minimum":0,"description":"How many claims the submission holds.","isRequired":true,"uniqueKey":"claim_count","typeLabel":"integer"},"split":{"oneOf":[{"type":"string","enum":["seed","train","holdout","burned",null],"description":"Which side of the training line this item's group is on: `seed` (a starting example, used for fitting), `train` (used for fitting), `holdout` (kept back to test suggestions, never shown to a suggestion generator) 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). Null when the item has no group yet.","isRequired":true,"uniqueKey":"split.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["seed","train","holdout","burned",null],"description":"Which side of the training line this item's group is on: `seed` (a starting example, used for fitting), `train` (used for fitting), `holdout` (kept back to test suggestions, never shown to a suggestion generator) 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). Null when the item has no group yet.","isRequired":true,"uniqueKey":"split.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"split","typeLabel":"enum\u003cstring> | null"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"reason":{"type":"string","description":"Why, as sent. Left out while `withheld` is set.","uniqueKey":"reason","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. Left out while `withheld` is set.","uniqueKey":"reason_pending","typeLabel":"boolean"},"unsure":{"type":"boolean","description":"Left out while `withheld` is set.","uniqueKey":"unsure","typeLabel":"boolean"},"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":"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, withdrawal events and withheld rows.","uniqueKey":"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":"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":"superseded_by","typeLabel":"string"},"claims":{"type":"array","items":{"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":"claims.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"boolean","description":"Whether the spec's target statement is true of this item.","isRequired":true,"uniqueKey":"claims.items.[INDEX].oneOf.0.value","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].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":"claims.items.[INDEX].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":"claims.items.[INDEX].oneOf.1.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].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":"claims.items.[INDEX].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":"claims.items.[INDEX].oneOf.2.value","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].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":"claims.items.[INDEX].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":"claims.items.[INDEX].oneOf.3.feature","typeLabel":"string"},"value":{"type":"boolean","description":"What the feature's answer should have been.","isRequired":true,"uniqueKey":"claims.items.[INDEX].oneOf.3.value","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].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":"claims.items.[INDEX].oneOf.4.kind","typeLabel":"enum\u003cstring>"},"problem":{"type":"string","enum":["truncated","wrong_language","bad_extraction","unreadable","other"],"isRequired":true,"uniqueKey":"claims.items.[INDEX].oneOf.4.problem","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].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":"claims.items.[INDEX].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":"claims.items.[INDEX].oneOf.5.value","typeLabel":"string"},"logic_version":{"type":"string","maxLength":128,"description":"Which version of your own logic acted.","uniqueKey":"claims.items.[INDEX].oneOf.5.logic_version","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"claims.items.[INDEX].oneOf.5","typeLabel":"object"}],"uniqueKey":"claims.items.[INDEX]","typeLabel":"object"},"description":"The claims, in the order and shape they were sent. Left out while `withheld` is set.","uniqueKey":"claims","typeLabel":"object[]"},"withheld":{"type":"string","enum":["holdout","unassigned"],"description":"Set when the judgment (claims, reason, reason_pending, unsure) is not returned, even to its author, by the same rules as the feedback export. `holdout`: the item's group is held out, or the content's text belongs to a held-out group; the judgment is kept back to test suggestions and is returned once the group is burned. `unassigned`: the item has no split yet.","uniqueKey":"withheld","typeLabel":"enum\u003cstring>"}},"required":["environment","id","decision_id","evaluation_id","item_id","resolved_from_item","source","channel","actor","claim_count","split","created_at"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"environment":"production","id":"\u003cstring>","decision_id":"\u003cstring>","evaluation_id":"\u003cstring>","item_id":"\u003cstring>","resolved_from_item":true,"source":"app_native","channel":"slack","actor":"\u003cstring>","claim_count":1,"split":"seed","created_at":"2023-11-07T05:31:56Z","reason":"\u003cstring>","reason_pending":true,"unsure":true,"withdrawn_at":"2023-11-07T05:31:56Z","after_reveal":true,"supersedes":"\u003cstring>","superseded_by":"\u003cstring>","claims":[{"kind":"target","value":true}],"withheld":"holdout"}}},"exampleType":"generated"}},"exampleType":"generated"},"9a6ba2ca-2bf0-43f7-b772-fbe8b28fc7c9":{"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"},"0411ba65-0f6a-43ec-b169-8ebfeed48e0e":{"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"},"c230a605-4645-401c-bed9-d0ee801eb0f3":{"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"},"95000436-865d-461c-be2d-a6b5093f3653":{"description":"Not found, or not in this key's organization and environment","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"},"451948dc-c855-4e5c-9e10-90333613dabf":{"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"},"a29c2ca0-c973-41cd-afe5-e8aa9b464406":{"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":{"88e06e7c-55ea-4249-bb5f-c3ef361d81e1":{"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:feedback"],"schemeName":"bearerAuth"}},"6c2d7731-929a-4c4a-bd2e-5984bb245445":{"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:feedback"],"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"},{"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":"Get a feedback submission as stored - Moonbounce Decisions API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T20:55:03.955Z","originalFileLocation":"api-reference/feedback/get-a-feedback-submission-as-stored.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=\"Reads back any feedback submission in the key\u0026#x27;s environment: one from POST /v1/feedback, a seed example\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;s or environment\u0026#x27;s submission, or one whose evaluation was deleted.\">\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=\"Get a feedback submission as stored - Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reads back any feedback submission in the key\u0026#x27;s environment: one from POST /v1/feedback, a seed example\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;s or environment\u0026#x27;s submission, or one whose evaluation was deleted.\">\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/get-a-feedback-submission-as-stored\">\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=Get+a+feedback+submission+as+stored\u0026amp;description=Reads+back+any+feedback+submission+in+the+key%27s+environment%3A+one+from+%60POST+%2Fv1%2Ffeedback%60%2C+a+seed+example%27s+from+%60POST+%2Fv1%2Fdecisions%2F%7Bdecision_id%7D%2Fseeds%60%2C+or+a+\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=6b6329e5e8a4bcbe5ec9f7118ee03c6e1b0045df5e7bbfff8cb1cb0b761523dc\">\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=\"Get a feedback submission as stored - Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reads back any feedback submission in the key\u0026#x27;s environment: one from POST /v1/feedback, a seed example\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;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\u0026#x27;s or environment\u0026#x27;s submission, or one whose evaluation was deleted.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moonbounce.mintlify.app/_mintlify/api/og/v2?division=feedback\u0026amp;title=Get+a+feedback+submission+as+stored\u0026amp;description=Reads+back+any+feedback+submission+in+the+key%27s+environment%3A+one+from+%60POST+%2Fv1%2Ffeedback%60%2C+a+seed+example%27s+from+%60POST+%2Fv1%2Fdecisions%2F%7Bdecision_id%7D%2Fseeds%60%2C+or+a+\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=6b6329e5e8a4bcbe5ec9f7118ee03c6e1b0045df5e7bbfff8cb1cb0b761523dc\">\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/get-a-feedback-submission-as-stored\">\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/get-a-feedback-submission-as-stored.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/get-a-feedback-submission-as-stored#webpage\",\"url\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored\",\"name\":\"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.\",\"dateModified\":\"2026-11-02T20:55:03.955Z\",\"isPartOf\":{\"@id\":\"https://moonbounce.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored#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\":\"Get a feedback submission as stored\",\"item\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored#apireference\",\"headline\":\"Get a feedback submission as stored\",\"name\":\"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.\",\"url\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored\",\"mainEntityOfPage\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/feedback/get-a-feedback-submission-as-stored#webpage\"},\"dateModified\":\"2026-11-02T20:55:03.955Z\",\"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","description":"Say what the right answer was. The sources that count toward an evaluation's consensus, which previews and suggestions learn from, are `owner` (through this route), reviewers answering through the review routes (the Review app), and seed examples; `app_native` and `app_resolution` provide supporting feedback only. Use `source: \"owner\"` for your own judgment as the decision's owner: its outcome, target or verdict claim decides the consensus; feature claims alone decide nothing. All owner feedback through this route is the decision owner's single voice, whoever sent it (the latest owner submission with an outcome, target or verdict claim decides, replacing earlier ones); agreement between people is only kept for reviewers on the review routes. Use `app_native` or `app_resolution` for your app's own feedback (a user approved or reverted the outcome, an appeal settled it): they never decide a consensus, but the first feedback on an item's group, from any source, fixes its split for good (native feedback sent before your review keeps that item out of the holdout), their reasons can reach the suggestion generator, and their `input_broken` claims set the evaluation aside. See `source`. Records claims (target, outcome, verdict, feature, input_broken, action) about an evaluation in the key's environment, or about an item's latest primary evaluation. Claims are checked against that evaluation (400 with `param`): at most one outcome, target and verdict claim and one claim per feature, an outcome and target that agree, and verdicts only on primary evaluations that decided an outcome (shown, and not abstained). `supersedes` must name a submission by the same actor on the same evaluation that nothing has superseded yet (409). `owner` feedback cannot name an `actor` (403). Owner feedback, and superseding an owner submission, need the `decisions:develop` scope (403 INSUFFICIENT_SCOPE); integration sources need `decisions:feedback`. Read a submission back with `GET /v1/feedback/{feedback_id}`. A replay with the same Idempotency-Key returns the first result with the Idempotent-Replayed header.","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","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","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"},{"title":"Seed a decision with labeled examples","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":"Get a feedback submission as stored - 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"]}