The billing interval of the customer to be used for the subscription. If plan version is provided, the billing interval will be the same as the plan version. If plan slug is provided, the billing interval will be the default billing interval of the plan.
If provided, the system will intelligently pick the latest plan version for that slug and sign up the customer for it. If omitted with planVersionId, the default plan is used.
The configuration of the subscription items. This is required if your features are quantity based when the customer needs to set them. Pass as empty if you want the system to automatically set the units from the plan defaults.
Usage credit policy for the initial subscription phase. Uncapped allows postpaid usage without wallet reservation; capped uses a finite credit amount or derives one from finite usage limits.
Optional capped usage credit amount in the currency's minor unit. For USD/EUR, 10000 means 100.00. Leave null or omit to derive from finite usage limits when creditLinePolicy is capped.
Required range: -9007199254740991 <= x <= 9007199254740991
The unprice customer id generated by the system for this customer
Example:
"cus_1234567890"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Unprice Documentation","colors":{"primary":"#ab6400","light":"#ffc53d","dark":"#ffc53d"},"logo":{"light":"https://mintcdn.com/unprice/vXUWXLNyOcaxnjxH/logo/light.svg?fit=max\u0026auto=format\u0026n=vXUWXLNyOcaxnjxH\u0026q=85\u0026s=ce4a214a5ae95d854ad7e6767a821d25","dark":"https://mintcdn.com/unprice/vXUWXLNyOcaxnjxH/logo/dark.svg?fit=max\u0026auto=format\u0026n=vXUWXLNyOcaxnjxH\u0026q=85\u0026s=617e7d83cd1ffb1b6414f793eefa4683"},"favicon":"https://mintcdn.com/unprice/vXUWXLNyOcaxnjxH/favicon.svg?fit=max\u0026auto=format\u0026n=vXUWXLNyOcaxnjxH\u0026q=85\u0026s=9085d9c2380ef09b41e819234a4a858e","api":{"playground":{"display":"interactive"}},"navbar":{"links":[{"href":"mailto:seb@unprice.dev","label":"Support"},{"href":"https://unprice.dev/manifesto","label":"Manifesto"},{"href":"https://app.unprice.dev","label":"Dashboard"}]},"footer":{"socials":{"github":"https://github.com/jhonsfran1165/unprice"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"globe","href":"https://unprice.dev"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/unprice"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"unprice","hasAudioNarration":false,"actualSubdomain":"unprice","customDomains":["docs.unprice.dev"],"gitSource":{"type":"github","owner":"jhonsfran","repo":"unprice","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae9e628599afdae0f29e6de","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API Reference","count":53},{"language":"default","tag":"Endpoints","count":39},{"language":"default","tag":"SDKs","count":24},{"language":"default","tag":"TypeScript SDK","count":24},{"language":"default","tag":"Errors","count":23},{"language":"default","tag":"Guides","count":20},{"language":"default","tag":"budgets","count":10},{"language":"default","tag":"Budgets","count":7},{"language":"default","tag":"Introduction","count":6},{"language":"default","tag":"Features","count":6}]},"assistantConfig":{},"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/customers/sign-up","slug":"/api-reference/customers/sign-up","pageMetadata":{"title":"sign up","description":"Sign up a customer for a project","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/sign-up","href":"/api-reference/customers/sign-up","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Sign up a customer for a project\"\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":"sign up","description":"Sign up a customer for a project","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/sign-up","href":"/api-reference/customers/sign-up","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"customers.signUp","summary":"sign up","description":"Sign up a customer for a project","tags":["customers"],"x-unprice":{"audience":"public","category":"configuration","docs":{"expose":true},"sdk":{"path":["customers","signUp"]}},"requestBody":"ce04d9ce-da19-4997-bf16-6257ec1d63e2","responses":{"200":"51165cec-0d89-45e0-a290-a4104f197cd8","400":"f5efab99-60df-470c-adbf-58b9d83954ff","401":"a99ad68f-891d-4d04-bba0-070347cebdcb","403":"4c4343de-4559-4807-a5f8-b2e645c02e77","404":"08a8ce04-dbfd-49ec-a70d-0c8834718877","409":"f9185aa3-5bd6-4a86-bc08-d951070a4bc9","412":"6b5048cd-df5a-41ac-a006-b75ec11623df","413":"ce9bd97b-7b77-4d7a-b78b-93e4a51e99f8","429":"18768dee-a909-4007-93d7-96bce31a296e","500":"d04a6608-6108-4d86-a858-63bce36c47d0"},"method":"post","type":"path","servers":["2a1f5b6e-fcd9-4479-b8f0-d8e3524b9e6d","4f0ca25b-7a5f-420c-a0d1-fdd91868a1df","3a662e90-2597-4145-b465-c73b343b810b"],"security":["dd889c9d-c52d-49a3-b0ca-a11333122ffc"],"path":"/v1/customers/sign-up","baseUrlOptions":["https://api.unprice.dev","http://localhost:8787","https://preview-api.unprice.dev"],"title":"sign up","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"Body of the request","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"The name of the customer","example":"John Doe","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"email":{"type":"string","minLength":1,"format":"email","description":"The email of the customer","example":"test@example.com","isRequired":true,"uniqueKey":"email","typeLabel":"string\u003cemail>"},"successUrl":{"type":"string","format":"uri","description":"The success url if the customer signs up. This is the url after the signup process, normally your dashboard","example":"https://example.com/dashboard","isRequired":true,"uniqueKey":"successUrl","typeLabel":"string\u003curi>"},"cancelUrl":{"type":"string","format":"uri","description":"The cancel url if the customer cancels the signup. This is the url after the signup process, normally your login page","example":"https://example.com/login","isRequired":true,"uniqueKey":"cancelUrl","typeLabel":"string\u003curi>"},"timezone":{"type":"string","description":"The timezone of the customer, if passed null the system will use the project timezone","example":"UTC","uniqueKey":"timezone","typeLabel":"string"},"defaultCurrency":{"type":"string","enum":["USD","EUR"],"description":"The default currency of the customer, if passed null the system will use the project currency","example":"USD","uniqueKey":"defaultCurrency","typeLabel":"enum\u003cstring>"},"billingInterval":{"type":"string","enum":["month","year","week","day","minute","onetime"],"description":"The billing interval of the customer to be used for the subscription. If plan version is provided, the billing interval will be the same as the plan version. If plan slug is provided, the billing interval will be the default billing interval of the plan.","example":"month","uniqueKey":"billingInterval","typeLabel":"enum\u003cstring>"},"planSlug":{"type":"string","description":"If provided, the system will intelligently pick the latest plan version for that slug and sign up the customer for it. If omitted with planVersionId, the default plan is used.","example":"PRO","uniqueKey":"planSlug","typeLabel":"string"},"sessionId":{"type":"string","description":"The session id of the customer. This is used to track conversion from pricing pages","example":"sess_1234567890","uniqueKey":"sessionId","typeLabel":"string"},"planVersionId":{"type":"string","description":"The plan version the customer is signing up for","example":"pv_1234567890","uniqueKey":"planVersionId","typeLabel":"string"},"config":{"type":"array","items":{"type":"object","properties":{"featurePlanId":{"type":"string","description":"The feature plan id of the item","example":"feature_plan_123","isRequired":true,"uniqueKey":"config.items.[INDEX].featurePlanId","typeLabel":"string"},"featureSlug":{"type":"string","description":"The feature slug of the item","example":"feature_slug_123","isRequired":true,"uniqueKey":"config.items.[INDEX].featureSlug","typeLabel":"string"},"isUsage":{"type":"boolean","description":"if the item is a usage item","example":true,"uniqueKey":"config.items.[INDEX].isUsage","typeLabel":"boolean"},"units":{"type":"number","minimum":1,"description":"units of the feature the user is subscribed to","example":100,"uniqueKey":"config.items.[INDEX].units","typeLabel":"number"},"min":{"oneOf":[{"type":"number","description":"minimum units of the feature the user is subscribed to","example":100,"uniqueKey":"config.items.[INDEX].min.oneOf.0","typeLabel":"number"},{"type":"null","description":"minimum units of the feature the user is subscribed to","example":100,"uniqueKey":"config.items.[INDEX].min.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.items.[INDEX].min","typeLabel":"number | null"},"limit":{"oneOf":[{"type":"number","description":"limit of the feature the user is subscribed to","example":100,"uniqueKey":"config.items.[INDEX].limit.oneOf.0","typeLabel":"number"},{"type":"null","description":"limit of the feature the user is subscribed to","example":100,"uniqueKey":"config.items.[INDEX].limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.items.[INDEX].limit","typeLabel":"number | null"}},"required":["featurePlanId","featureSlug"],"uniqueKey":"config.items.[INDEX]","typeLabel":"object"},"description":"The configuration of the subscription items. This is required if your features are quantity based when the customer needs to set them. Pass as empty if you want the system to automatically set the units from the plan defaults.","example":[{"featurePlanId":"feature_plan_123","featureSlug":"feature_slug_123","isUsage":true,"units":100}],"uniqueKey":"config","typeLabel":"object[]"},"creditLinePolicy":{"type":"string","enum":["capped","uncapped"],"default":"uncapped","description":"Usage credit policy for the initial subscription phase. Uncapped allows postpaid usage without wallet reservation; capped uses a finite credit amount or derives one from finite usage limits.","example":"uncapped","uniqueKey":"creditLinePolicy","typeLabel":"enum\u003cstring>"},"creditLineAmountMinor":{"oneOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Optional capped usage credit amount in the currency's minor unit. For USD/EUR, 10000 means 100.00. Leave null or omit to derive from finite usage limits when creditLinePolicy is capped.","example":10000,"uniqueKey":"creditLineAmountMinor.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Optional capped usage credit amount in the currency's minor unit. For USD/EUR, 10000 means 100.00. Leave null or omit to derive from finite usage limits when creditLinePolicy is capped.","example":10000,"uniqueKey":"creditLineAmountMinor.oneOf.1","typeLabel":"null"}],"uniqueKey":"creditLineAmountMinor","typeLabel":"integer | null"},"externalId":{"type":"string","description":"The external id you want to associate with the customer. Could be the id of the user in your database","example":"1234567890","uniqueKey":"externalId","typeLabel":"string"},"metadata":{"type":"object","properties":{"country":{"type":"string","uniqueKey":"metadata.country","typeLabel":"string"},"region":{"type":"string","uniqueKey":"metadata.region","typeLabel":"string"},"city":{"type":"string","uniqueKey":"metadata.city","typeLabel":"string"},"usageLimitReached":{"type":"boolean","uniqueKey":"metadata.usageLimitReached","typeLabel":"boolean"}},"description":"The metadata of the customer, very important to pass geolocation data if you want to segment later on","example":{"country":"US","region":"CA","city":"San Francisco"},"uniqueKey":"metadata","typeLabel":"object"}},"required":["name","email","successUrl","cancelUrl"],"description":"The customer sign up request","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"John Doe","email":"test@example.com","successUrl":"https://example.com/dashboard","cancelUrl":"https://example.com/login","timezone":"UTC","defaultCurrency":"USD","billingInterval":"month","planSlug":"PRO","sessionId":"sess_1234567890","planVersionId":"pv_1234567890","config":[{"featurePlanId":"feature_plan_123","featureSlug":"feature_slug_123","isUsage":true,"units":100}],"creditLinePolicy":"uncapped","creditLineAmountMinor":10000,"externalId":"1234567890","metadata":{"country":"US","region":"CA","city":"San Francisco"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"51165cec-0d89-45e0-a290-a4104f197cd8":{"description":"The result of the customer sign up","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the signup was successful","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"url":{"type":"string","format":"uri","description":"The url to redirect the customer to, either to the success or cancel url","example":"https://example.com/dashboard","isRequired":true,"uniqueKey":"url","typeLabel":"string\u003curi>"},"customerId":{"type":"string","description":"The unprice customer id generated by the system for this customer","example":"cus_1234567890","isRequired":true,"uniqueKey":"customerId","typeLabel":"string"}},"required":["success","url","customerId"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"url":"https://example.com/dashboard","customerId":"cus_1234567890"}}},"exampleType":"generated"}},"exampleType":"generated"},"f5efab99-60df-470c-adbf-58b9d83954ff":{"description":"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST"],"description":"A machine readable error code.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/BAD_REQUEST","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"BAD_REQUEST","docs":"https://docs.unprice.dev/api-reference/errors/code/BAD_REQUEST","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"a99ad68f-891d-4d04-bba0-070347cebdcb":{"description":"Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["UNAUTHORIZED"],"description":"A machine readable error code.","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/UNAUTHORIZED","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","docs":"https://docs.unprice.dev/api-reference/errors/code/UNAUTHORIZED","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"4c4343de-4559-4807-a5f8-b2e645c02e77":{"description":"The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["FORBIDDEN"],"description":"A machine readable error code.","example":"FORBIDDEN","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/FORBIDDEN","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"FORBIDDEN","docs":"https://docs.unprice.dev/api-reference/errors/code/FORBIDDEN","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"08a8ce04-dbfd-49ec-a70d-0c8834718877":{"description":"The server cannot find the requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist. Servers may also send this response instead of 403 Forbidden to hide the existence of a resource from an unauthorized client. This response code is probably the most well known due to its frequent occurrence on the web.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["NOT_FOUND"],"description":"A machine readable error code.","example":"NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/NOT_FOUND","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"NOT_FOUND","docs":"https://docs.unprice.dev/api-reference/errors/code/NOT_FOUND","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"f9185aa3-5bd6-4a86-bc08-d951070a4bc9":{"description":"This response is sent when a request conflicts with the current state of the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["CONFLICT"],"description":"A machine readable error code.","example":"CONFLICT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/CONFLICT","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"CONFLICT","docs":"https://docs.unprice.dev/api-reference/errors/code/CONFLICT","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"6b5048cd-df5a-41ac-a006-b75ec11623df":{"description":"The requested operation cannot be completed because certain conditions were not met. This typically occurs when a required resource state or version check fails.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"],"description":"A machine readable error code.","example":"PRECONDITION_FAILED","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/PRECONDITION_FAILED","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"PRECONDITION_FAILED","docs":"https://docs.unprice.dev/api-reference/errors/code/PRECONDITION_FAILED","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"ce9bd97b-7b77-4d7a-b78b-93e4a51e99f8":{"description":"The request payload is larger than the server is willing to process.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["PAYLOAD_TOO_LARGE"],"description":"A machine readable error code.","example":"PAYLOAD_TOO_LARGE","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/PAYLOAD_TOO_LARGE","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"PAYLOAD_TOO_LARGE","docs":"https://docs.unprice.dev/api-reference/errors/code/PAYLOAD_TOO_LARGE","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"18768dee-a909-4007-93d7-96bce31a296e":{"description":"The user has sent too many requests in a given amount of time (\"rate limiting\")","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS"],"description":"A machine readable error code.","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"TOO_MANY_REQUESTS","docs":"https://docs.unprice.dev/api-reference/errors/code/TOO_MANY_REQUESTS","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d04a6608-6108-4d86-a858-63bce36c47d0":{"description":"The server has encountered a situation it does not know how to handle.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"],"description":"A machine readable error code.","example":"INTERNAL_SERVER_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"docs":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.unprice.dev/api-reference/errors/code/INTERNAL_SERVER_ERROR","isRequired":true,"uniqueKey":"error.docs","typeLabel":"string"},"message":{"type":"string","description":"A human readable explanation of what went wrong","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"requestId":{"type":"string","description":"Please always include the requestId in your error report","example":"req_1234","isRequired":true,"uniqueKey":"error.requestId","typeLabel":"string"},"details":{"oneOf":[{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["invalid_config","slug_conflict","unresolved_reference"],"description":"What kind of failure this is","example":"invalid_config","isRequired":true,"uniqueKey":"error.details.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"JSON path into the submitted document","example":"config.plans[0].version.features[1].featureSlug","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX].message","typeLabel":"string"}},"required":["path","message"],"uniqueKey":"error.details.oneOf.0.issues.items.[INDEX]","typeLabel":"object"},"description":"Per-location detail, when the failure has locations","uniqueKey":"error.details.oneOf.0.issues","typeLabel":"object[]"}},"uniqueKey":"error.details.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","blocked","balance"],"properties":{"kind":{"type":"string","enum":["budget_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"blocked":{"type":"object","properties":{"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.limitId","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.window","typeLabel":"enum\u003cstring>"},"remaining":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remaining","typeLabel":"string"},"held":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.held","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.resetsAt","typeLabel":"integer | null"},"remedy":{"type":"string","enum":["release_holds","wait_for_reset","raise_limit"],"description":"release_holds: releasing holds makes the request fit all failing limits. wait_for_reset: resetting the failing windows makes the request fit with holds unchanged. raise_limit: neither action alone is sufficient; one or more limits need a change.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked.remedy","typeLabel":"enum\u003cstring>"}},"required":["limitId","window","remaining","held","resetsAt","remedy"],"description":"A failing hard limit smaller than the request, or otherwise the one that resets last. Other limits can also block the request. The remedy considers all failing limits.","isRequired":true,"uniqueKey":"error.details.oneOf.1.blocked","typeLabel":"object"},"balance":{"type":"object","properties":{"remaining":{"oneOf":[{"type":"string","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.0","typeLabel":"string"},{"type":"null","description":"The least remaining over hard limits; null when the budget has no hard limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.remaining","typeLabel":"string | null"},"held":{"type":"string","description":"The sum of open holds and the unreported part of open leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.held","typeLabel":"string"},"limits":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].id","typeLabel":"string"},"window":{"type":"string","enum":["hour","day","week","month","never"],"description":"The period a limit counts over. hour, day, week (ISO, from Monday), and month are UTC calendar periods unless anchored; never counts for the life of the budget.","example":"month","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].window","typeLabel":"enum\u003cstring>"},"enforce":{"type":"string","enum":["hard","soft"],"description":"hard denies authorize and charge that would exceed the limit; soft never denies. Either kind is reported in `crossed` once usage passes it, and only a record can pass a hard limit.","example":"hard","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].enforce","typeLabel":"enum\u003cstring>"},"amount":{"type":"string","description":"The limit","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].amount","typeLabel":"string"},"consumed":{"type":"string","description":"Used in the current period","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].consumed","typeLabel":"string"},"held":{"type":"string","description":"Held by open holds and leases","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].held","typeLabel":"string"},"remaining":{"type":"string","description":"amount - consumed - held; negative for a soft limit, or a hard limit a record passed","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].remaining","typeLabel":"string"},"resetsAt":{"oneOf":[{"type":"integer","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.0","typeLabel":"integer"},{"type":"null","description":"When the limit's current period ends, in epoch milliseconds; null for never","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX].resetsAt","typeLabel":"integer | null"}},"required":["id","window","enforce","amount","consumed","held","remaining","resetsAt"],"uniqueKey":"error.details.oneOf.1.balance.limits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.limits","typeLabel":"object[]"},"asOf":{"type":"integer","description":"When this balance was computed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.1.balance.asOf","typeLabel":"integer"}},"required":["remaining","held","limits","asOf"],"isRequired":true,"uniqueKey":"error.details.oneOf.1.balance","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","closedAt"],"properties":{"kind":{"type":"string","enum":["budget_closed"],"isRequired":true,"uniqueKey":"error.details.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"closedAt":{"type":"integer","description":"When the budget closed, in epoch milliseconds","isRequired":true,"uniqueKey":"error.details.oneOf.2.closedAt","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","holdId","maximum","actual"],"properties":{"kind":{"type":"string","enum":["hold_amount_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","pattern":"^h_[1-9][0-9]{0,15}$","description":"The hold, as returned by authorize","example":"h_42","isRequired":true,"uniqueKey":"error.details.oneOf.3.holdId","typeLabel":"string"},"maximum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.maximum","typeLabel":"string"},"actual":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.3.actual","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.3","typeLabel":"object"},{"type":"object","required":["kind","limitId","minimum","requested"],"properties":{"kind":{"type":"string","enum":["limit_below_usage"],"isRequired":true,"uniqueKey":"error.details.oneOf.4.kind","typeLabel":"enum\u003cstring>"},"limitId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.4.limitId","typeLabel":"string"},"minimum":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.minimum","typeLabel":"string"},"requested":{"type":"string","description":"A decimal amount in the budget's unit","isRequired":true,"uniqueKey":"error.details.oneOf.4.requested","typeLabel":"string"}},"uniqueKey":"error.details.oneOf.4","typeLabel":"object"},{"type":"object","required":["kind","maximum","retained"],"properties":{"kind":{"type":"string","enum":["window_capacity_exceeded"],"isRequired":true,"uniqueKey":"error.details.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"maximum":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.maximum","typeLabel":"integer"},"retained":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"error.details.oneOf.5.retained","typeLabel":"integer"}},"uniqueKey":"error.details.oneOf.5","typeLabel":"object"},{"type":"object","required":["kind","rejection"],"properties":{"kind":{"type":"string","enum":["release_rejected"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.kind","typeLabel":"enum\u003cstring>"},"rejection":{"oneOf":[{"type":"object","required":["code"],"properties":{"code":{"type":"string","enum":["BUDGET_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0.code","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.0","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_NOT_FOUND"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.1","typeLabel":"object"},{"type":"object","required":["code","holdId"],"properties":{"code":{"type":"string","enum":["HOLD_RETIRED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2.holdId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.2","typeLabel":"object"},{"type":"object","required":["code","holdId","status"],"properties":{"code":{"type":"string","enum":["HOLD_CLOSED"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.code","typeLabel":"enum\u003cstring>"},"holdId":{"type":"string","isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.holdId","typeLabel":"string"},"status":{"type":"string","enum":["settled","released","expired"],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error.details.oneOf.6.rejection","typeLabel":"object"}},"uniqueKey":"error.details.oneOf.6","typeLabel":"object"}],"uniqueKey":"error.details","typeLabel":"object"}},"required":["code","docs","message","requestId"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_SERVER_ERROR","docs":"https://docs.unprice.dev/api-reference/errors/code/INTERNAL_SERVER_ERROR","message":"\u003cstring>","requestId":"req_1234","details":{"kind":"invalid_config","issues":[{"path":"config.plans[0].version.features[1].featureSlug","message":"\u003cstring>"}]}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"dd889c9d-c52d-49a3-b0ca-a11333122ffc":{"bearerAuth":{"bearerFormat":"root key","type":"http","scheme":"bearer","x-speakeasy-example":"UNPRICE_API_KEY","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"2a1f5b6e-fcd9-4479-b8f0-d8e3524b9e6d":{"url":"https://api.unprice.dev","description":"Production"},"4f0ca25b-7a5f-420c-a0d1-fdd91868a1df":{"url":"http://localhost:8787","description":"Development"},"3a662e90-2597-4145-b465-c73b343b810b":{"url":"https://preview-api.unprice.dev","description":"Preview"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"root key","type":"http","scheme":"bearer","x-speakeasy-example":"UNPRICE_API_KEY","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"unprice","siteName":"Unprice Documentation","title":"sign up - Unprice Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T00:04:25.545Z","originalFileLocation":"api-reference/customers/sign-up.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=\"Sign up a customer for a project\">\u003cmeta data-mint-head name=\"application-name\" content=\"Unprice Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"sign up - Unprice Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sign up a customer for a project\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Unprice Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.unprice.dev/api-reference/customers/sign-up\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://unprice.mintlify.site/_mintlify/api/og/v2?division=customers\u0026amp;title=sign+up\u0026amp;description=Sign+up+a+customer+for+a+project\u0026amp;theme=2843c968777e7cca9e0085b5\u0026amp;signature=9c6ad3be667ae639b9cf0442cf1c402d94f47101f2e1d435d92867744ad16c26\">\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=\"sign up - Unprice Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sign up a customer for a project\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://unprice.mintlify.site/_mintlify/api/og/v2?division=customers\u0026amp;title=sign+up\u0026amp;description=Sign+up+a+customer+for+a+project\u0026amp;theme=2843c968777e7cca9e0085b5\u0026amp;signature=9c6ad3be667ae639b9cf0442cf1c402d94f47101f2e1d435d92867744ad16c26\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/unprice/Tby7nRt_ND4FF19p/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Unprice Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ab6400\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.unprice.dev/api-reference/customers/sign-up\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/customers/sign-up.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.unprice.dev/#organization\",\"name\":\"Unprice Documentation\",\"url\":\"https://docs.unprice.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/unprice/vXUWXLNyOcaxnjxH/logo/light.svg?fit=max\u0026auto=format\u0026n=vXUWXLNyOcaxnjxH\u0026q=85\u0026s=ce4a214a5ae95d854ad7e6767a821d25\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.unprice.dev#website\",\"name\":\"Unprice Documentation\",\"url\":\"https://docs.unprice.dev\",\"publisher\":{\"@id\":\"https://docs.unprice.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.unprice.dev/api-reference/customers/sign-up#webpage\",\"url\":\"https://docs.unprice.dev/api-reference/customers/sign-up\",\"name\":\"sign up\",\"description\":\"Sign up a customer for a project\",\"dateModified\":\"2026-10-22T00:04:25.545Z\",\"isPartOf\":{\"@id\":\"https://docs.unprice.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.unprice.dev/api-reference/customers/sign-up#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.unprice.dev/api-reference/customers/sign-up#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.unprice.dev/api-reference/access/update-acl\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"sign up\",\"item\":\"https://docs.unprice.dev/api-reference/customers/sign-up\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.unprice.dev/api-reference/customers/sign-up#apireference\",\"headline\":\"sign up\",\"name\":\"sign up\",\"description\":\"Sign up a customer for a project\",\"url\":\"https://docs.unprice.dev/api-reference/customers/sign-up\",\"mainEntityOfPage\":{\"@id\":\"https://docs.unprice.dev/api-reference/customers/sign-up#webpage\"},\"dateModified\":\"2026-10-22T00:04:25.545Z\",\"publisher\":{\"@id\":\"https://docs.unprice.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.unprice.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Unprice Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Unprice Documentation","nav":{"global":{"anchors":[{"anchor":"Home","icon":"globe","href":"https://unprice.dev"},{"anchor":"Community","icon":"discord","href":"https://discord.gg/unprice"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Budgets","pages":[{"title":"Budgets","href":"/budgets/overview"}]},{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Overview","href":"/api-reference/overview"},{"title":"Authentication","href":"/api-reference/authentication"}]},{"group":"Errors","pages":[{"title":"Introduction","href":"/api-reference/errors/introduction"},{"group":"Errors","pages":[{"title":"BAD_REQUEST","href":"/api-reference/errors/code/BAD_REQUEST"},{"title":"UNAUTHORIZED","href":"/api-reference/errors/code/UNAUTHORIZED"},{"title":"BUDGET_EXCEEDED","href":"/api-reference/errors/code/BUDGET_EXCEEDED"},{"title":"FORBIDDEN","href":"/api-reference/errors/code/FORBIDDEN"},{"title":"INSUFFICIENT_PERMISSIONS","href":"/api-reference/errors/code/INSUFFICIENT_PERMISSIONS"},{"title":"NOT_FOUND","href":"/api-reference/errors/code/NOT_FOUND"},{"title":"CONFLICT","href":"/api-reference/errors/code/CONFLICT"},{"title":"PRECONDITION_FAILED","href":"/api-reference/errors/code/PRECONDITION_FAILED"},{"title":"TOO_MANY_REQUESTS","href":"/api-reference/errors/code/TOO_MANY_REQUESTS"},{"title":"PAYLOAD_TOO_LARGE","href":"/api-reference/errors/code/PAYLOAD_TOO_LARGE"},{"title":"INTERNAL_SERVER_ERROR","href":"/api-reference/errors/code/INTERNAL_SERVER_ERROR"}]}]},{"group":"Endpoints","pages":[{"group":"access","pages":[{"title":"update ACL","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/access/update","href":"/api-reference/access/update-acl"},{"title":"get customer entitlements","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/access/entitlements/list","href":"/api-reference/access/get-customer-entitlements"},{"title":"get current customer entitlements","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/access/entitlements/current","href":"/api-reference/access/get-current-customer-entitlements"},{"title":"get current feature status","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/access/check","href":"/api-reference/access/get-current-feature-status"}]},{"group":"runs","pages":[{"title":"start a budgeted run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/runs/start","href":"/api-reference/runs/start-a-budgeted-run"},{"title":"apply sync metered event to a run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/runs/consume/{runId}","href":"/api-reference/runs/apply-sync-metered-event-to-a-run"},{"title":"settle incurred usage against a run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/runs/settle/{runId}","href":"/api-reference/runs/settle-incurred-usage-against-a-run"},{"title":"end a budgeted run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/runs/end/{runId}","href":"/api-reference/runs/end-a-budgeted-run"},{"title":"get a budgeted run","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/runs/get/{runId}","href":"/api-reference/runs/get-a-budgeted-run"}]},{"group":"budgets","pages":[{"title":"create or update a budget","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/upsert","href":"/api-reference/budgets/create-or-update-a-budget"},{"title":"reserve the maximum permitted usage before work runs","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/authorize","href":"/api-reference/budgets/reserve-the-maximum-permitted-usage-before-work-runs"},{"title":"settle a hold with the actual amount","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/settle","href":"/api-reference/budgets/settle-a-hold-with-the-actual-amount"},{"title":"release a hold without consuming","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/release","href":"/api-reference/budgets/release-a-hold-without-consuming"},{"title":"consume an amount if it fits","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/charge","href":"/api-reference/budgets/consume-an-amount-if-it-fits"},{"title":"record usage that already happened","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/record","href":"/api-reference/budgets/record-usage-that-already-happened"},{"title":"get a budget and its balance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/budgets/get","href":"/api-reference/budgets/get-a-budget-and-its-balance"},{"title":"debit capacity for a long-lived process to spend locally","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/lease","href":"/api-reference/budgets/debit-capacity-for-a-long-lived-process-to-spend-locally"},{"title":"report a lease's usage, and extend or close it","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/budgets/report","href":"/api-reference/budgets/report-a-leases-usage-and-extend-or-close-it"},{"title":"token rates and limits of models","description":"The catalog Unprice prices model steps with: token rates in USD per million tokens and the context and output limits of each model, by provider/model id. Unknown ids are omitted from the answer.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/budgets/models","href":"/api-reference/budgets/token-rates-and-limits-of-models"}]},{"group":"customers","pages":[{"title":"sign up","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/sign-up","href":"/api-reference/customers/sign-up"},{"title":"change a customer's active plan","description":"Move a customer to a published plan version immediately. Returns the payment provider that must collect a payment method before the change when one is required. A capped replacement phase can receive an explicit wallet credit cap.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/change-plan","href":"/api-reference/customers/change-a-customers-active-plan"}]},{"group":"usage","pages":[{"title":"ingest raw event","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage/record","href":"/api-reference/usage/ingest-raw-event"},{"title":"ingest raw event synchronously for a feature","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage/consume","href":"/api-reference/usage/ingest-raw-event-synchronously-for-a-feature"}]},{"group":"ingestionEvents","pages":[{"title":"replay failed ingestion events","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/ingestion-events/replay","href":"/api-reference/ingestionevents/replay-failed-ingestion-events"},{"title":"get ingestion status","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/ingestion-events/status","href":"/api-reference/ingestionevents/get-ingestion-status"}]},{"group":"features","pages":[{"title":"get features","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/features/list","href":"/api-reference/features/get-features"}]},{"group":"invoices","pages":[{"title":"get invoice","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/invoices/get/{invoiceId}","href":"/api-reference/invoices/get-invoice"}]},{"group":"monetization","pages":[{"title":"apply monetization configuration","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/monetization/apply","href":"/api-reference/monetization/apply-monetization-configuration"},{"title":"get monetization configuration","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/monetization/get","href":"/api-reference/monetization/get-monetization-configuration"}]},{"group":"paymentMethods","pages":[{"title":"list payment methods","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-methods/list","href":"/api-reference/paymentmethods/list-payment-methods"},{"title":"create payment method","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-methods/create","href":"/api-reference/paymentmethods/create-payment-method"}]},{"group":"planVersions","pages":[{"title":"get plan version","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plan-versions/get/{planVersionId}","href":"/api-reference/planversions/get-plan-version"},{"title":"list all plan versions","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plan-versions/list","href":"/api-reference/planversions/list-all-plan-versions"}]},{"group":"subscriptions","pages":[{"title":"get subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/subscriptions/get","href":"/api-reference/subscriptions/get-subscription"}]},{"group":"analytics","pages":[{"title":"explain charge","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/analytics/charges/explain","href":"/api-reference/analytics/explain-charge"},{"title":"get usage","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/analytics/usage/get","href":"/api-reference/analytics/get-usage"},{"title":"get current billing-period usage","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/analytics/usage/current-billing-period","href":"/api-reference/analytics/get-current-billing-period-usage"}]},{"group":"wallet","pages":[{"title":"get wallet balance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/wallet/balance","href":"/api-reference/wallet/get-wallet-balance"}]},{"group":"walletCredits","pages":[{"title":"get wallet credit balance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/wallet-credits/balance/{walletId}","href":"/api-reference/walletcredits/get-wallet-credit-balance"}]}]}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/libraries/ts/sdk/overview"}]}]},"basePath":"","title":"sign up - Unprice Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}