Engine and model cost for a decision, per evaluation and in total
Engine cost of one decision’s evaluations and previews over a window; reads only. What the decision’s evaluations cost over a window, for the key’s organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor’s published price, plus an estimate for calls we couldn’t price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).
GET
/
v1
/
decisions
/
{decision_id}
/
usage
Engine and model cost for a decision, per evaluation and in total
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.
One group per engine profile and assignment mode, ordered by both. Spend whose evaluation is gone is grouped under unknown, as is dry-run spend, which has no evaluation.
Stored preview runs in the window (mb test, previews, and the one preview each generated suggestion runs), which write no evaluations. Generation's exploratory replays and model call are in other_spend, as is a preview run that stored nothing (uncommitted).
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/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total","slug":"/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total","pageMetadata":{"title":"Engine and model cost for a decision, per evaluation and in total","description":"Engine cost of one decision's evaluations and previews over a window; reads only. What the decision's evaluations cost over a window, for the key's organization and environment. Amounts are US dollars in micros (`usd_micros`: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor's published price, plus an estimate for calls we couldn't price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as `estimated_usd_micros`; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in `other_spend`, outside the per-evaluation numbers, and `total` adds everything recorded. Per-request `cost` on evaluate and seeds is reported cost only. `since` (inclusive) and `until` (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).","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","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: [\"Engine cost of one decision’s evaluations and previews over a window; reads only. What the decision’s evaluations cost over a window, for the key’s organization and environment. Amounts are US dollars in micros (\", _jsx(_components.code, {\n children: \"usd_micros\"\n }), \": millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor’s published price, plus an estimate for calls we couldn’t price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as \", _jsx(_components.code, {\n children: \"estimated_usd_micros\"\n }), \"; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in \", _jsx(_components.code, {\n children: \"other_spend\"\n }), \", outside the per-evaluation numbers, and \", _jsx(_components.code, {\n children: \"total\"\n }), \" adds everything recorded. Per-request \", _jsx(_components.code, {\n children: \"cost\"\n }), \" on evaluate and seeds is reported cost only. \", _jsx(_components.code, {\n children: \"since\"\n }), \" (inclusive) and \", _jsx(_components.code, {\n children: \"until\"\n }), \" (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. 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":"Engine and model cost for a decision, per evaluation and in total","description":"Engine cost of one decision's evaluations and previews over a window; reads only. What the decision's evaluations cost over a window, for the key's organization and environment. Amounts are US dollars in micros (`usd_micros`: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor's published price, plus an estimate for calls we couldn't price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as `estimated_usd_micros`; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in `other_spend`, outside the per-evaluation numbers, and `total` adds everything recorded. Per-request `cost` on evaluate and seeds is reported cost only. `since` (inclusive) and `until` (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).","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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getUsage","tags":["usage"],"security":["96098dfa-5cb9-4b9c-a61b-0e6d0711adc8"],"summary":"Engine and model cost for a decision, per evaluation and in total","description":"Engine cost of one decision's evaluations and previews over a window; reads only. What the decision's evaluations cost over a window, for the key's organization and environment. Amounts are US dollars in micros (`usd_micros`: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor's published price, plus an estimate for calls we couldn't price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as `estimated_usd_micros`; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in `other_spend`, outside the per-evaluation numbers, and `total` adds everything recorded. Per-request `cost` on evaluate and seeds is reported cost only. `since` (inclusive) and `until` (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).","parameters":["03834441-387a-47f6-8838-b99fd9bcb325","d1e32373-bcb9-4b7b-9861-343bad146fea","97fa3389-4580-46f9-8f16-331015179981"],"responses":{"200":"9fd0e809-4b51-4576-9ea5-b27273a0705e","400":"a88c1946-572d-4cb7-b102-8891580382dd","401":"0ef0fa92-43a5-4d17-9c31-96256197324b","403":"539791ba-cb28-49a9-8b21-aa43ca3ba1f8","429":"dfcb9153-c3bf-4706-8143-00d88d070622","503":"acae6f11-72d7-43a0-8cb6-0d825ca33b0a"},"method":"get","type":"path","servers":["9e61324b-4cc4-430d-a8d9-fa0221e50db5"],"path":"/v1/decisions/{decision_id}/usage","baseUrlOptions":["https://api.moonbounce.ai"],"title":"Engine and model cost for a decision, per evaluation and in total","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"03834441-387a-47f6-8838-b99fd9bcb325":{"schema":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"decision_id","in":"path"},"d1e32373-bcb9-4b7b-9861-343bad146fea":{"schema":{"type":"string","format":"date-time","description":"Start of the window, inclusive. Default: `until` - 30 days.","isRequired":false,"uniqueKey":"","typeLabel":"string\u003cdate-time>"},"required":false,"description":"Start of the window, inclusive. Default: `until` - 30 days.","name":"since","in":"query"},"97fa3389-4580-46f9-8f16-331015179981":{"schema":{"type":"string","format":"date-time","description":"End of the window, exclusive. Default: now.","isRequired":false,"uniqueKey":"","typeLabel":"string\u003cdate-time>"},"required":false,"description":"End of the window, exclusive. Default: now.","name":"until","in":"query"}},"responses":{"9fd0e809-4b51-4576-9ea5-b27273a0705e":{"description":"The decision's cost report","content":{"application/json":{"schema":{"type":"object","properties":{"decision_id":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,127}$","isRequired":true,"uniqueKey":"decision_id","typeLabel":"string"},"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>"},"window":{"type":"object","properties":{"since":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"window.since","typeLabel":"string\u003cdate-time>"},"until":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"window.until","typeLabel":"string\u003cdate-time>"}},"required":["since","until"],"isRequired":true,"uniqueKey":"window","typeLabel":"object"},"evaluations":{"type":"array","items":{"type":"object","properties":{"engine_profile":{"type":"string","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].engine_profile","typeLabel":"string"},"assignment_mode":{"type":"string","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].assignment_mode","typeLabel":"string"},"evaluations":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].evaluations","typeLabel":"integer"},"uncached":{"type":"integer","minimum":0,"description":"Evaluations that called an engine, answered or not; the rest were answered from the feature cache.","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].uncached","typeLabel":"integer"},"engine_calls":{"type":"integer","minimum":0,"description":"Upstream calls made, including ones answered with an error and ones abandoned at the deadline; `engines[]` counts every attempt.","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].engine_calls","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].output_tokens","typeLabel":"integer"},"usd_micros":{"type":"object","properties":{"total":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].usd_micros.total","typeLabel":"number"},"mean":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].usd_micros.mean","typeLabel":"number"},"p50":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].usd_micros.p50","typeLabel":"number"},"p95":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"evaluations.items.[INDEX].usd_micros.p95","typeLabel":"number"}},"required":["total","mean","p50","p95"],"description":"Per evaluation, in millionths of a US dollar: reported cost plus the estimate for its calls that reported no usage.","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].usd_micros","typeLabel":"object"},"estimated_usd_micros":{"type":"number","minimum":0,"description":"The estimated part of `usd_micros.total`: calls that may have been billed but reported no usage.","isRequired":true,"uniqueKey":"evaluations.items.[INDEX].estimated_usd_micros","typeLabel":"number"}},"required":["engine_profile","assignment_mode","evaluations","uncached","engine_calls","input_tokens","output_tokens","usd_micros","estimated_usd_micros"],"uniqueKey":"evaluations.items.[INDEX]","typeLabel":"object"},"description":"One group per engine profile and assignment mode, ordered by both. Spend whose evaluation is gone is grouped under `unknown`, as is dry-run spend, which has no evaluation.","isRequired":true,"uniqueKey":"evaluations","typeLabel":"object[]"},"engines":{"type":"array","items":{"type":"object","properties":{"engine":{"type":"string","isRequired":true,"uniqueKey":"engines.items.[INDEX].engine","typeLabel":"string"},"resolved_model":{"type":"string","isRequired":true,"uniqueKey":"engines.items.[INDEX].resolved_model","typeLabel":"string"},"adapter":{"type":"string","isRequired":true,"uniqueKey":"engines.items.[INDEX].adapter","typeLabel":"string"},"calls":{"type":"integer","minimum":0,"description":"Call attempts, retries and failures included.","isRequired":true,"uniqueKey":"engines.items.[INDEX].calls","typeLabel":"integer"},"failed":{"type":"integer","minimum":0,"description":"Attempts whose status is not `ok`.","isRequired":true,"uniqueKey":"engines.items.[INDEX].failed","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"engines.items.[INDEX].input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"engines.items.[INDEX].output_tokens","typeLabel":"integer"},"usd_micros":{"type":"number","minimum":0,"description":"Reported plus estimated.","isRequired":true,"uniqueKey":"engines.items.[INDEX].usd_micros","typeLabel":"number"},"estimated_usd_micros":{"type":"number","minimum":0,"description":"The estimated part: calls that may have been billed but reported no usage.","isRequired":true,"uniqueKey":"engines.items.[INDEX].estimated_usd_micros","typeLabel":"number"}},"required":["engine","resolved_model","adapter","calls","failed","input_tokens","output_tokens","usd_micros","estimated_usd_micros"],"uniqueKey":"engines.items.[INDEX]","typeLabel":"object"},"description":"One group per engine, resolved model and adapter, from the per-call traces. Evaluations stored before traces existed and dry runs contribute none.","isRequired":true,"uniqueKey":"engines","typeLabel":"object[]"},"other_spend":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","description":"`uncommitted`: evaluations, dry runs, seed examples and preview runs whose engines ran but which never committed (a failed evaluate, a refused seed batch, the loser of an idempotency race, a preview that failed). `generation`: suggestion generation's own replays and model call (its proposal preview is in `previews`). New kinds may appear.","isRequired":true,"uniqueKey":"other_spend.items.[INDEX].kind","typeLabel":"string"},"attempts":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].attempts","typeLabel":"integer"},"engine_calls":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].engine_calls","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].input_tokens","typeLabel":"integer"},"output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].output_tokens","typeLabel":"integer"},"model_input_tokens":{"type":"integer","minimum":0,"description":"The suggestion writer's language model tokens, apart from engine tokens.","isRequired":true,"uniqueKey":"other_spend.items.[INDEX].model_input_tokens","typeLabel":"integer"},"model_output_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].model_output_tokens","typeLabel":"integer"},"usd_micros":{"type":"number","minimum":0,"description":"Reported plus estimated.","isRequired":true,"uniqueKey":"other_spend.items.[INDEX].usd_micros","typeLabel":"number"},"estimated_usd_micros":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"other_spend.items.[INDEX].estimated_usd_micros","typeLabel":"number"}},"required":["kind","attempts","engine_calls","input_tokens","output_tokens","model_input_tokens","model_output_tokens","usd_micros","estimated_usd_micros"],"uniqueKey":"other_spend.items.[INDEX]","typeLabel":"object"},"description":"Spend that is not an evaluation, one group per kind, kept out of the per-evaluation numbers.","isRequired":true,"uniqueKey":"other_spend","typeLabel":"object[]"},"total":{"type":"object","properties":{"usd_micros":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"total.usd_micros","typeLabel":"number"},"estimated_usd_micros":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"total.estimated_usd_micros","typeLabel":"number"}},"required":["usd_micros","estimated_usd_micros"],"description":"Everything recorded above: evaluations, other spend and previews.","isRequired":true,"uniqueKey":"total","typeLabel":"object"},"previews":{"type":"object","properties":{"runs":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"previews.runs","typeLabel":"integer"},"features_run":{"type":"integer","minimum":0,"description":"Feature answers the runs computed (not cached); one engine call can answer several.","isRequired":true,"uniqueKey":"previews.features_run","typeLabel":"integer"},"input_tokens":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"previews.input_tokens","typeLabel":"integer"},"usd_micros":{"type":"number","minimum":0,"description":"Reported plus estimated.","isRequired":true,"uniqueKey":"previews.usd_micros","typeLabel":"number"},"estimated_usd_micros":{"type":"number","minimum":0,"isRequired":true,"uniqueKey":"previews.estimated_usd_micros","typeLabel":"number"}},"required":["runs","features_run","input_tokens","usd_micros","estimated_usd_micros"],"description":"Stored preview runs in the window (`mb test`, previews, and the one preview each generated suggestion runs), which write no evaluations. Generation's exploratory replays and model call are in `other_spend`, as is a preview run that stored nothing (`uncommitted`).","isRequired":true,"uniqueKey":"previews","typeLabel":"object"}},"required":["decision_id","environment","window","evaluations","engines","other_spend","total","previews"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"decision_id":"\u003cstring>","environment":"production","window":{"since":"2023-11-07T05:31:56Z","until":"2023-11-07T05:31:56Z"},"evaluations":[{"engine_profile":"\u003cstring>","assignment_mode":"\u003cstring>","evaluations":1,"uncached":1,"engine_calls":1,"input_tokens":1,"output_tokens":1,"usd_micros":{"total":1,"mean":1,"p50":1,"p95":1},"estimated_usd_micros":1}],"engines":[{"engine":"\u003cstring>","resolved_model":"\u003cstring>","adapter":"\u003cstring>","calls":1,"failed":1,"input_tokens":1,"output_tokens":1,"usd_micros":1,"estimated_usd_micros":1}],"other_spend":[{"kind":"\u003cstring>","attempts":1,"engine_calls":1,"input_tokens":1,"output_tokens":1,"model_input_tokens":1,"model_output_tokens":1,"usd_micros":1,"estimated_usd_micros":1}],"total":{"usd_micros":1,"estimated_usd_micros":1},"previews":{"runs":1,"features_run":1,"input_tokens":1,"usd_micros":1,"estimated_usd_micros":1}}}},"exampleType":"generated"}},"exampleType":"generated"},"a88c1946-572d-4cb7-b102-8891580382dd":{"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"},"0ef0fa92-43a5-4d17-9c31-96256197324b":{"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"},"539791ba-cb28-49a9-8b21-aa43ca3ba1f8":{"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"},"dfcb9153-c3bf-4706-8143-00d88d070622":{"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"},"acae6f11-72d7-43a0-8cb6-0d825ca33b0a":{"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":{"96098dfa-5cb9-4b9c-a61b-0e6d0711adc8":{"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":[],"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":[],"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":"Engine and model cost for a decision, per evaluation and in total - Moonbounce Decisions API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T20:55:04.167Z","originalFileLocation":"api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total.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=\"Engine cost of one decision\u0026#x27;s evaluations and previews over a window; reads only. What the decision\u0026#x27;s evaluations cost over a window, for the key\u0026#x27;s organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor\u0026#x27;s published price, plus an estimate for calls we couldn\u0026#x27;t price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. 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=\"Engine and model cost for a decision, per evaluation and in total - Moonbounce Decisions API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Engine cost of one decision\u0026#x27;s evaluations and previews over a window; reads only. What the decision\u0026#x27;s evaluations cost over a window, for the key\u0026#x27;s organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor\u0026#x27;s published price, plus an estimate for calls we couldn\u0026#x27;t price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. 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/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total\">\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=usage\u0026amp;title=Engine+and+model+cost+for+a+decision%2C+per+evaluation+and+in+total\u0026amp;description=Engine+cost+of+one+decision%27s+evaluations+and+previews+over+a+window%3B+reads+only.+What+the+decision%27s+evaluations+cost+over+a+window%2C+for+the+key%27s+organization\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=f7503b1a6df1f8a9694352c18ca64ffccdcdeeab411bbb90ef3282dd236e100a\">\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=\"Engine and model cost for a decision, per evaluation and in total - Moonbounce Decisions API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Engine cost of one decision\u0026#x27;s evaluations and previews over a window; reads only. What the decision\u0026#x27;s evaluations cost over a window, for the key\u0026#x27;s organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor\u0026#x27;s published price, plus an estimate for calls we couldn\u0026#x27;t price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. 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=usage\u0026amp;title=Engine+and+model+cost+for+a+decision%2C+per+evaluation+and+in+total\u0026amp;description=Engine+cost+of+one+decision%27s+evaluations+and+previews+over+a+window%3B+reads+only.+What+the+decision%27s+evaluations+cost+over+a+window%2C+for+the+key%27s+organization\u0026amp;theme=6d67371419b6cc4f4d7d2b27\u0026amp;signature=f7503b1a6df1f8a9694352c18ca64ffccdcdeeab411bbb90ef3282dd236e100a\">\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/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total.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/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total#webpage\",\"url\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total\",\"name\":\"Engine and model cost for a decision, per evaluation and in total\",\"description\":\"Engine cost of one decision's evaluations and previews over a window; reads only. What the decision's evaluations cost over a window, for the key's organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor's published price, plus an estimate for calls we couldn't price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).\",\"dateModified\":\"2026-11-02T20:55:04.167Z\",\"isPartOf\":{\"@id\":\"https://moonbounce.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://moonbounce.mintlify.app/api-reference/health/health-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engine and model cost for a decision, per evaluation and in total\",\"item\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total#apireference\",\"headline\":\"Engine and model cost for a decision, per evaluation and in total\",\"name\":\"Engine and model cost for a decision, per evaluation and in total\",\"description\":\"Engine cost of one decision's evaluations and previews over a window; reads only. What the decision's evaluations cost over a window, for the key's organization and environment. Amounts are US dollars in micros (usd_micros: millionths of a dollar). Costs are what our engines reported, priced by each adapter from the vendor's published price, plus an estimate for calls we couldn't price from a vendor report (no usage reported, or a suggestion-writer model with no listed price), broken out as estimated_usd_micros; cache hits cost nothing. Evaluations that never committed and suggestion generation (its replays and model call) are in other_spend, outside the per-evaluation numbers, and total adds everything recorded. Per-request cost on evaluate and seeds is reported cost only. since (inclusive) and until (exclusive) are read to the millisecond and default to the last 30 days ending now; the window may span at most 366 days. A decision with no traffic in the window answers 200 with empty groups. The web session may not read it (403).\",\"url\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total\",\"mainEntityOfPage\":{\"@id\":\"https://moonbounce.mintlify.app/api-reference/usage/engine-and-model-cost-for-a-decision-per-evaluation-and-in-total#webpage\"},\"dateModified\":\"2026-11-02T20:55:04.167Z\",\"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","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","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","description":"Accepted suggestions with their evidence labels, review counts, spot-check agreement (on the version that last served production before the first acceptance vs on accepted candidates, by the version that served each production review) and the stop check: after `threshold` reviews with no suggestion beating the original on held-out cases, stop and rethink. Counts the key's environment only: a test key's reviews, random stratum and suggestions, with no accepted suggestions and so no spot check (acceptance is production's).","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","description":"Who is calling: the organization, environment (production or test), key id, actor and scopes of this API key, or of the sign-in when an agent connects over OAuth (then key_id is an oauth: id, not a revocable key). Reads nothing and spends nothing; call it first to learn which environment your calls will read and write.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/whoami","href":"/api-reference/keys/identify-the-calling-key-or-sign-in"}]}]}]}]},"basePath":"","title":"Engine and model cost for a decision, per evaluation and in total - 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"]}