Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.
Camera poses from an ARKit session. They don't skip SfM: GLOMAP still solves the camera poses from the images. The poses set the scene's up direction from ARKit gravity (at least 30 frames or photos must pair with a pose) and, for a video, which frames are extracted: up to 150, at the pose timestamps.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Splat3D API","description":"Turn photos and videos into interactive 3D scenes.","colors":{"primary":"#0064B8","light":"#7AC8F5","dark":"#0064B8"},"logo":{"light":"https://mintcdn.com/splat-3d/wnqi9kNMr7-1xjih/logo/light.svg?fit=max\u0026auto=format\u0026n=wnqi9kNMr7-1xjih\u0026q=85\u0026s=bc15fe1f4fcdf463e06636d6f2a83002","dark":"https://mintcdn.com/splat-3d/wnqi9kNMr7-1xjih/logo/dark.svg?fit=max\u0026auto=format\u0026n=wnqi9kNMr7-1xjih\u0026q=85\u0026s=d04469df5cbe0521aa4e6e3f4767bd88","href":"https://splat-3d.com"},"favicon":"https://mintcdn.com/splat-3d/wnqi9kNMr7-1xjih/favicon.svg?fit=max\u0026auto=format\u0026n=wnqi9kNMr7-1xjih\u0026q=85\u0026s=1caec7ca6867048ce5c4e34fe3d04e30","api":{"playground":{"display":"interactive"},"examples":{"languages":["bash","python","javascript"]}},"appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://github.com/zzulanas","type":"github"}],"primary":{"type":"button","label":"Dashboard","href":"https://splat-3d.com/dashboard"}},"footer":{"socials":{"github":"https://github.com/zzulanas"},"links":[{"header":"Get in touch","items":[{"label":"Custom workloads","href":"mailto:[email protected]"},{"label":"Dashboard","href":"https://splat-3d.com/dashboard"}]}]},"fonts":{"family":"Hanken Grotesk"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"splat-3d","hasAudioNarration":false,"actualSubdomain":"splat-3d","customDomains":["docs.splat-3d.com"],"gitSource":{"type":"github","owner":"zzulanas","repo":"gaussian-splatting","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ada2d1a0febba82de30e32b","collectionId":"6860f72c-8013-4fa9-8179-22eb387e32d4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada2d1a0febba82de30e32b"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ada2d1a0febba82de30e32b","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":15},{"language":"default","tag":"Documentation","count":12},{"language":"default","tag":"Scenes","count":10},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Overview","count":4},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"SDKs","count":2},{"language":"default","tag":"Webhooks","count":2},{"language":"default","tag":"Usage","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/scenes/start-processing-a-scene","slug":"/api-reference/scenes/start-processing-a-scene","pageMetadata":{"title":"Start processing a scene","description":"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes/{id}/process","href":"/api-reference/scenes/start-processing-a-scene","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: \"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\"\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":"Start processing a scene","description":"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes/{id}/process","href":"/api-reference/scenes/start-processing-a-scene","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Scenes"],"summary":"Start processing a scene","description":"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.","operationId":"processScene","security":["9844f374-ece4-4fd2-8399-281593804210"],"parameters":["f63d6fca-4d51-4f44-9968-9b99b3efbd7b","ed4b9e99-7000-435d-a35f-4fd8699be9b1"],"requestBody":"1f948a5c-c465-4486-bfcc-be51a52a5336","responses":{"200":"399f0f78-3dd4-4dcf-aa5a-3a9a55abc6fc","400":"de3ce0d6-1b27-4061-97ab-38258279650f","401":"a1d9f195-c877-4942-b0c1-64efb15a08b0","402":"f8484191-5a1f-40cf-8cb0-797582557154","403":"8537c894-2470-4806-914a-63a757584531","404":"4aa41e93-122b-4044-8321-2e1fac39b382","409":"c5b455e0-59b2-4b12-b9ec-1ef230dfaf4b","413":"e66d5abe-5b74-4f0b-b5ec-0c6a51285a26","415":"eab07aea-7ce5-49c0-90f9-596f9bc37383","422":"6b7055fa-7d0f-4ba1-950f-8b1a46698009","429":"7bbb2c8d-2d6d-4068-8a35-b09e8fa17009","500":"cbfa254b-6019-4e96-9476-9dd3c6c06bfd","502":"36d4276b-2d2a-4fd1-814a-50c8237abc01","503":"30967a62-f5eb-4cbe-8e4e-508c35e190b8"},"method":"post","type":"path","servers":["b5b7d87d-9eb7-4401-8dff-a2dcf80ca877"],"path":"/v1/scenes/{id}/process","baseUrlOptions":["https://api.splat-3d.com"],"title":"Start processing a scene","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f63d6fca-4d51-4f44-9968-9b99b3efbd7b":{"schema":{"type":"string","description":"Scene ID","example":"a1b2c3d4e5f6","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"id","in":"path"},"ed4b9e99-7000-435d-a35f-4fd8699be9b1":{"schema":{"type":"string","pattern":"^[\\x21-\\x7e]{1,128}$","description":"Optional user-scoped key. Reuse this exact key and body on retries. A different key/body for the same scene, or reuse on another scene, returns 409.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"name":"idempotency-key","in":"header"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"enable_lod":{"type":"boolean","example":false,"uniqueKey":"enable_lod","typeLabel":"boolean"},"arkit_poses":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"number","description":"Capture timestamp in seconds","example":1.234,"isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].timestamp","typeLabel":"number"},"file_path":{"type":"string","description":"Path of the image in the uploaded zip; the file name alone works when it is unique","example":"IMG_0001.jpg","isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].file_path","typeLabel":"string"},"transform":{"type":"array","items":{"type":"number","uniqueKey":"arkit_poses.items.[INDEX].transform.items.[INDEX]","typeLabel":"number"},"description":"4x4 camera-to-world matrix, column-major (ARKit simd_float4x4 layout), in a gravity-aligned world with +Y up (ARKit worldAlignment .gravity or .gravityAndHeading). Scene orientation is taken from it.","example":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].transform","typeLabel":"number[]"},"intrinsics":{"type":"array","items":{"type":"number","uniqueKey":"arkit_poses.items.[INDEX].intrinsics.items.[INDEX]","typeLabel":"number"},"description":"3x3 camera intrinsics matrix, row-major [fx,0,cx, 0,fy,cy, 0,0,1]","example":[1674,0,960,0,1674,720,0,0,1],"isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].intrinsics","typeLabel":"number[]"},"width":{"type":"integer","exclusiveMinimum":0,"example":1920,"isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].width","typeLabel":"integer"},"height":{"type":"integer","exclusiveMinimum":0,"example":1440,"isRequired":true,"uniqueKey":"arkit_poses.items.[INDEX].height","typeLabel":"integer"}},"required":["timestamp","file_path","transform","intrinsics","width","height"],"uniqueKey":"arkit_poses.items.[INDEX]","typeLabel":"object"},"minItems":5,"maxItems":1000,"description":"Camera poses from an ARKit session. They don't skip SfM: GLOMAP still solves the camera poses from the images. The poses set the scene's up direction from ARKit gravity (at least 30 frames or photos must pair with a pose) and, for a video, which frames are extracted: up to 150, at the pose timestamps.","uniqueKey":"arkit_poses","typeLabel":"object[]"},"lidar_points":{"type":"array","items":{"type":"array","items":{"type":"number","uniqueKey":"lidar_points.items.[INDEX].items.[INDEX]","typeLabel":"number"},"minItems":3,"maxItems":6,"uniqueKey":"lidar_points.items.[INDEX]","typeLabel":"number[]"},"maxItems":50000,"description":"LiDAR point cloud from ARKit ARMeshAnchor. Each entry is [x, y, z] or [x, y, z, r, g, b]. Max 50K points.","uniqueKey":"lidar_points","typeLabel":"number[][]"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"enable_lod":false,"arkit_poses":[{"timestamp":1.234,"file_path":"IMG_0001.jpg","transform":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"intrinsics":[1674,0,960,0,1674,720,0,0,1],"width":1920,"height":1440}],"lidar_points":[[123]]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"399f0f78-3dd4-4dcf-aa5a-3a9a55abc6fc":{"description":"Processing started.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","description":"Always `processing`: the launch was accepted. Poll `GET /v1/scenes/{id}` for the stored status.","example":"processing","isRequired":true,"uniqueKey":"data.status","typeLabel":"string"},"scene_id":{"type":"string","description":"The scene launched.","example":"a1b2c3d4e5f6","isRequired":true,"uniqueKey":"data.scene_id","typeLabel":"string"},"id":{"type":"string","description":"Same as `scene_id`.","example":"a1b2c3d4e5f6","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"sceneId":{"type":"string","description":"Same as `scene_id`. Kept for older clients.","example":"a1b2c3d4e5f6","deprecated":true,"isRequired":true,"uniqueKey":"data.sceneId","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"data.message","typeLabel":"string"}},"required":["status","scene_id","id","sceneId","message"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["data","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"status":"processing","scene_id":"a1b2c3d4e5f6","id":"a1b2c3d4e5f6","sceneId":"a1b2c3d4e5f6","message":"\u003cstring>"},"meta":{"request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a"}}}},"exampleType":"generated"}},"exampleType":"generated"},"de3ce0d6-1b27-4061-97ab-38258279650f":{"description":"`source_missing`: the scene's source file isn't in storage, e.g. the upload never finished. Nothing was charged. Upload it again (the upload URL from create lasts 24 hours; after that, create a new scene), then call `/process` again. Any other bad request is `invalid_input`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"a1d9f195-c877-4942-b0c1-64efb15a08b0":{"description":"Authentication required.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"f8484191-5a1f-40cf-8cb0-797582557154":{"description":"`insufficient_credits`: your balance doesn't cover this launch. Nothing was charged. After `/process` the scene stays `uploading`: add credits and call `/process` again. After `/retrain` no new version is kept.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"8537c894-2470-4806-914a-63a757584531":{"description":"`insufficient_scope`: the API key lacks the `write:scenes` scope, which keys created as Write or All carry. The request was refused before it read or changed any scene, quota or credit balance.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"4aa41e93-122b-4044-8321-2e1fac39b382":{"description":"Scene not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"c5b455e0-59b2-4b12-b9ec-1ef230dfaf4b":{"description":"Scene is already being processed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"e66d5abe-5b74-4f0b-b5ec-0c6a51285a26":{"description":"`payload_too_large`: the uploaded file exceeds the 5.0 GB upload limit, the same on every plan. Nothing was charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"eab07aea-7ce5-49c0-90f9-596f9bc37383":{"description":"The request has a body that isn't sent as `Content-Type: application/json`. `curl -d` sends form encoding unless you add that header. Nothing was created, claimed or charged.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"6b7055fa-7d0f-4ba1-950f-8b1a46698009":{"description":"`source_unusable`: the uploaded file won't make a usable scene: it is empty, a video under 30 seconds (read from its MP4 or MOV header; a length that can't be read launches), a 360° video at any length (a 2:1 frame, or spherical metadata on another shape; 360° video isn't supported yet), a photo upload that isn't a zip, or a zip with fewer than 20 JPEG or PNG photos (HEIC, WebP and other formats are skipped). A zip holding a COLMAP model needs 5; a SplatKing video export (one `wide.mov`, under 5 photos) isn't counted. `details` names the rule, e.g. `{ field: \"photo_count\", value: 12, allowed: { min: 20 } }`, `{ field: \"video_seconds\", value: 12.4, allowed: { min: 30 } }` or `{ field: \"video_aspect\", value: 2, allowed: { not: 2 } }` (`video_projection` for spherical metadata). Nothing was charged. Upload a usable file to the same upload URL (it lasts 24 hours from create) and call `/process` again, or create a new scene.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"7bbb2c8d-2d6d-4068-8a35-b09e8fa17009":{"description":"`queue_full`: as many of your scenes are processing as your plan allows at once. Nothing was charged, and `meta` holds `limit` and `current`. After `/process` the scene stays `uploading`: call `/process` again once one finishes. After `/retrain` no new version is kept, unless the response carries no `Retry-After`: then check `GET /v1/scenes` before sending it again. `quota_exceeded`: the monthly quota is used up; `meta` holds `period`, `limit` and `field`. After `/retrain` no new version is kept. `rate_limited`: more than 300 requests, or 30 create, `/process` and `/retrain` requests, this minute, counted per user. The request was refused before it read or changed any scene, quota or credit balance. Wait `Retry-After` seconds, then send it again. `meta.limit` and `X-RateLimit-Limit` name the limit that refused.","headers":{"Retry-After":{"description":"Seconds to wait before sending the request again: 120 with `queue_full`, 60 with `rate_limited`. Not sent with `quota_exceeded`.","schema":{"type":"integer","example":120}},"X-RateLimit-Limit":{"description":"Requests a minute the limit that refused allows. Every `/v1` response carries it, naming its route's limit.","schema":{"type":"integer","example":300}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"cbfa254b-6019-4e96-9476-9dd3c6c06bfd":{"description":"`internal_error`: an unexpected failure on our side. Contact support with `meta.request_id`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"36d4276b-2d2a-4fd1-814a-50c8237abc01":{"description":"`upstream_error`: the GPU backend refused the launch, or the capture data could not be stored. The charge was refunded. Repeating the same `/process` request returns this saved failure.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"},"30967a62-f5eb-4cbe-8e4e-508c35e190b8":{"description":"Temporarily unavailable, e.g. a database blip. Not an answer about your key or scene: retry the same request after `Retry-After` seconds.","headers":{"Retry-After":{"description":"Seconds to wait before retrying the same request.","schema":{"type":"integer","example":5}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code. One of: `invalid_input`, `source_missing`, `unauthorized`, `insufficient_credits`, `forbidden`, `insufficient_scope`, `not_found`, `conflict`, `retry_blocked`, `payload_too_large`, `source_unusable`, `quota_exceeded`, `queue_full`, `rate_limited`, `internal_error`, `upstream_error`, `service_unavailable`. More may be added, so treat an unknown code by its HTTP status.","example":"not_found","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"Scene not found.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.items.[INDEX].additionalProperties","typeLabel":"any"},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Structured detail, absent on most errors. A request that fails validation (400 `invalid_input`) lists one `{field, message}` per problem. A parameter outside the tier's range (422) lists `{field, value, allowed, tier, hint}`; `source_unusable` names the rule that failed.","example":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}],"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"meta.request_id","typeLabel":"string\u003cuuid>"},"period":{"type":"string","description":"`quota_exceeded`: the month whose quota is used up.","example":"2026-10","uniqueKey":"meta.period","typeLabel":"string"},"limit":{"type":"integer","description":"`quota_exceeded`: the monthly limit. `queue_full`: how many scenes may process at once. `rate_limited`: the requests a minute the limit that refused allows.","example":100,"uniqueKey":"meta.limit","typeLabel":"integer"},"field":{"type":"string","description":"`quota_exceeded`: the quota used up, `scenes_created` or `scenes_processed`.","example":"scenes_created","uniqueKey":"meta.field","typeLabel":"string"},"current":{"type":"integer","description":"`queue_full`: how many of your scenes are processing now.","example":2,"uniqueKey":"meta.current","typeLabel":"integer"}},"required":["request_id"],"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"required":["error","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"Scene not found.","details":[{"field":"iterations","value":15000,"allowed":{"min":3000,"max":10000},"tier":"standard","hint":"iterations=15000 requires the quality tier or higher."}]},"meta":{"request_id":"550e8400-e29b-41d4-a716-446655440000","period":"2026-10","limit":100,"field":"scenes_created","current":2}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"9844f374-ece4-4fd2-8399-281593804210":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key in format: s3d_...","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"b5b7d87d-9eb7-4401-8dff-a2dcf80ca877":{"url":"https://api.splat-3d.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key in format: s3d_...","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key in format: s3d_...","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"https://api.splat-3d.com/openapi.json"},"subdomain":"splat-3d","siteName":"Splat3D API","title":"Start processing a scene - Splat3D API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T18:23:24.013Z","originalFileLocation":"api-reference/scenes/start-processing-a-scene.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=\"dark\"}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=\"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Splat3D API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_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/splat-3d/9btEMpqE3cqbnssy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start processing a scene - Splat3D API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Splat3D API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://splat-3d.mintlify.app/_mintlify/api/og/v2?division=Scenes\u0026amp;title=Start+processing+a+scene\u0026amp;description=Reserve+one+paid+launch+for+an+uploaded+scene.+Retry+with+the+same+body+and+optional+Idempotency-Key+to+replay+the+saved+result+without+another+charge%2C+processi\u0026amp;theme=8f31a3f74407b4c2b7cc64a6\u0026amp;signature=72e6aae100bc0d6ca4a3a3bf181e9c48556d8b9a3bc15c5fe20b851015208fc9\">\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=\"Start processing a scene - Splat3D API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://splat-3d.mintlify.app/_mintlify/api/og/v2?division=Scenes\u0026amp;title=Start+processing+a+scene\u0026amp;description=Reserve+one+paid+launch+for+an+uploaded+scene.+Retry+with+the+same+body+and+optional+Idempotency-Key+to+replay+the+saved+result+without+another+charge%2C+processi\u0026amp;theme=8f31a3f74407b4c2b7cc64a6\u0026amp;signature=72e6aae100bc0d6ca4a3a3bf181e9c48556d8b9a3bc15c5fe20b851015208fc9\">\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/splat-3d/9btEMpqE3cqbnssy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Splat3D API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0064B8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/scenes/start-processing-a-scene.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.splat-3d.com/#organization\",\"name\":\"Splat3D API\",\"url\":\"https://docs.splat-3d.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/splat-3d/wnqi9kNMr7-1xjih/logo/light.svg?fit=max\u0026auto=format\u0026n=wnqi9kNMr7-1xjih\u0026q=85\u0026s=bc15fe1f4fcdf463e06636d6f2a83002\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.splat-3d.com#website\",\"name\":\"Splat3D API\",\"url\":\"https://docs.splat-3d.com\",\"publisher\":{\"@id\":\"https://docs.splat-3d.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene#webpage\",\"url\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene\",\"name\":\"Start processing a scene\",\"description\":\"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\",\"dateModified\":\"2026-10-19T18:23:24.013Z\",\"isPartOf\":{\"@id\":\"https://docs.splat-3d.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Scenes\",\"item\":\"https://docs.splat-3d.com/api-reference/scenes/list-scenes\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start processing a scene\",\"item\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene#apireference\",\"headline\":\"Start processing a scene\",\"name\":\"Start processing a scene\",\"description\":\"Reserve one paid launch for an uploaded scene. Retry with the same body and optional Idempotency-Key to replay the saved result without another charge, processing-quota increment, or dispatch. An uncertain upstream response remains accepted until status reconciliation resolves it.\",\"url\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene\",\"mainEntityOfPage\":{\"@id\":\"https://docs.splat-3d.com/api-reference/scenes/start-processing-a-scene#webpage\"},\"dateModified\":\"2026-10-19T18:23:24.013Z\",\"publisher\":{\"@id\":\"https://docs.splat-3d.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.splat-3d.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Splat3D API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Splat3D API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","href":"/api-reference/overview"},{"title":"Changelog","href":"/changelog"}]},{"group":"Scenes","pages":[{"title":"List scenes","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json get /v1/scenes","href":"/api-reference/scenes/list-scenes"},{"title":"Create a scene","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes","href":"/api-reference/scenes/create-a-scene"},{"title":"Get scene status","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json get /v1/scenes/{id}","href":"/api-reference/scenes/get-scene-status"},{"title":"Delete a scene","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json delete /v1/scenes/{id}","href":"/api-reference/scenes/delete-a-scene"},{"title":"Update scene metadata","description":"Update title, address, description, or visibility of a scene.","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json patch /v1/scenes/{id}","href":"/api-reference/scenes/update-scene-metadata"},{"title":"Start processing a scene","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes/{id}/process","href":"/api-reference/scenes/start-processing-a-scene"},{"title":"Retrain a scene","description":"Process a scene's source again as a new scene (a version), at the tier `quality_tier` or `preset` names, standard when neither is sent. `id` and `scene_id` name the new scene; the source scene is left as it is, running or not. Each request makes another version. A retrain refused before any charge keeps no new version; after a `502` the new version stays, failed and refunded.","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes/{id}/retrain","href":"/api-reference/scenes/retrain-a-scene"},{"title":"Cancel scene processing","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json post /v1/scenes/{id}/cancel","href":"/api-reference/scenes/cancel-scene-processing"},{"title":"Download 3D model file","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json get /v1/scenes/{id}/download","href":"/api-reference/scenes/download-3d-model-file"},{"title":"Get scene thumbnail","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json get /v1/scenes/{id}/thumbnail","href":"/api-reference/scenes/get-scene-thumbnail"}]},{"group":"Usage","pages":[{"title":"Get current usage and quotas","deprecated":null,"version":null,"openapi":"https://api.splat-3d.com/openapi.json get /v1/usage","href":"/api-reference/usage/get-current-usage-and-quotas"}]},{"group":"Webhooks","pages":[{"title":"Scene completed","version":null,"deprecated":null,"openapi":"https://api.splat-3d.com/openapi.json webhook scene.completed","href":"/api-reference/webhooks/scene-completed"},{"title":"Scene failed","version":null,"deprecated":null,"openapi":"https://api.splat-3d.com/openapi.json webhook scene.failed","href":"/api-reference/webhooks/scene-failed"}]}]}]},"title":"Start processing a scene - Splat3D API","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}