Workspace identity, the caller’s role, remaining shared project quota, and one page of the workspace’s client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.
GET
/
api
/
agent
/
agency
Get the Agency workspace
curl --request GET \ --url https://preuve.ai/api/agent/agency \ --header 'x-preuve-key: <api-key>'
Eligibility, not live availability. True only when the role may run scans, the workspace is approved, billing setup is done, and quota remains. It does not read the service kill switch, the LLM pause or the rate limiters, so a start can still answer 503 or 429 while this is true. None of those refusals spends a project credit.
One page of the workspace's client reports, newest first, including ones created in the Agency dashboard. Same shape and paging as /api/agent/agency/reports.
Offset of the next page of reports, or null on the last page.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Preuve AI Developers","description":"Validate startup ideas from Claude, Cursor, or Codex. Viability score, competitors, source-linked evidence.","colors":{"primary":"#ea580c","light":"#f97316","dark":"#ea580c"},"logo":{"light":"https://mintcdn.com/preuve-ai/jZodzg3khCalFU2b/logo/dark.svg?fit=max\u0026auto=format\u0026n=jZodzg3khCalFU2b\u0026q=85\u0026s=e5e818b7a52b31b8d49949427aa2921e","dark":"https://mintcdn.com/preuve-ai/jZodzg3khCalFU2b/logo/light.svg?fit=max\u0026auto=format\u0026n=jZodzg3khCalFU2b\u0026q=85\u0026s=d9c1ae471ba09c9b047d4421f0296d4c","href":"https://preuve.ai"},"favicon":"https://mintcdn.com/preuve-ai/jZodzg3khCalFU2b/favicon.svg?fit=max\u0026auto=format\u0026n=jZodzg3khCalFU2b\u0026q=85\u0026s=bcff624580bc3ba18ad4ae414e22a998","appearance":{"default":"light"},"background":{"color":{"light":"#ffffff","dark":"#09090b"}},"navbar":{"links":[{"href":"https://preuve.ai","label":"preuve.ai"}],"primary":{"type":"button","label":"Get API key","href":"https://preuve.ai/app?settings=apiKeys"}},"footer":{"socials":{"x":"https://x.com/VincentBuilds","website":"https://preuve.ai"}},"seo":{"metatags":{"og:site_name":"Preuve AI Developers"}},"integrations":{"posthog":{"apiKey":"phc_n0wxSs3oUf8AS0VLFb0YpqyX7oLbTtwEYHg0oH35aOE","sessionRecording":false}},"contextual":{"options":["copy","chatgpt","claude","perplexity",{"title":"Validate an idea","description":"Run a free starter scan on preuve.ai","icon":"play","href":"https://preuve.ai/app"}],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"preuve-ai","hasAudioNarration":false,"actualSubdomain":"preuve-ai","customDomains":["docs.preuve.ai"],"gitSource":{"type":"github","owner":"vxncxnx","repo":"startup-viability-analyzer","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"82f72e53-511c-407c-8e81-8ba4eab344f4","liveDeploymentHistoryId":"6ada1ce5f7b413b0bdc35e9c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ada1ce5f7b413b0bdc35e9c"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ada1ce5f7b413b0bdc35e9c","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":16},{"language":"default","tag":"Endpoints","count":14},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"Agency","count":5},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"Concepts","count":4},{"language":"default","tag":"Analyses","count":4},{"language":"default","tag":"Batches","count":3},{"language":"default","tag":"For agents","count":2},{"language":"default","tag":"Discovery","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/agency/get-the-agency-workspace","slug":"/api-reference/agency/get-the-agency-workspace","pageMetadata":{"title":"Get the Agency workspace","description":"Workspace identity, the caller's role, remaining shared project quota, and one page of the workspace's client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency","href":"/api-reference/agency/get-the-agency-workspace","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Workspace identity, the caller’s role, remaining shared project quota, and one page of the workspace’s client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\"\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":"Get the Agency workspace","description":"Workspace identity, the caller's role, remaining shared project quota, and one page of the workspace's client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency","href":"/api-reference/agency/get-the-agency-workspace","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getAgency","summary":"Get the Agency workspace","description":"Workspace identity, the caller's role, remaining shared project quota, and one page of the workspace's client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\n","tags":["Agency"],"parameters":["5a868998-2e5a-4c19-aae8-f545c173e4f5","31490c81-8dfb-4394-b02c-9e79cc6f4f35"],"responses":{"200":"82d359ed-a47e-400d-9684-6c6bbebd3005","400":"7327f7e4-17fc-4644-87e2-172c41759b3f","401":"ac6061f3-18b4-4a60-a8e8-54542d49a6b4","403":"6bb4ea15-ee09-4c77-9252-87934fbb6c1a","404":"cba311fd-aa11-4771-ab8d-1a6544bf513a","429":"c2a22500-054e-4e4c-9b16-874f07865757","500":"90b6c5c6-2980-45e6-acb4-fcfeb9261785","503":"73e109d4-cb02-4306-9ef8-2b7c2d05713e"},"method":"get","type":"path","servers":["f9be8054-8913-4c4c-b6e1-331d7310687c"],"security":["0db0e66f-11c3-47e4-a1a3-15a606751a88"],"path":"/api/agent/agency","baseUrlOptions":["https://preuve.ai"],"title":"Get the Agency workspace","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5a868998-2e5a-4c19-aae8-f545c173e4f5":{"name":"limit","in":"query","required":false,"description":"Client reports to return in the reports array.","schema":{"type":"integer","minimum":1,"maximum":50,"default":20,"isRequired":false,"description":"Client reports to return in the reports array.","uniqueKey":"","typeLabel":"integer"}},"31490c81-8dfb-4394-b02c-9e79cc6f4f35":{"name":"offset","in":"query","required":false,"description":"Paging offset into the reports array.","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0,"isRequired":false,"description":"Paging offset into the reports array.","uniqueKey":"","typeLabel":"integer"}}},"responses":{"82d359ed-a47e-400d-9684-6c6bbebd3005":{"description":"Workspace, role, quota, and one page of client reports.","content":{"application/json":{"schema":{"type":"object","properties":{"agency":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"agency.id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"agency.name","typeLabel":"string"},"role":{"type":"string","description":"The calling account's role in the workspace.","uniqueKey":"agency.role","typeLabel":"string"}},"uniqueKey":"agency","typeLabel":"object"},"quota":{"type":"object","description":"Shared project quota for the workspace, same pool as the dashboard.","properties":{"plan":{"type":"string","uniqueKey":"quota.plan","typeLabel":"string"},"isActiveSubscription":{"type":"boolean","uniqueKey":"quota.isActiveSubscription","typeLabel":"boolean"},"trialLimit":{"type":"integer","uniqueKey":"quota.trialLimit","typeLabel":"integer"},"trialUsed":{"type":"integer","uniqueKey":"quota.trialUsed","typeLabel":"integer"},"trialExpired":{"type":"boolean","uniqueKey":"quota.trialExpired","typeLabel":"boolean"},"delinquent":{"type":"boolean","uniqueKey":"quota.delinquent","typeLabel":"boolean"},"monthlyLimit":{"type":"integer","uniqueKey":"quota.monthlyLimit","typeLabel":"integer"},"monthlyUsed":{"type":"integer","uniqueKey":"quota.monthlyUsed","typeLabel":"integer"},"monthlyRemaining":{"type":"integer","uniqueKey":"quota.monthlyRemaining","typeLabel":"integer"},"topupRemaining":{"type":"integer","uniqueKey":"quota.topupRemaining","typeLabel":"integer"},"totalRemaining":{"type":"integer","uniqueKey":"quota.totalRemaining","typeLabel":"integer"},"requiresPaymentSetup":{"type":"boolean","uniqueKey":"quota.requiresPaymentSetup","typeLabel":"boolean"},"canScan":{"type":"boolean","uniqueKey":"quota.canScan","typeLabel":"boolean"},"nextResetAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"quota.nextResetAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"quota.nextResetAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"quota.nextResetAt","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"quota","typeLabel":"object"},"canRunScan":{"type":"boolean","description":"Eligibility, not live availability. True only when the role may run scans, the workspace is approved, billing setup is done, and quota remains. It does not read the service kill switch, the LLM pause or the rate limiters, so a start can still answer 503 or 429 while this is true. None of those refusals spends a project credit.\n","uniqueKey":"canRunScan","typeLabel":"boolean"},"reports":{"type":"array","description":"One page of the workspace's client reports, newest first, including ones created in the Agency dashboard. Same shape and paging as /api/agent/agency/reports.\n","items":{"type":"object","description":"One client report in the workspace, without its payload.","properties":{"reportId":{"type":"string","uniqueKey":"reports.items.[INDEX].reportId","typeLabel":"string"},"title":{"oneOf":[{"type":"string","uniqueKey":"reports.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"reports.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"uniqueKey":"reports.items.[INDEX].title","typeLabel":"string | null"},"status":{"type":"string","uniqueKey":"reports.items.[INDEX].status","typeLabel":"string"},"scanType":{"type":"string","enum":["starter","deep"],"uniqueKey":"reports.items.[INDEX].scanType","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"reports.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"reportUrl":{"type":"string","format":"uri","uniqueKey":"reports.items.[INDEX].reportUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"reports.items.[INDEX]","typeLabel":"object"},"uniqueKey":"reports","typeLabel":"object[]"},"nextOffset":{"oneOf":[{"type":"integer","description":"Offset of the next page of reports, or null on the last page.\n","uniqueKey":"nextOffset.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Offset of the next page of reports, or null on the last page.\n","uniqueKey":"nextOffset.oneOf.1","typeLabel":"null"}],"uniqueKey":"nextOffset","typeLabel":"integer | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agency":{"id":"\u003cstring>","name":"\u003cstring>","role":"\u003cstring>"},"quota":{"plan":"\u003cstring>","isActiveSubscription":true,"trialLimit":123,"trialUsed":123,"trialExpired":true,"delinquent":true,"monthlyLimit":123,"monthlyUsed":123,"monthlyRemaining":123,"topupRemaining":123,"totalRemaining":123,"requiresPaymentSetup":true,"canScan":true,"nextResetAt":"2023-11-07T05:31:56Z"},"canRunScan":true,"reports":[{"reportId":"\u003cstring>","title":"\u003cstring>","status":"\u003cstring>","scanType":"starter","createdAt":"2023-11-07T05:31:56Z","reportUrl":"\u003cstring>"}],"nextOffset":123}}},"exampleType":"generated"}},"exampleType":"generated"},"7327f7e4-17fc-4644-87e2-172c41759b3f":{"description":"limit must be 1-50 and offset 0-10000 (INVALID_PAGINATION).","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"ac6061f3-18b4-4a60-a8e8-54542d49a6b4":{"description":"Missing x-preuve-key header (MISSING_API_KEY), or a malformed, unknown or revoked key (INVALID_AGENT_KEY - the same envelope for all three, on purpose). Repeated failures are throttled per IP and answer 429.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6bb4ea15-ee09-4c77-9252-87934fbb6c1a":{"description":"Key does not carry agency:read (INSUFFICIENT_SCOPE) or the account is suspended (ACCOUNT_SUSPENDED). agency:write does not imply it. Keys created before 2026-09-09 predate both Agency scopes and always fail this check - see the AgencyInsufficientScope response for the recovery and the condition on each of its two routes.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"cba311fd-aa11-4771-ab8d-1a6544bf513a":{"description":"No Agency workspace on this account, or workspace membership was removed (AGENCY_NOT_FOUND). Membership is resolved live on every call.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c2a22500-054e-4e4c-9b16-874f07865757":{"description":"Rate limited (RATE_LIMITED or DAILY_LIMIT_REACHED). RATE_LIMITED carries a Retry-After header with the seconds until the window resets; the quota-shaped codes clear on a different clock and put resetAt in the body instead.\n","headers":{"Retry-After":{"description":"Seconds until the per-minute window resets (RATE_LIMITED only).","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"90b6c5c6-2980-45e6-acb4-fcfeb9261785":{"description":"Unexpected server error (INTERNAL_ERROR, or TRIGGER_DISPATCH_FAILED when a deep scan could not be handed to the job runner). Never tell the user their quota is safe: on a deep scan the spend can already have happened when the failure hit, and an ambiguous dispatch deliberately keeps the report and its funding because the job may have been accepted before its response was lost. Treat consumption as unknown and retry with backoff. On an operation that takes a clientRunId, retry with the SAME one - that reconciles the original run, whatever state it reached, instead of starting and charging for a second one. On every other operation there is nothing to reconcile: the read or export simply failed, so a plain backed-off retry is the whole recovery.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"73e109d4-cb02-4306-9ef8-2b7c2d05713e":{"description":"A dependency was unavailable or deliberately paused (SERVICE_DISABLED, LLM_PAUSED, PROFILE_LOOKUP_FAILED, and the fail-closed answer when the rate-limit backend is down). Any authenticated route can answer this one: authentication meters itself through the same fail-closed limiter, so an outage there refuses the request before the handler runs. Retryable, and no paid quota, tokens, or scans were consumed - a pause that lands mid-run refunds the claim it had already made. Back off and try again rather than falling back to a different endpoint.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"description":"Every error, on every route, unknown paths included. Some codes add top-level context fields (limit, tokenBalance, resetAt, upsell, ...); a 404 NOT_FOUND on an unknown route adds details.discovery, details.openapi and details.docs so the caller can recover.\n","properties":{"error":{"type":"string","description":"Human-readable message. Prose; it changes.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable code. Branch on this.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"details":{"oneOf":[{"type":"object","description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","additionalProperties":true,"uniqueKey":"details.oneOf.0","typeLabel":"object"},{"type":"array","items":{"type":"string","uniqueKey":"details.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Optional context. An object on most codes (limits, recovery links, the method and path of a 404); an array of strings where the route forwards a validator's messages, as enrich does on INVALID_FOUNDER_PROFILE. Read it, never branch on it - `code` is the contract.\n","uniqueKey":"details.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"details","typeLabel":"object | string[]"},"limit":{"type":"integer","description":"The ceiling that was hit, in the unit the code implies: bytes on PAYLOAD_TOO_LARGE, runs in flight on CONCURRENT_LIMIT_REACHED, requests in the window on a rate limit.\n","uniqueKey":"limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests left in the current window.","uniqueKey":"remaining","typeLabel":"integer"},"resetAt":{"type":"string","format":"date-time","description":"When the window that refused this request reopens. Present on DAILY_LIMIT_REACHED from run creation (the idea generator's rolling ceiling sends only limit); prefer it over the Retry-After header when both are present, since it is absolute.\n","uniqueKey":"resetAt","typeLabel":"string\u003cdate-time>"},"tokenBalance":{"type":"integer","description":"Deep-scan credits left on the account. Present on INSUFFICIENT_TOKENS.","uniqueKey":"tokenBalance","typeLabel":"integer"},"scansUsed":{"type":"integer","uniqueKey":"scansUsed","typeLabel":"integer"},"scansRemaining":{"type":"integer","uniqueKey":"scansRemaining","typeLabel":"integer"},"limitType":{"type":"string","description":"Which ceiling refused an AppSumo-backed account.","uniqueKey":"limitType","typeLabel":"string"},"upgradeHint":{"type":"string","description":"What to change to get past this refusal. Prose, not a contract.","uniqueKey":"upgradeHint","typeLabel":"string"},"creditScans":{"type":"object","description":"Present on STARTER_LIMIT_REACHED for an account whose starter scans are a fixed bank: its 10-scan credits pack is empty, what a pack costs in credits, the credit balance, and whether the account can buy credits.\n","properties":{"available":{"type":"integer","uniqueKey":"creditScans.available","typeLabel":"integer"},"packCost":{"type":"integer","uniqueKey":"creditScans.packCost","typeLabel":"integer"},"packSize":{"type":"integer","uniqueKey":"creditScans.packSize","typeLabel":"integer"},"balance":{"type":"integer","uniqueKey":"creditScans.balance","typeLabel":"integer"},"canBuyBundles":{"type":"boolean","uniqueKey":"creditScans.canBuyBundles","typeLabel":"boolean"}},"uniqueKey":"creditScans","typeLabel":"object"},"paused":{"type":"boolean","description":"Present only on the LLM-pause 503, where the body is exactly { error, code, paused }.\n","uniqueKey":"paused","typeLabel":"boolean"},"upsell":{"type":"object","description":"Purchase context for a locked export or buyable quota refusal. Export upsells are free-owner only; a paid non-regional caller may receive a scan_pack top-up on INSUFFICIENT_TOKENS. Ignore it if you only need the data contract.\n","properties":{"offer":{"type":"string","enum":["founder_report","scan_pack"],"description":"\"founder_report\" is the $59 one-time tier. \"scan_pack\" is a top-up for an account that already bought and has no deep credits left.\n","uniqueKey":"upsell.offer","typeLabel":"enum\u003cstring>"},"price":{"type":"string","description":"Display price text, e.g. \"$59 one-time\".","uniqueKey":"upsell.price","typeLabel":"string"},"guarantee":{"type":"string","description":"Guarantee text for offer=founder_report. Omitted for scan_pack top-ups; an empty string is never used.\n","uniqueKey":"upsell.guarantee","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Purchase or report URL, with attribution query parameters.","uniqueKey":"upsell.url","typeLabel":"string\u003curi>"},"locked":{"type":"array","description":"Section names the offer covers. Distinct from the top-level locked object, which names response FIELDS.\n","items":{"type":"string","uniqueKey":"upsell.locked.items.[INDEX]","typeLabel":"string"},"uniqueKey":"upsell.locked","typeLabel":"string[]"},"note":{"type":"string","description":"The same facts as one sentence, for a client that relays text.","uniqueKey":"upsell.note","typeLabel":"string"}},"uniqueKey":"upsell","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","details":{},"limit":123,"remaining":123,"resetAt":"2023-11-07T05:31:56Z","tokenBalance":123,"scansUsed":123,"scansRemaining":123,"limitType":"\u003cstring>","upgradeHint":"\u003cstring>","creditScans":{"available":123,"packCost":123,"packSize":123,"balance":123,"canBuyBundles":true},"paused":true,"upsell":{"offer":"founder_report","price":"\u003cstring>","guarantee":"\u003cstring>","url":"\u003cstring>","locked":["\u003cstring>"],"note":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"0db0e66f-11c3-47e4-a1a3-15a606751a88":{"preuveKey":{"type":"apiKey","in":"header","name":"x-preuve-key","description":"Your API key (prv_...), sent as-is. It is the only credential the API needs - see the Authentication guide.\n","scopes":[],"schemeName":"preuveKey"}}},"servers":{"f9be8054-8913-4c4c-b6e1-331d7310687c":{"url":"https://preuve.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-preuve-key","description":"Your API key (prv_...), sent as-is. It is the only credential the API needs - see the Authentication guide.\n","scopes":[],"schemeName":"preuveKey"},"schema":{"title":"x-preuve-key","type":"string","description":"Your API key (prv_...), sent as-is. It is the only credential the API needs - see the Authentication guide.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"preuveKey","name":"x-preuve-key"}],"title":"preuveKey"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"preuve-ai","siteName":"Preuve AI Developers","title":"Get the Agency workspace - Preuve AI Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T14:25:45.839Z","originalFileLocation":"api-reference/agency/get-the-agency-workspace.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"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=\"Workspace identity, the caller\u0026#x27;s role, remaining shared project quota, and one page of the workspace\u0026#x27;s client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Preuve AI Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_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/preuve-ai/tKC7ZmhWCLDiptRy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get the Agency workspace - Preuve AI Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Workspace identity, the caller\u0026#x27;s role, remaining shared project quota, and one page of the workspace\u0026#x27;s client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Preuve AI Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://preuve-ai.mintlify.app/_mintlify/api/og/v2?division=Agency\u0026amp;title=Get+the+Agency+workspace\u0026amp;description=Workspace+identity%2C+the+caller%27s+role%2C+remaining+shared+project+quota%2C+and+one+page+of+the+workspace%27s+client+reports+-+dashboard-created+ones+included%2C+newest+\u0026amp;theme=6464a725cf96986812cd17a5\u0026amp;signature=5fd7c6db0f6a40727fb490686139fe935a522162fd82ddedb56399e10b3948f9\">\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=\"Get the Agency workspace - Preuve AI Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Workspace identity, the caller\u0026#x27;s role, remaining shared project quota, and one page of the workspace\u0026#x27;s client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://preuve-ai.mintlify.app/_mintlify/api/og/v2?division=Agency\u0026amp;title=Get+the+Agency+workspace\u0026amp;description=Workspace+identity%2C+the+caller%27s+role%2C+remaining+shared+project+quota%2C+and+one+page+of+the+workspace%27s+client+reports+-+dashboard-created+ones+included%2C+newest+\u0026amp;theme=6464a725cf96986812cd17a5\u0026amp;signature=5fd7c6db0f6a40727fb490686139fe935a522162fd82ddedb56399e10b3948f9\">\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/preuve-ai/tKC7ZmhWCLDiptRy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Preuve AI Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ea580c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agency/get-the-agency-workspace.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.preuve.ai/#organization\",\"name\":\"Preuve AI Developers\",\"url\":\"https://docs.preuve.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/preuve-ai/jZodzg3khCalFU2b/logo/dark.svg?fit=max\u0026auto=format\u0026n=jZodzg3khCalFU2b\u0026q=85\u0026s=e5e818b7a52b31b8d49949427aa2921e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.preuve.ai#website\",\"name\":\"Preuve AI Developers\",\"url\":\"https://docs.preuve.ai\",\"publisher\":{\"@id\":\"https://docs.preuve.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace#webpage\",\"url\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace\",\"name\":\"Get the Agency workspace\",\"description\":\"Workspace identity, the caller's role, remaining shared project quota, and one page of the workspace's client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\",\"dateModified\":\"2026-10-22T14:25:45.839Z\",\"isPartOf\":{\"@id\":\"https://docs.preuve.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.preuve.ai/api-reference/discovery/discover-the-api\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get the Agency workspace\",\"item\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace#apireference\",\"headline\":\"Get the Agency workspace\",\"name\":\"Get the Agency workspace\",\"description\":\"Workspace identity, the caller's role, remaining shared project quota, and one page of the workspace's client reports - dashboard-created ones included, newest first, without report bodies. Consultant and AppSumo Agency accounts only: a key whose account holds no Agency workspace, or whose membership was removed, gets 404 AGENCY_NOT_FOUND on the next call. Membership is resolved live on every request, independently of the key.\",\"url\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace\",\"mainEntityOfPage\":{\"@id\":\"https://docs.preuve.ai/api-reference/agency/get-the-agency-workspace#webpage\"},\"dateModified\":\"2026-10-22T14:25:45.839Z\",\"publisher\":{\"@id\":\"https://docs.preuve.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.preuve.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Preuve AI Developers\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Preuve AI Developers","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"API Reference","icon":"book-open","pages":[{"title":"Introduction","icon":"book-open","iconType":"solid","href":"/api-reference/introduction"}]},{"group":"Endpoints","icon":"code","pages":[{"group":"Discovery","pages":[{"title":"Discover the API","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent","href":"/api-reference/discovery/discover-the-api"}]},{"group":"Analyses","pages":[{"title":"Start an analysis","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/analyses","href":"/api-reference/analyses/start-an-analysis"},{"title":"Poll an analysis","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/analyses/{id}","href":"/api-reference/analyses/poll-an-analysis"},{"title":"Enrich an analysis","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/analyses/{id}/enrich","href":"/api-reference/analyses/enrich-an-analysis"},{"title":"Export an analysis (ideas-json)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/analyses/{id}/export","href":"/api-reference/analyses/export-an-analysis-ideas-json"}]},{"group":"Batches","pages":[{"title":"Start a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/analysis-batches","href":"/api-reference/batches/start-a-batch"},{"title":"Poll a batch","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/analysis-batches/{batchId}","href":"/api-reference/batches/poll-a-batch"},{"title":"Export a batch (ideas-json)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/analysis-batches/{batchId}/export","href":"/api-reference/batches/export-a-batch-ideas-json"}]},{"group":"Tools","pages":[{"title":"Generate startup ideas","description":"Synchronous idea generation - the backing route for the generate_ideas MCP tool. Spends no scan quota or tokens. Standard runs have an account hourly limit. Free accounts get 5 Standard generations per rolling 24 hours per account (GENERATION_LIMIT when exhausted). Paid-or-credited accounts get limit: null, under a ceiling of 20 Standard generations per rolling 24 hours per account, shared with the idea generator on preuve.ai and refused with DAILY_LIMIT_REACHED. Eligible Pro runs skip hourly and daily generation caps and return limit: null and remaining: null. General API request-rate protection still applies. The standard model runs unless pro: true asks for the Pro model, which costs 10 credits a run. The response pro says whether Gemini 4 Argon answered. A recoverable Pro failure retries the same Argon model once, never a different model. Each attempt allows 180 seconds. Allow up to 425 seconds end to end. A delivered Pro answer settles one 10-credit hold; final failure, pause or deadline releases that hold. pro: true on an account holding under 10 credits is refused before anything is spent: 402 INSUFFICIENT_CREDITS (details.balance and details.required) when the account can buy credits, else 403 PRO_PAID_REQUIRED. A pro that is not a boolean or null is 400 INVALID_INPUT. Founder-profile tailoring is automatic on paid plans with a saved profile (fit: false opts out); the response's fitReason and fitHint state why tailoring did or did not apply.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/tools/idea-generator","href":"/api-reference/tools/generate-startup-ideas"}]},{"group":"Agency","pages":[{"title":"Get the Agency workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency","href":"/api-reference/agency/get-the-agency-workspace"},{"title":"Start a client project","description":"Create one deep client report against the shared Agency project quota. Never falls back to personal credits. Async: 202 on a new dispatch, 200 with reused=true when the clientRunId replays an existing report. clientRunId is scoped to the calling key; reusing one that belongs to a different workspace is 409 CLIENT_RUN_ID_CONFLICT. A response carrying dispatchPending=true means the dispatch outcome is unknown - retry the same clientRunId and arguments after 60 seconds; recovery reuses the original report and credit. 503 TRIGGER_DISPATCH_FAILED is a definite rejection: the credit was restored and that request stays failed on replay, so a new attempt needs a new clientRunId. Creating a report here does not email the client or publish a share link.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/agency/analyses","href":"/api-reference/agency/start-a-client-project"},{"title":"List client reports","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency/reports","href":"/api-reference/agency/list-client-reports"},{"title":"Poll a client report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency/reports/{id}","href":"/api-reference/agency/poll-a-client-report"},{"title":"Export a client report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/agent/agency/reports/{id}/export","href":"/api-reference/agency/export-a-client-report"}]}]}]}]},"title":"Get the Agency workspace - Preuve AI Developers","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}