Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.
A unique value for each new request, such as a UUID. Send the same value to retry a request safely. The same key and payload replay the first response with Idempotency-Replayed: true.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"RoofKit Docs","colors":{"primary":"#037ff7","light":"#4da3ff","dark":"#037ff7"},"logo":{"light":"https://mintcdn.com/roofkit/TR022mpIPWwv8ies/logo/light.svg?fit=max\u0026auto=format\u0026n=TR022mpIPWwv8ies\u0026q=85\u0026s=ea7c8373b5ac8f54d47abdb424492281","dark":"https://mintcdn.com/roofkit/TR022mpIPWwv8ies/logo/dark.svg?fit=max\u0026auto=format\u0026n=TR022mpIPWwv8ies\u0026q=85\u0026s=966fdf8d7d86ca531f8a710196433a06","href":"https://roofkit.ai"},"favicon":"https://mintcdn.com/roofkit/TR022mpIPWwv8ies/favicon.svg?fit=max\u0026auto=format\u0026n=TR022mpIPWwv8ies\u0026q=85\u0026s=19cff8bdf79109cda52e561c820967b8","api":{"playground":{"display":"interactive","proxy":false}},"appearance":{"default":"light","strict":false},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"navbar":{"primary":{"type":"button","label":"Open RoofKit","href":"https://app.roofkit.ai"}},"href":""},{"language":"es","navbar":{"primary":{"type":"button","label":"Abrir RoofKit","href":"https://app.roofkit.ai"}},"href":"es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"roofkit","hasAudioNarration":false,"actualSubdomain":"roofkit","customDomains":["docs.roofkit.ai"],"gitSource":{"type":"github","owner":"verveai-hq","repo":"roofkit","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":"","_id":"6ae2324d9d8996b75b794f92"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae4bbe7a0e61751fdae9b24","collectionId":"38d96dba-f419-45f0-b6dd-5b8666232a5d","liveDeploymentHistoryId":"6ae4bbe7a0e61751fdae9b24","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8c1c1d2d285fc6f47301b","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"en","tag":"API reference","count":62},{"language":"es","tag":"Referencia de la API","count":62},{"language":"en","tag":"Data Objects","count":23},{"language":"es","tag":"Data Objects","count":23},{"language":"en","tag":"Guides","count":11},{"language":"es","tag":"Guías","count":11},{"language":"en","tag":"MCP","count":9},{"language":"en","tag":"Leads","count":9},{"language":"en","tag":"Reports","count":9},{"language":"en","tag":"Visualizer","count":9},{"language":"es","tag":"MCP","count":9},{"language":"es","tag":"Contactos","count":9},{"language":"es","tag":"Reportes","count":9},{"language":"es","tag":"Visualizador","count":9},{"language":"en","tag":"Tools","count":8},{"language":"es","tag":"Herramientas","count":8},{"language":"en","tag":"Attribution","count":6},{"language":"es","tag":"Atribución","count":6},{"language":"en","tag":"Install","count":4},{"language":"es","tag":"Instalación","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/visualizer/create-upload-session","slug":"/api-reference/visualizer/create-upload-session","pageMetadata":{"title":"Create upload session","description":"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned `url` with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after `expires_in_minutes` and accepts one photo. Only the API key that creates the session can read it.\n","deprecated":null,"version":null,"sidebarTitle":"Create upload session","openapi":"/api-reference/openapi.yaml post /api/v1/upload-sessions","href":"/api-reference/visualizer/create-upload-session","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned \", _jsx(_components.code, {\n children: \"url\"\n }), \" with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after \", _jsx(_components.code, {\n children: \"expires_in_minutes\"\n }), \" and accepts one photo. Only the API key that creates the session can read 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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components};return _jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required scopes:`}),` `,_jsx(_components.code,{children:`sales_visualizer.use`})]})}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":"Create upload session","description":"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned `url` with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after `expires_in_minutes` and accepts one photo. Only the API key that creates the session can read it.\n","deprecated":null,"version":null,"sidebarTitle":"Create upload session","openapi":"/api-reference/openapi.yaml post /api/v1/upload-sessions","href":"/api-reference/visualizer/create-upload-session","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Visualizer"],"operationId":"Create upload session","summary":"Create upload session","description":"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned `url` with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after `expires_in_minutes` and accepts one photo. Only the API key that creates the session can read it.\n","x-required-scopes":["sales_visualizer.use"],"parameters":["7e02bba1-96be-44ce-ba7a-3c51c045c6fe"],"requestBody":"0a670c4a-9819-4d98-ada1-e11bcf784a83","responses":{"201":"fd719772-fa27-4c62-a299-4c0c52d14cc8","400":"e3da4d2b-ac27-4532-aed4-b66c53941caf","401":"54ed0e85-1160-4800-981c-0e89c8062fda","402":"0aa66c3b-cfdc-4909-ab0a-e6a04083962c","403":"180d9677-0b44-4e30-a296-751b3578a232","409":"058566f7-7547-4485-89df-610cca81dcfa","429":"c55b06c7-ba3a-4dea-b201-a8ec9b57a319","500":"54d47af0-d084-47af-b883-ac99d2c03c6d"},"x-mint":{"href":"/api-reference/visualizer/create-upload-session","metadata":{"title":"Create upload session","sidebarTitle":"Create upload session"},"content":"**Required scopes:** `sales_visualizer.use`"},"method":"post","type":"path","servers":["af90f5c1-c298-41db-b4de-b5f584b84f29"],"security":["85fea81a-923e-4d80-a24b-4ae4963791cc"],"path":"/api/v1/upload-sessions","baseUrlOptions":["https://api.roofkit.ai"],"title":"Create upload session","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"7e02bba1-96be-44ce-ba7a-3c51c045c6fe":{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique value for each new request, such as a UUID. Send the same value to retry a request safely. The same key and payload replay the first response with `Idempotency-Replayed: true`.","schema":{"type":"string","minLength":1,"maxLength":160,"isRequired":true,"description":"A unique value for each new request, such as a UUID. Send the same value to retry a request safely. The same key and payload replay the first response with `Idempotency-Replayed: true`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["material_name","color_name"],"properties":{"material_name":{"type":"string","maxLength":100,"example":"Architectural Shingle","isRequired":true,"uniqueKey":"material_name","typeLabel":"string"},"color_name":{"type":"string","maxLength":100,"example":"Charcoal","isRequired":true,"uniqueKey":"color_name","typeLabel":"string"},"session_id":{"oneOf":[{"type":"string","maxLength":200,"description":"Optional Sales Visualizer session that groups the render. Defaults to `upload_session:{id}`.","uniqueKey":"session_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":200,"description":"Optional Sales Visualizer session that groups the render. Defaults to `upload_session:{id}`.","uniqueKey":"session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"session_id","typeLabel":"string | null"},"color_hex":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","example":"#333333","uniqueKey":"color_hex","typeLabel":"string"},"shape_name":{"oneOf":[{"type":"string","maxLength":100,"uniqueKey":"shape_name.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":100,"uniqueKey":"shape_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"shape_name","typeLabel":"string | null"},"selected_material_id":{"oneOf":[{"type":"string","maxLength":150,"uniqueKey":"selected_material_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":150,"uniqueKey":"selected_material_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"selected_material_id","typeLabel":"string | null"},"selected_color_id":{"oneOf":[{"type":"string","maxLength":150,"uniqueKey":"selected_color_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":150,"uniqueKey":"selected_color_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"selected_color_id","typeLabel":"string | null"},"selected_shape_id":{"oneOf":[{"type":"string","maxLength":150,"uniqueKey":"selected_shape_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":150,"uniqueKey":"selected_shape_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"selected_shape_id","typeLabel":"string | null"},"locale":{"type":"string","enum":["en","es"],"default":"en","description":"Language of the homeowner upload page.","uniqueKey":"locale","typeLabel":"enum\u003cstring>"},"expires_in_minutes":{"type":"integer","minimum":5,"maximum":1440,"default":60,"uniqueKey":"expires_in_minutes","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"material_name":"Architectural Shingle","color_name":"Charcoal","session_id":"\u003cstring>","color_hex":"#333333","shape_name":"\u003cstring>","selected_material_id":"\u003cstring>","selected_color_id":"\u003cstring>","selected_shape_id":"\u003cstring>","locale":"en","expires_in_minutes":60}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"fd719772-fa27-4c62-a299-4c0c52d14cc8":{"description":"Upload session created.","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"ISO timestamp when the current rate-limit window resets.","schema":{"type":"string","format":"date-time"}},"Idempotency-Replayed":{"description":"Present and true when a stored successful write response was replayed.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["upload_session"],"properties":{"upload_session":{"type":"object","additionalProperties":false,"required":["id","status","url","session_id","locale","expires_at","style","visualization_id","visualization","failure_code","uploaded_at","completed_at","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"upload_session.id","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["awaiting_upload","processing","completed","failed","expired"],"isRequired":true,"uniqueKey":"upload_session.status","typeLabel":"enum\u003cstring>"},"url":{"oneOf":[{"type":"string","format":"uri","description":"Homeowner upload page. Present only while `status` is `awaiting_upload`.","isRequired":true,"uniqueKey":"upload_session.url.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Homeowner upload page. Present only while `status` is `awaiting_upload`.","isRequired":true,"uniqueKey":"upload_session.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.url","typeLabel":"string\u003curi> | null"},"session_id":{"type":"string","isRequired":true,"uniqueKey":"upload_session.session_id","typeLabel":"string"},"locale":{"type":"string","enum":["en","es"],"isRequired":true,"uniqueKey":"upload_session.locale","typeLabel":"enum\u003cstring>"},"expires_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.expires_at","typeLabel":"string\u003cdate-time>"},"style":{"type":"object","additionalProperties":false,"required":["material_name","color_name","color_hex","shape_name","selected_material_id","selected_color_id","selected_shape_id"],"properties":{"material_name":{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.material_name","typeLabel":"string"},"color_name":{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.color_name","typeLabel":"string"},"color_hex":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.color_hex.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.style.color_hex.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.style.color_hex","typeLabel":"string | null"},"shape_name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.shape_name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.style.shape_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.style.shape_name","typeLabel":"string | null"},"selected_material_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.selected_material_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.style.selected_material_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.style.selected_material_id","typeLabel":"string | null"},"selected_color_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.selected_color_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.style.selected_color_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.style.selected_color_id","typeLabel":"string | null"},"selected_shape_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.style.selected_shape_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.style.selected_shape_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.style.selected_shape_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"upload_session.style","typeLabel":"object"},"visualization_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization_id","typeLabel":"string | null"},"visualization":{"oneOf":[{"type":"object","required":["id","session_id","source","landing_id","landing_name","landing_slug","selected_material_id","selected_color_id","selected_shape_id","original_image_url","processed_image_url","processing_status","processing_started_at","processing_completed_at","processing_error","created_at","updated_at"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.id","typeLabel":"string"},"session_id":{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.session_id","typeLabel":"string"},"source":{"type":"string","const":"sales_visualizer","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.source","typeLabel":"string"},"landing_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_id","typeLabel":"string | null"},"landing_name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_name","typeLabel":"string | null"},"landing_slug":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_slug.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_slug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.landing_slug","typeLabel":"string | null"},"selected_material_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_material_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_material_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_material_id","typeLabel":"string | null"},"selected_color_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_color_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_color_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_color_id","typeLabel":"string | null"},"selected_shape_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_shape_id.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_shape_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.selected_shape_id","typeLabel":"string | null"},"original_image_url":{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.original_image_url","typeLabel":"string"},"processed_image_url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processed_image_url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processed_image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processed_image_url","typeLabel":"string | null"},"processing_status":{"type":"string","enum":["pending","processing","completed","failed"],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_status","typeLabel":"enum\u003cstring>"},"processing_started_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_started_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_started_at","typeLabel":"string\u003cdate-time> | null"},"processing_completed_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_completed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_completed_at","typeLabel":"string\u003cdate-time> | null"},"processing_error":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_error.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.processing_error","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0.updated_at","typeLabel":"string\u003cdate-time>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"upload_session.visualization.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.visualization","typeLabel":"object | null"},"failure_code":{"oneOf":[{"type":"string","description":"Why the render did not finish. Present only when `status` is `failed`.","enum":["INSUFFICIENT_CREDITS","WORKSPACE_UNAVAILABLE","GENERATION_FAILED"],"isRequired":true,"uniqueKey":"upload_session.failure_code.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Why the render did not finish. Present only when `status` is `failed`.","isRequired":true,"uniqueKey":"upload_session.failure_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.failure_code","typeLabel":"enum\u003cstring> | null"},"uploaded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.uploaded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"upload_session.uploaded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.uploaded_at","typeLabel":"string\u003cdate-time> | null"},"completed_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"upload_session.completed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"upload_session.completed_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"upload_session.updated_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"upload_session","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"upload_session":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","status":"awaiting_upload","url":"\u003cstring>","session_id":"\u003cstring>","locale":"en","expires_at":"2023-11-07T05:31:56Z","style":{"material_name":"\u003cstring>","color_name":"\u003cstring>","color_hex":"\u003cstring>","shape_name":"\u003cstring>","selected_material_id":"\u003cstring>","selected_color_id":"\u003cstring>","selected_shape_id":"\u003cstring>"},"visualization_id":"\u003cstring>","visualization":{"id":"\u003cstring>","session_id":"\u003cstring>","source":"sales_visualizer","landing_id":"\u003cstring>","landing_name":"\u003cstring>","landing_slug":"\u003cstring>","selected_material_id":"\u003cstring>","selected_color_id":"\u003cstring>","selected_shape_id":"\u003cstring>","original_image_url":"\u003cstring>","processed_image_url":"\u003cstring>","processing_status":"pending","processing_started_at":"2023-11-07T05:31:56Z","processing_completed_at":"2023-11-07T05:31:56Z","processing_error":"\u003cstring>","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"},"failure_code":"INSUFFICIENT_CREDITS","uploaded_at":"2023-11-07T05:31:56Z","completed_at":"2023-11-07T05:31:56Z","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"e3da4d2b-ac27-4532-aed4-b66c53941caf":{"description":"Request payload, query, or required header is invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"54ed0e85-1160-4800-981c-0e89c8062fda":{"description":"Missing, malformed, revoked, deleted, or unknown API key.","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"0aa66c3b-cfdc-4909-ab0a-e6a04083962c":{"description":"The workspace cannot cover the credit charge for this operation.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"180d9677-0b44-4e30-a296-751b3578a232":{"description":"The API key lacks a required scope, or the workspace is not active. A scope failure names a missing scope in `details.required_scope`. When the key lookup refuses the call, `details.missing_scopes` lists every required scope that the key does not hold.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missing_scope":{"title":"missing_scope","value":{"error":{"code":"FORBIDDEN","message":"API key does not include the required scope: leads.write.","request_id":"req_123","details":{"required_scope":"leads.write","missing_scopes":["leads.write"]}}}}},"exampleType":"examples"}},"exampleType":"examples"},"058566f7-7547-4485-89df-610cca81dcfa":{"description":"Request conflicts with idempotency or external event identity.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"c55b06c7-ba3a-4dea-b201-a8ec9b57a319":{"description":"Rate limit exceeded for this key and endpoint or invalid-auth bucket.","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"ISO timestamp when the current rate-limit window resets.","schema":{"type":"string","format":"date-time"}},"Retry-After":{"description":"Seconds until the caller should retry.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"54d47af0-d084-47af-b883-ac99d2c03c6d":{"description":"Internal authentication or server error.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","request_id"],"properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","RATE_LIMITED","VALIDATION_ERROR","NOT_FOUND","CONFLICT","INSUFFICIENT_CREDITS","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"85fea81a-923e-4d80-a24b-4ae4963791cc":{"ApiKeyBearer":{"type":"http","scheme":"bearer","bearerFormat":"RoofKit API key","description":"Use `Authorization: Bearer rk_live_...`.","scopes":[],"schemeName":"ApiKeyBearer"}}},"servers":{"af90f5c1-c298-41db-b4de-b5f584b84f29":{"url":"https://api.roofkit.ai","description":"Canonical RoofKit Partner API origin"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"RoofKit API key","description":"Use `Authorization: Bearer rk_live_...`.","scopes":[],"schemeName":"ApiKeyBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use `Authorization: Bearer rk_live_...`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyBearer","name":"Authorization"}],"title":"ApiKeyBearer"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"roofkit","siteName":"RoofKit Docs","title":"Create upload session - RoofKit Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/visualizer/create-upload-session","matchLevel":0},"es":{"href":"/es/api-reference/visualizer/create-upload-session","matchLevel":1}}},"lastModified":"2026-10-29T22:36:05.992Z","originalFileLocation":"api-reference/visualizer/create-upload-session.mdx","locale":"en"},"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=\"light\"}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=\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"RoofKit Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_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/roofkit/1k7U4tefrMIm-Blt/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create upload session - RoofKit Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"RoofKit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://roofkit.mintlify.app/_mintlify/api/og/v2?division=Visualizer\u0026amp;title=Create+upload+session\u0026amp;description=Creates+a+RoofKit-hosted+photo+upload+link+for+one+homeowner+photo.+Share+the+returned+%60url%60+with+the+homeowner+as+a+normal+link.+The+link+opens+a+RoofKit+page%2C\u0026amp;theme=b453b03470eec720e115f260\u0026amp;signature=7b0e1bcacba997d10168ca120c15f2e104ef558e8f22627ef300e35a956df1f0\">\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=\"Create upload session - RoofKit Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://roofkit.mintlify.app/_mintlify/api/og/v2?division=Visualizer\u0026amp;title=Create+upload+session\u0026amp;description=Creates+a+RoofKit-hosted+photo+upload+link+for+one+homeowner+photo.+Share+the+returned+%60url%60+with+the+homeowner+as+a+normal+link.+The+link+opens+a+RoofKit+page%2C\u0026amp;theme=b453b03470eec720e115f260\u0026amp;signature=7b0e1bcacba997d10168ca120c15f2e104ef558e8f22627ef300e35a956df1f0\">\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/roofkit/1k7U4tefrMIm-Blt/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"RoofKit Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#037ff7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/visualizer/create-upload-session.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.roofkit.ai/es/api-reference/visualizer/create-upload-session\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.roofkit.ai/#organization\",\"name\":\"RoofKit Docs\",\"url\":\"https://docs.roofkit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/roofkit/TR022mpIPWwv8ies/logo/light.svg?fit=max\u0026auto=format\u0026n=TR022mpIPWwv8ies\u0026q=85\u0026s=ea7c8373b5ac8f54d47abdb424492281\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.roofkit.ai#website\",\"name\":\"RoofKit Docs\",\"url\":\"https://docs.roofkit.ai\",\"publisher\":{\"@id\":\"https://docs.roofkit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session#webpage\",\"url\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\",\"name\":\"Create upload session\",\"description\":\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.\",\"dateModified\":\"2026-10-29T22:36:05.992Z\",\"isPartOf\":{\"@id\":\"https://docs.roofkit.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Visualizer\",\"item\":\"https://docs.roofkit.ai/api-reference/visualizer/create-visualization\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create upload session\",\"item\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session#apireference\",\"headline\":\"Create upload session\",\"name\":\"Create upload session\",\"description\":\"Creates a RoofKit-hosted photo upload link for one homeowner photo. Share the returned url with the homeowner as a normal link. The link opens a RoofKit page, never an iframe. When the homeowner uploads a photo, RoofKit removes the photo metadata, stores the photo privately, and starts one billable render with the style of this request. Poll the session to read the result. The link expires after expires_in_minutes and accepts one photo. Only the API key that creates the session can read it.\",\"url\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session\",\"mainEntityOfPage\":{\"@id\":\"https://docs.roofkit.ai/api-reference/visualizer/create-upload-session#webpage\"},\"dateModified\":\"2026-10-29T22:36:05.992Z\",\"publisher\":{\"@id\":\"https://docs.roofkit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.roofkit.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"RoofKit Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"RoofKit Docs","nav":{"global":null,"languages":[{"language":"en","default":true,"navbar":{"primary":{"type":"button","label":"Open RoofKit","href":"https://app.roofkit.ai"}},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Get started","pages":[{"title":"Partner API","href":"/api-reference/introduction"},{"title":"Roof report requests","href":"/api-reference/report-requests"}]},{"group":"Foundation","pages":[{"title":"Verify API key","deprecated":null,"version":null,"sidebarTitle":"Verify API key","openapi":"/api-reference/openapi.yaml get /api/v1/me","href":"/api-reference/foundation/verify-api-key"}]},{"group":"Leads","pages":[{"title":"List leads","deprecated":null,"version":null,"sidebarTitle":"List leads","openapi":"/api-reference/openapi.yaml get /api/v1/leads","href":"/api-reference/leads/list-leads"},{"title":"Create or update lead","deprecated":null,"version":null,"sidebarTitle":"Create or update lead","openapi":"/api-reference/openapi.yaml post /api/v1/leads","href":"/api-reference/leads/create-or-update-lead"},{"title":"Export leads","deprecated":null,"version":null,"sidebarTitle":"Export leads","openapi":"/api-reference/openapi.yaml get /api/v1/leads/export","href":"/api-reference/leads/export-leads"},{"title":"Get lead","deprecated":null,"version":null,"sidebarTitle":"Get lead","openapi":"/api-reference/openapi.yaml get /api/v1/leads/{lead_id}","href":"/api-reference/leads/get-lead"},{"title":"Patch lead","deprecated":null,"version":null,"sidebarTitle":"Patch lead","openapi":"/api-reference/openapi.yaml patch /api/v1/leads/{lead_id}","href":"/api-reference/leads/patch-lead"},{"title":"Delete lead","deprecated":null,"version":null,"sidebarTitle":"Delete lead","openapi":"/api-reference/openapi.yaml delete /api/v1/leads/{lead_id}","href":"/api-reference/leads/delete-lead"},{"title":"List lead conversions","deprecated":null,"version":null,"sidebarTitle":"List lead conversions","openapi":"/api-reference/openapi.yaml get /api/v1/leads/{lead_id}/conversions","href":"/api-reference/leads/list-lead-conversions"},{"title":"Create lead conversion","deprecated":null,"version":null,"sidebarTitle":"Create lead conversion","openapi":"/api-reference/openapi.yaml post /api/v1/leads/{lead_id}/conversions","href":"/api-reference/leads/create-lead-conversion"},{"title":"Get lead roof","deprecated":null,"version":null,"sidebarTitle":"Get lead roof","openapi":"/api-reference/openapi.yaml get /api/v1/leads/{lead_id}/roof","href":"/api-reference/leads/get-lead-roof"}]},{"group":"Reports","pages":[{"title":"List reports","deprecated":null,"version":null,"sidebarTitle":"List reports","openapi":"/api-reference/openapi.yaml get /api/v1/reports","href":"/api-reference/reports/list-reports"},{"title":"Import report","deprecated":null,"version":null,"sidebarTitle":"Import report","openapi":"/api-reference/openapi.yaml post /api/v1/reports/import","href":"/api-reference/reports/import-report"},{"title":"Get report","deprecated":null,"version":null,"sidebarTitle":"Get report","openapi":"/api-reference/openapi.yaml get /api/v1/reports/{report_id}","href":"/api-reference/reports/get-report"},{"title":"Export report","deprecated":null,"version":null,"sidebarTitle":"Export report","openapi":"/api-reference/openapi.yaml post /api/v1/reports/{report_id}/export","href":"/api-reference/reports/export-report"},{"title":"Get report export","deprecated":null,"version":null,"sidebarTitle":"Get report export","openapi":"/api-reference/openapi.yaml get /api/v1/reports/exports/{export_id}","href":"/api-reference/reports/get-report-export"},{"title":"Download report export","deprecated":null,"version":null,"sidebarTitle":"Download report export","openapi":"/api-reference/openapi.yaml get /api/v1/reports/exports/{export_id}/download","href":"/api-reference/reports/download-report-export"},{"title":"Create report request","deprecated":null,"version":null,"sidebarTitle":"Create report request","openapi":"/api-reference/openapi.yaml post /api/v1/report-requests","href":"/api-reference/reports/create-report-request"},{"title":"Get report request","deprecated":null,"version":null,"sidebarTitle":"Get report request","openapi":"/api-reference/openapi.yaml get /api/v1/report-requests/{request_id}","href":"/api-reference/reports/get-report-request"},{"title":"Download report request 3D model","deprecated":null,"version":null,"sidebarTitle":"Download report request 3D model","openapi":"/api-reference/openapi.yaml get /api/v1/report-requests/{request_id}/render-3d","href":"/api-reference/reports/download-report-request-3d-model"}]},{"group":"Visualizer","pages":[{"title":"Create visualization","deprecated":null,"version":null,"sidebarTitle":"Create visualization","openapi":"/api-reference/openapi.yaml post /api/v1/visualizations","href":"/api-reference/visualizer/create-visualization"},{"title":"Get visualization","deprecated":null,"version":null,"sidebarTitle":"Get visualization","openapi":"/api-reference/openapi.yaml get /api/v1/visualizations/{visualization_id}","href":"/api-reference/visualizer/get-visualization"},{"title":"Generate visualization","deprecated":null,"version":null,"sidebarTitle":"Generate visualization","openapi":"/api-reference/openapi.yaml post /api/v1/visualizations/{visualization_id}/generate","href":"/api-reference/visualizer/generate-visualization"},{"title":"List session visualizations","deprecated":null,"version":null,"sidebarTitle":"List session visualizations","openapi":"/api-reference/openapi.yaml get /api/v1/sessions/{session_id}/visualizations","href":"/api-reference/visualizer/list-session-visualizations"},{"title":"Create share link","deprecated":null,"version":null,"sidebarTitle":"Create share link","openapi":"/api-reference/openapi.yaml post /api/v1/share-links","href":"/api-reference/visualizer/create-share-link"},{"title":"Get share link","description":"Public rate-limited read for a share-link token. This endpoint does not require a Partner API key.","deprecated":null,"version":null,"sidebarTitle":"Get share link","openapi":"/api-reference/openapi.yaml get /api/v1/share-links/{token}","href":"/api-reference/visualizer/get-share-link"},{"title":"Create upload session","deprecated":null,"version":null,"sidebarTitle":"Create upload session","openapi":"/api-reference/openapi.yaml post /api/v1/upload-sessions","href":"/api-reference/visualizer/create-upload-session"},{"title":"Get upload session","description":"Returns the status of a hosted upload session. `url` is present only while the session waits for its photo. After the upload, `visualization` carries the Sales Visualizer row. Its image fields are API paths that need the same API key, never storage URLs.\n","deprecated":null,"version":null,"sidebarTitle":"Get upload session","openapi":"/api-reference/openapi.yaml get /api/v1/upload-sessions/{upload_session_id}","href":"/api-reference/visualizer/get-upload-session"},{"title":"Get visualization image","deprecated":null,"version":null,"sidebarTitle":"Get visualization image","openapi":"/api-reference/openapi.yaml get /api/v1/visualizations/{visualization_id}/image","href":"/api-reference/visualizer/get-visualization-image"}]},{"group":"Budget Estimates","pages":[{"title":"Create budget estimate","deprecated":null,"version":null,"sidebarTitle":"Create budget estimate","openapi":"/api-reference/openapi.yaml post /api/v1/budget-estimates","href":"/api-reference/estimates/create-budget-estimate"},{"title":"Get budget estimate","deprecated":null,"version":null,"sidebarTitle":"Get budget estimate","openapi":"/api-reference/openapi.yaml get /api/v1/budget-estimates/{estimate_id}","href":"/api-reference/estimates/get-budget-estimate"}]},{"group":"Attribution","pages":[{"title":"List lead sources","deprecated":null,"version":null,"sidebarTitle":"List lead sources","openapi":"/api-reference/openapi.yaml get /api/v1/lead-sources","href":"/api-reference/attribution/list-lead-sources"},{"title":"Get lead source","deprecated":null,"version":null,"sidebarTitle":"Get lead source","openapi":"/api-reference/openapi.yaml get /api/v1/lead-sources/{source_id}","href":"/api-reference/attribution/get-lead-source"},{"title":"List campaigns","deprecated":null,"version":null,"sidebarTitle":"List campaigns","openapi":"/api-reference/openapi.yaml get /api/v1/campaigns","href":"/api-reference/attribution/list-campaigns"},{"title":"Get campaign metrics","deprecated":null,"version":null,"sidebarTitle":"Get campaign metrics","openapi":"/api-reference/openapi.yaml get /api/v1/campaigns/{campaign}/metrics","href":"/api-reference/attribution/get-campaign-metrics"},{"title":"Track page view","deprecated":null,"version":null,"sidebarTitle":"Track page view","openapi":"/api-reference/openapi.yaml post /api/v1/events/page-view","href":"/api-reference/attribution/track-page-view"},{"title":"Track form submission","deprecated":null,"version":null,"sidebarTitle":"Track form submission","openapi":"/api-reference/openapi.yaml post /api/v1/events/form-submission","href":"/api-reference/attribution/track-form-submission"}]},{"group":"Pipeline","pages":[{"title":"List pipeline stages","deprecated":null,"version":null,"sidebarTitle":"List pipeline stages","openapi":"/api-reference/openapi.yaml get /api/v1/pipeline/stages","href":"/api-reference/pipeline/list-pipeline-stages"}]},{"group":"Data Objects","pages":[{"title":"List objects","deprecated":null,"version":null,"sidebarTitle":"List objects","openapi":"/api-reference/openapi.yaml get /api/v1/objects","href":"/api-reference/objects/list-objects"},{"title":"Create object","deprecated":null,"version":null,"sidebarTitle":"Create object","openapi":"/api-reference/openapi.yaml post /api/v1/objects","href":"/api-reference/objects/create-object"},{"title":"List trashed objects","deprecated":null,"version":null,"sidebarTitle":"List trashed objects","openapi":"/api-reference/openapi.yaml get /api/v1/objects/trashed","href":"/api-reference/objects/list-trashed-objects"},{"title":"Get object","deprecated":null,"version":null,"sidebarTitle":"Get object","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}","href":"/api-reference/objects/get-object"},{"title":"Update object","deprecated":null,"version":null,"sidebarTitle":"Update object","openapi":"/api-reference/openapi.yaml patch /api/v1/objects/{object_id}","href":"/api-reference/objects/update-object"},{"title":"Get object schema","deprecated":null,"version":null,"sidebarTitle":"Get object schema","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/schema","href":"/api-reference/objects/get-object-schema"},{"title":"Save object schema","deprecated":null,"version":null,"sidebarTitle":"Save object schema","openapi":"/api-reference/openapi.yaml put /api/v1/objects/{object_id}/schema","href":"/api-reference/objects/save-object-schema"},{"title":"Archive object","deprecated":null,"version":null,"sidebarTitle":"Archive object","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/archive","href":"/api-reference/objects/archive-object"},{"title":"Restore object","deprecated":null,"version":null,"sidebarTitle":"Restore object","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/restore","href":"/api-reference/objects/restore-object"},{"title":"List object records","deprecated":null,"version":null,"sidebarTitle":"List object records","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/records","href":"/api-reference/objects/list-object-records"},{"title":"Create object record","deprecated":null,"version":null,"sidebarTitle":"Create object record","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/records","href":"/api-reference/objects/create-object-record"},{"title":"Get object record","deprecated":null,"version":null,"sidebarTitle":"Get object record","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/records/{record_id}","href":"/api-reference/objects/get-object-record"},{"title":"Patch object record","deprecated":null,"version":null,"sidebarTitle":"Patch object record","openapi":"/api-reference/openapi.yaml patch /api/v1/objects/{object_id}/records/{record_id}","href":"/api-reference/objects/patch-object-record"},{"title":"Archive object record","deprecated":null,"version":null,"sidebarTitle":"Archive object record","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/records/{record_id}/archive","href":"/api-reference/objects/archive-object-record"},{"title":"Restore object record","deprecated":null,"version":null,"sidebarTitle":"Restore object record","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/records/{record_id}/restore","href":"/api-reference/objects/restore-object-record"},{"title":"List inbound relationships","deprecated":null,"version":null,"sidebarTitle":"List inbound relationships","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/records/{record_id}/relationships","href":"/api-reference/objects/list-inbound-relationships"},{"title":"Link object records","deprecated":null,"version":null,"sidebarTitle":"Link object records","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/records/{record_id}/relationships","href":"/api-reference/objects/link-object-records"},{"title":"Search relation targets","deprecated":null,"version":null,"sidebarTitle":"Search relation targets","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/relation-targets","href":"/api-reference/objects/search-relation-targets"},{"title":"Export object records","deprecated":null,"version":null,"sidebarTitle":"Export object records","openapi":"/api-reference/openapi.yaml get /api/v1/objects/{object_id}/export","href":"/api-reference/objects/export-object-records"},{"title":"Import object records","deprecated":null,"version":null,"sidebarTitle":"Import object records","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/import","href":"/api-reference/objects/import-object-records"},{"title":"Save object view","deprecated":null,"version":null,"sidebarTitle":"Save object view","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/views","href":"/api-reference/objects/save-object-view"},{"title":"Archive object view","deprecated":null,"version":null,"sidebarTitle":"Archive object view","openapi":"/api-reference/openapi.yaml post /api/v1/objects/{object_id}/views/{view_id}/archive","href":"/api-reference/objects/archive-object-view"},{"title":"Unlink object records","deprecated":null,"version":null,"sidebarTitle":"Unlink object records","openapi":"/api-reference/openapi.yaml delete /api/v1/relationships/{relationship_id}","href":"/api-reference/objects/unlink-object-records"}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp-server"}]}]},{"language":"es","navbar":{"primary":{"type":"button","label":"Abrir RoofKit","href":"https://app.roofkit.ai"}},"pages":[{"title":"es","href":"/es/api-reference/visualizer/create-upload-session"}]}]},"basePath":"","title":"Create upload session - RoofKit Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}