{
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred. Please try again or contact support with request ID."
}
}
Submit analysis
Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/ or subscribe to the analysis.completed webhook event.
Unique key for idempotent requests. If a request with the same key was already processed within the last 24 hours, the cached response is returned with X-Idempotent-Replayed: true.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Shelfforce API","colors":{"primary":"#dc2626","light":"#ef4444","dark":"#dc2626"},"logo":{"light":"https://mintcdn.com/shelfforce/hxVYQHTgkbO4VYV8/logo/light.svg?fit=max\u0026auto=format\u0026n=hxVYQHTgkbO4VYV8\u0026q=85\u0026s=46a8bb12d9da8a596dbcfb7bc5fc0f98","dark":"https://mintcdn.com/shelfforce/hxVYQHTgkbO4VYV8/logo/dark.svg?fit=max\u0026auto=format\u0026n=hxVYQHTgkbO4VYV8\u0026q=85\u0026s=a3a1dc5804efddbd9225c70123e79844"},"favicon":"https://mintcdn.com/shelfforce/DGtDNLOtiWQ9Xnyc/favicon.png?fit=max\u0026auto=format\u0026n=DGtDNLOtiWQ9Xnyc\u0026q=85\u0026s=ca95626cbf73537c6d822f38dab70bda","api":{"playground":{}},"appearance":{"default":"dark","strict":true},"navbar":{"links":[{"href":"mailto:hey@shelfforce.ai","label":"Contact Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://shelfforce.ai/home"}},"search":{"prompt":"Search docs..."},"seo":{"indexing":"all"},"fonts":{"family":"Inter","format":"woff2"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"https://docs.shelfforce.ai/api-reference"},{"anchor":"CLI","icon":"terminal","href":"https://docs.shelfforce.ai/guides/cli"},{"anchor":"Blog","icon":"newspaper","href":"https://shelfforce.ai/resources"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shelfforce","hasAudioNarration":false,"actualSubdomain":"shelfforce","customDomains":["docs.shelfforce.ai"],"gitSource":{"type":"github","owner":"zacrafidi","repo":"shelfie","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21eba1a18e429295671cdd","collectionId":"4545d855-9595-4739-814f-d3bb8d6172e7","schemaVersion":"v2"},"entitlements":{},"buildId":"6ae9485600312e79e6171ff8:success","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":48},{"language":"default","tag":"Docs","count":12},{"language":"default","tag":"Webhooks","count":8},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Accounts","count":5},{"language":"default","tag":"Analyses","count":5},{"language":"default","tag":"Inventory","count":5},{"language":"default","tag":"Orders","count":5},{"language":"default","tag":"Tasks","count":5},{"language":"default","tag":"Core Concepts","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"global.css","content":"[data-ask-ai-button]{display:none!important}[data-search-button]{background-color:rgba(255, 255, 255, 0.08)!important;border:1px solid rgba(255, 255, 255, 0.12)!important;color:rgba(255, 255, 255, 0.7)!important}[data-search-button]:hover{background-color:rgba(255, 255, 255, 0.12)!important}[data-eyebrow],[data-breadcrumbs],[data-breadcrumb],.eyebrow,.breadcrumb,.breadcrumbs,nav[aria-label=\"breadcrumb\"],nav[aria-label=\"breadcrumb\"] *,[class*=\"eyebrow\"],[class*=\"breadcrumb\"],[class*=\"Eyebrow\"],[class*=\"Breadcrumb\"]{text-transform:uppercase!important;color:#ef4444!important;font-weight:500!important;letter-spacing:0.05em!important}"}],"page":{"pagePath":"api-reference/analyses/submit-analysis","slug":"/api-reference/analyses/submit-analysis","pageMetadata":{"title":"Submit analysis","description":"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the `analysis.completed` webhook event.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/analyses","href":"/api-reference/analyses/submit-analysis","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: [\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/\", \" or subscribe to the \", _jsx(_components.code, {\n children: \"analysis.completed\"\n }), \" webhook event.\"]\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":"Submit analysis","description":"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the `analysis.completed` webhook event.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/analyses","href":"/api-reference/analyses/submit-analysis","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createAnalysis","summary":"Submit analysis","description":"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the `analysis.completed` webhook event.","x-agent-description":"Submit a shelf photo URL for AI analysis. Returns a processing ID you can poll for results. Costs 1 credit.","tags":["Analyses"],"parameters":["2341f455-0619-4c03-98ea-4df084d167c6"],"requestBody":"2319e28b-c66d-4f48-9866-8db6c2d69284","responses":{"202":"59f44e01-23c7-498d-b191-ce7113693944","401":"a83d5582-6442-41a5-9672-d36a8fc83c08","402":"4e313ee5-f8c5-4c19-a9fe-18493e9684ac","422":"c7a6ed58-d1fa-42ec-bf1d-0792ad65e81e","429":"776a9c8a-3eaa-4eaf-9d02-e080cd95a782","500":"15bfe8e7-08dc-4d6d-b5e3-31d2d72bcc93"},"method":"post","type":"path","servers":["863f7115-8105-40f5-ab32-68719f008873"],"security":["3226f626-8449-4ff8-a9da-0d4f5c3bce68"],"path":"/api/v1/analyses","baseUrlOptions":["https://shelfforce.ai"],"title":"Submit analysis","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2341f455-0619-4c03-98ea-4df084d167c6":{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key for idempotent requests. If a request with the same key was already processed within the last 24 hours, the cached response is returned with `X-Idempotent-Replayed: true`.","schema":{"type":"string","examples":["idk_550e8400-e29b-41d4-a716-446655440000"],"isRequired":false,"description":"Unique key for idempotent requests. If a request with the same key was already processed within the last 24 hours, the cached response is returned with `X-Idempotent-Replayed: true`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["imageUrl"],"properties":{"imageUrl":{"type":"string","format":"uri","description":"Publicly-accessible URL of the shelf image to analyse.","examples":["https://cdn.example.com/shelf-photo-001.jpg"],"isRequired":true,"uniqueKey":"imageUrl","typeLabel":"string\u003curi>"},"placeId":{"type":"string","description":"Optional Shelfforce place ID to associate with this analysis.","examples":["pl_abc123"],"uniqueKey":"placeId","typeLabel":"string"},"taskId":{"type":"string","description":"Optional Shelfforce task ID to associate with this analysis.","examples":["tsk_xyz789"],"uniqueKey":"taskId","typeLabel":"string"},"externalId":{"type":"string","description":"Your own reference ID (e.g., customer ID, campaign ID). Returned in responses and webhook/callback payloads.","examples":["customer-123"],"uniqueKey":"externalId","typeLabel":"string"},"metadata":{"type":"object","description":"Arbitrary key-value pairs (max 10 keys, string values, 500 chars each). Returned in responses and webhook/callback payloads.","additionalProperties":{"type":"string","maxLength":500,"uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"maxProperties":10,"examples":[{"store":"store-42","aisle":"3"}],"uniqueKey":"metadata","typeLabel":"object"},"callbackUrl":{"type":"string","format":"uri","description":"HTTPS URL to receive a signed POST when this analysis completes or fails. A `callbackSecret` is returned in the response for signature verification.","examples":["https://your-app.com/callbacks/shelfforce"],"uniqueKey":"callbackUrl","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"imageUrl":"https://cdn.example.com/shelf-photo-001.jpg","placeId":"pl_abc123","taskId":"tsk_xyz789","externalId":"customer-123","metadata":{"store":"store-42","aisle":"3"},"callbackUrl":"https://your-app.com/callbacks/shelfforce"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"59f44e01-23c7-498d-b191-ce7113693944":{"description":"Analysis accepted and queued for processing.","headers":{"X-RateLimit-Limit":{"description":"Maximum number of requests allowed in the current 60-second window.","schema":{"type":"integer","examples":[120]}},"X-RateLimit-Remaining":{"description":"Number of requests remaining in the current window.","schema":{"type":"integer","examples":[117]}},"X-RateLimit-Reset":{"description":"Unix timestamp (seconds) when the current rate-limit window resets.","schema":{"type":"integer","examples":[1740300060]}},"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","createdAt"],"properties":{"id":{"type":"string","examples":["an_g7h8j9k0"],"isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"status":{"type":"string","const":"processing","examples":["processing"],"isRequired":true,"uniqueKey":"data.status","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","examples":["2026-02-23T10:30:00Z"],"isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"externalId":{"type":"string","description":"Echoed back when provided in the request.","examples":["customer-123"],"uniqueKey":"data.externalId","typeLabel":"string"},"callbackSecret":{"type":"string","description":"HMAC signing secret for verifying callback deliveries. Only present when `callbackUrl` was provided. Shown once.","examples":["a1b2c3d4e5f6..."],"uniqueKey":"data.callbackSecret","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"id":"an_g7h8j9k0","status":"processing","createdAt":"2026-02-23T10:30:00Z","externalId":"customer-123","callbackSecret":"a1b2c3d4e5f6..."}}}},"exampleType":"generated"}},"exampleType":"generated"},"a83d5582-6442-41a5-9672-d36a8fc83c08":{"description":"Authentication failed. Provide a valid API key as a Bearer token.","headers":{"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["AUTH_REQUIRED","INVALID_API_KEY"],"examples":["INVALID_API_KEY"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","examples":["The provided API key is invalid or has been revoked."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_API_KEY","message":"The provided API key is invalid or has been revoked."}}}},"exampleType":"generated"}},"exampleType":"generated"},"4e313ee5-f8c5-4c19-a9fe-18493e9684ac":{"description":"Not enough credits to complete the request.","headers":{"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","details"],"properties":{"code":{"type":"string","const":"INSUFFICIENT_CREDITS","examples":["INSUFFICIENT_CREDITS"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","examples":["You need 3 credits but only have 1 remaining."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","required":["creditsRequired","creditsRemaining"],"properties":{"creditsRequired":{"type":"integer","examples":[3],"isRequired":true,"uniqueKey":"error.details.creditsRequired","typeLabel":"integer"},"creditsRemaining":{"type":"integer","examples":[1],"isRequired":true,"uniqueKey":"error.details.creditsRemaining","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INSUFFICIENT_CREDITS","message":"You need 3 credits but only have 1 remaining.","details":{"creditsRequired":3,"creditsRemaining":1}}}}},"exampleType":"generated"}},"exampleType":"generated"},"c7a6ed58-d1fa-42ec-bf1d-0792ad65e81e":{"description":"Request body or query parameters failed validation.","headers":{"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"VALIDATION_FAILED","examples":["VALIDATION_FAILED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","examples":["The 'imageUrl' field must be a valid URL."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"The 'imageUrl' field must be a valid URL."}}}},"exampleType":"generated"}},"exampleType":"generated"},"776a9c8a-3eaa-4eaf-9d02-e080cd95a782":{"description":"Too many requests. Wait until the rate-limit window resets.","headers":{"Retry-After":{"description":"Seconds until the rate-limit window resets.","schema":{"type":"integer","examples":[12]}},"X-RateLimit-Limit":{"description":"Maximum number of requests allowed in the current 60-second window.","schema":{"type":"integer","examples":[120]}},"X-RateLimit-Remaining":{"description":"Number of requests remaining in the current window.","schema":{"type":"integer","examples":[117]}},"X-RateLimit-Reset":{"description":"Unix timestamp (seconds) when the current rate-limit window resets.","schema":{"type":"integer","examples":[1740300060]}},"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"RATE_LIMITED","examples":["RATE_LIMITED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","examples":["Rate limit exceeded. Retry after 12 seconds."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMITED","message":"Rate limit exceeded. Retry after 12 seconds."}}}},"exampleType":"generated"}},"exampleType":"generated"},"15bfe8e7-08dc-4d6d-b5e3-31d2d72bcc93":{"description":"An unexpected server error occurred.","headers":{"X-Request-Id":{"description":"Unique identifier for this request. Include in support tickets.","schema":{"type":"string","format":"uuid","examples":["550e8400-e29b-41d4-a716-446655440000"]}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","const":"INTERNAL_ERROR","examples":["INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","examples":["An unexpected error occurred. Please try again or contact support with request ID."],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_ERROR","message":"An unexpected error occurred. Please try again or contact support with request ID."}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"3226f626-8449-4ff8-a9da-0d4f5c3bce68":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key with `sf_live_` prefix. Pass as `Authorization: Bearer sf_live_...`","scopes":[]}}},"servers":{"863f7115-8105-40f5-ab32-68719f008873":{"url":"https://shelfforce.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key with `sf_live_` prefix. Pass as `Authorization: Bearer sf_live_...`","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key with `sf_live_` prefix. Pass as `Authorization: Bearer sf_live_...`","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"shelfforce","siteName":"Shelfforce API","title":"Submit analysis - Shelfforce API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-15T04:25:01.032Z","originalFileLocation":"api-reference/analyses/submit-analysis.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the analysis.completed webhook event.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Shelfforce 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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_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/shelfforce/fLtIwk3EIGTuRtlv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit analysis - Shelfforce API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the analysis.completed webhook event.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Shelfforce API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shelfforce.mintlify.app/_mintlify/api/og/v2?division=Analyses\u0026amp;title=Submit+analysis\u0026amp;description=Submits+a+single+image+URL+for+AI-powered+shelf+analysis.+Consumes+1+credit.+The+analysis+runs+asynchronously%3B+poll+GET+%2Fapi%2Fv1%2Fanalyses%2F%7Bid%7D+or+subscribe+to+th\u0026amp;theme=c62c61f79a9ca4402c2d0568\u0026amp;signature=f9dee39226c1011bc31e1229ea3977ccb5fc87d9e6199792b64688f7c42a563c\">\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=\"Submit analysis - Shelfforce API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the analysis.completed webhook event.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shelfforce.mintlify.app/_mintlify/api/og/v2?division=Analyses\u0026amp;title=Submit+analysis\u0026amp;description=Submits+a+single+image+URL+for+AI-powered+shelf+analysis.+Consumes+1+credit.+The+analysis+runs+asynchronously%3B+poll+GET+%2Fapi%2Fv1%2Fanalyses%2F%7Bid%7D+or+subscribe+to+th\u0026amp;theme=c62c61f79a9ca4402c2d0568\u0026amp;signature=f9dee39226c1011bc31e1229ea3977ccb5fc87d9e6199792b64688f7c42a563c\">\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/shelfforce/fLtIwk3EIGTuRtlv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Shelfforce API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#dc2626\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/analyses/submit-analysis.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.shelfforce.ai/#organization\",\"name\":\"Shelfforce API\",\"url\":\"https://docs.shelfforce.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/shelfforce/hxVYQHTgkbO4VYV8/logo/light.svg?fit=max\u0026auto=format\u0026n=hxVYQHTgkbO4VYV8\u0026q=85\u0026s=46a8bb12d9da8a596dbcfb7bc5fc0f98\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shelfforce.ai#website\",\"name\":\"Shelfforce API\",\"url\":\"https://docs.shelfforce.ai\",\"publisher\":{\"@id\":\"https://docs.shelfforce.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis#webpage\",\"url\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis\",\"name\":\"Submit analysis\",\"description\":\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the analysis.completed webhook event.\",\"dateModified\":\"2026-04-15T04:25:01.032Z\",\"isPartOf\":{\"@id\":\"https://docs.shelfforce.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Analyses\",\"item\":\"https://docs.shelfforce.ai/api-reference/analyses/list-analyses\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit analysis\",\"item\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis#apireference\",\"headline\":\"Submit analysis\",\"name\":\"Submit analysis\",\"description\":\"Submits a single image URL for AI-powered shelf analysis. Consumes 1 credit. The analysis runs asynchronously; poll GET /api/v1/analyses/{id} or subscribe to the analysis.completed webhook event.\",\"url\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shelfforce.ai/api-reference/analyses/submit-analysis#webpage\"},\"dateModified\":\"2026-04-15T04:25:01.032Z\",\"publisher\":{\"@id\":\"https://docs.shelfforce.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shelfforce.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Shelfforce API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Shelfforce API","nav":{"global":{"anchors":[{"anchor":"API Reference","icon":"code","href":"https://docs.shelfforce.ai/api-reference"},{"anchor":"CLI","icon":"terminal","href":"https://docs.shelfforce.ai/guides/cli"},{"anchor":"Blog","icon":"newspaper","href":"https://shelfforce.ai/resources"}]},"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":""}]},{"tab":"API Reference","groups":[{"group":"Analyses","pages":[{"title":"List analyses","description":"Returns a paginated list of analyses for your organisation. Filter by status, externalId, or placeId.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analyses","href":"/api-reference/analyses/list-analyses"},{"title":"Submit analysis","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/analyses","href":"/api-reference/analyses/submit-analysis"},{"title":"Get analysis","description":"Retrieves the current state and results of a shelf analysis. While `status` is `processing`, the `products` array may be empty or partial. Once `completed`, all detected products are included.","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/analyses/{id}","href":"/api-reference/analyses/get-analysis"},{"title":"Batch submit","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/analyses/batch","href":"/api-reference/analyses/batch-submit"},{"title":"Get upload URL","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/upload-url","href":"/api-reference/analyses/get-upload-url"}]},{"group":"Products","pages":[{"title":"List products","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/products","href":"/api-reference/products/list-products"}]},{"group":"Places","pages":[{"title":"List places","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/places","href":"/api-reference/places/list-places"},{"title":"Create a place","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/places","href":"/api-reference/places/create-a-place"},{"title":"Get place","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/places/{id}","href":"/api-reference/places/get-place"},{"title":"Delete place","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/places/{id}","href":"/api-reference/places/delete-place"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Create a task","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/tasks","href":"/api-reference/tasks/create-a-task"},{"title":"Get task","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/tasks/{id}","href":"/api-reference/tasks/get-task"},{"title":"Delete task","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/tasks/{id}","href":"/api-reference/tasks/delete-task"},{"title":"Update task","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/tasks/{id}","href":"/api-reference/tasks/update-task"}]},{"group":"Inventory","pages":[{"title":"List inventory","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/inventory","href":"/api-reference/inventory/list-inventory"},{"title":"Create inventory","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/inventory","href":"/api-reference/inventory/create-inventory"},{"title":"Get inventory","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/inventory/{id}","href":"/api-reference/inventory/get-inventory"},{"title":"Delete inventory item","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/inventory/{id}","href":"/api-reference/inventory/delete-inventory-item"},{"title":"Update inventory","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/inventory/{id}","href":"/api-reference/inventory/update-inventory"}]},{"group":"Reports","pages":[{"title":"Share of shelf","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/reports/share-of-shelf","href":"/api-reference/reports/share-of-shelf"},{"title":"Store performance","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/reports/store-performance","href":"/api-reference/reports/store-performance"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Register webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/webhooks","href":"/api-reference/webhooks/register-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Analysis completed","version":null,"deprecated":null,"openapi":"/openapi.json webhook analysis.completed","href":"/api-reference/webhooks/analysis-completed"},{"title":"Analysis failed","version":null,"deprecated":null,"openapi":"/openapi.json webhook analysis.failed","href":"/api-reference/webhooks/analysis-failed"},{"title":"Task created","version":null,"deprecated":null,"openapi":"/openapi.json webhook task.created","href":"/api-reference/webhooks/task-created"},{"title":"Task completed","version":null,"deprecated":null,"openapi":"/openapi.json webhook task.completed","href":"/api-reference/webhooks/task-completed"},{"title":"Task updated","version":null,"deprecated":null,"openapi":"/openapi.json webhook task.updated","href":"/api-reference/webhooks/task-updated"}]},{"group":"Usage","pages":[{"title":"Get usage","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/usage","href":"/api-reference/usage/get-usage"}]},{"group":"Orders","pages":[{"title":"List orders","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders","href":"/api-reference/orders/list-orders"},{"title":"Create order","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/orders","href":"/api-reference/orders/create-order"},{"title":"Get order","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/orders/{id}","href":"/api-reference/orders/get-order"},{"title":"Delete order","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/orders/{id}","href":"/api-reference/orders/delete-order"},{"title":"Update order","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/orders/{id}","href":"/api-reference/orders/update-order"}]},{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/accounts","href":"/api-reference/accounts/list-accounts"},{"title":"Create account","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/accounts","href":"/api-reference/accounts/create-account"},{"title":"Get account","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/accounts/{id}","href":"/api-reference/accounts/get-account"},{"title":"Delete account","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/accounts/{id}","href":"/api-reference/accounts/delete-account"},{"title":"Update account","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/accounts/{id}","href":"/api-reference/accounts/update-account"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Get alert","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/alerts/{id}","href":"/api-reference/alerts/get-alert"},{"title":"Update alert status","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/alerts/{id}","href":"/api-reference/alerts/update-alert-status"}]},{"group":"Members","pages":[{"title":"List members","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/members","href":"/api-reference/members/list-members"},{"title":"Invite member","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/members/invite","href":"/api-reference/members/invite-member"},{"title":"Remove member","deprecated":null,"version":null,"openapi":"/openapi.json delete /api/v1/members/{userId}","href":"/api-reference/members/remove-member"},{"title":"Update member","deprecated":null,"version":null,"openapi":"/openapi.json patch /api/v1/members/{userId}","href":"/api-reference/members/update-member"}]}]}]},"basePath":"","title":"Submit analysis - Shelfforce API","buildId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","deploymentId":"dpl_GZsjphRpnhWkstV12jxWNcMHFyox","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B5zPa4Vr.js","utils-CVjrr8Yd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DTgURWzl.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DxTHtkdZ.js","snippetPresets-Cx47o5Vx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-4Fr6y9N_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dq2ElbEk.js","shallow-BfYl9r69.js","getApiPlaygroundDisplay-Ch3xc7i1.js","CodeSnippet-BsBxuJ1v.js","CodeSnippets-CetzeDL8.js","Page-CYZot51e.js","getPastedJson-BxPKFSJx.js","icon-o0J1Ochb.js","MethodPill-Du3usO5m.js","DuplicateIcon-DJypyMzl.js","createIcon-YMA6N8KJ.js","DynamicMarkdown-CWvhfcZc.js","SectionHeading-BdLVaXCd.js","axios-vUo_bRtp.js","Markdown-C4Ez6OeV.js","clsx-DptzKFCt.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Dt1IougW.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CZ6Wt2Vb.js"]}