Get the FULL profile of a single workspace. Must belong to your org.
This is the detail read: it returns everything list_workspaces leaves out —
the strategy doc, the design style, the per-platform writing instructions,
events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the
workspace itself.
Errors:
400 invalid_value: The workspace id is not a valid UUID.
401 authentication_required: API key or token is missing, invalid, or revoked.
403 permission_denied: Your plan does not include API access, or this workspace is not in your org.
404 resource_not_found: No workspace with that ID exists.
429 rate_limit_exceeded: You sent too many requests this minute.
Bearer an mk_live_ API key. A key is ORG-SCOPED: it grants full access to every resource in that organization, with no per-endpoint scoping (see the uid pseudo-permission on each operation). Manage keys at https://app.mymarky.ai.
Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-11-03) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model.
Non-blocking notes about fields that need attention, empty when there is nothing to do. Act on them in the same turn you see them — that is while you still have the content in context.
Size ceilings for the fields that get pasted into the prompt for every generated post. READ THIS BEFORE COMPOSING a value for one of these fields — remaining is the room you have, and a budgeted field is REPLACED whole on write, so limit is the real target. Over-budget writes are accepted, not rejected, but they cost a full rewrite to fix.
The brand's whole visual direction as markdown: the place for its colours (exact hex codes, which one leads), fonts, how type is set, logo placement and when the logo appears, imagery and whitespace. Prose at the top is binding on every image; a ## Treatments table underneath lists named looks, one picked per post. SCOPE: it is added to the prompt for AI-GENERATED images. It does NOT reach a template design, so it will not change a batch generated from templates. SIZE: 5000 characters, and writing this field REPLACES the whole value. Plan to the cap before composing; the response's field_budgets entry tells you how much room is left.
URL of a rendered 2x2 grid of four sample posts, all in ONE of the treatments from the design_style table — the first look the user kept when they ran /brand-setup. Written by /brand-setup at the end of that run; the app shows it so someone can SEE their look instead of reading it.
Social strategy doc as MARKDOWN — the goal we're working toward, who the posts are for, the brand voice, what we're trying right now, what we won't do, cadence and mix, plus a running log of experiments and what we learned. This is the layer an agency revisits each quarter. Write plain markdown (## headings, - bullets, | tables |); the app renders it in a rich-text editor, so no HTML tags — they show up as literal text and spend the size budget without adding meaning. Content pillars, caption rules and calls to action go here too. How graphics look goes in design_style. SIZE: 6000 characters, and writing this field REPLACES the whole doc. A longer value is still saved, but it comes back with a warning you have to act on in the same turn — so plan the doc to the cap BEFORE you compose it, rather than writing long and compacting after. The response's field_budgets entry for this field tells you exactly how much room is left.
The user's customized per-platform caption-writing instructions (empty when none set). Keys are canonical platform names (e.g. 'instagram', 'linkedIn') plus 'common' (applies to all platforms). Follow the matching entry when writing a caption or platform_overrides caption — the user's instructions ALWAYS outrank generic platform best practices. Update via PATCH (merge semantics). Returned by get_workspace only, not the list endpoint.
The workspace's own dated moments: launches, openings, sales, events (e.g. {'name': 'Hope Shop opening', 'date': '2026-10-10', 'kind': 'opening'}). They show up in list_upcoming_moments, and a caption that names one is dated to it. At most 20.
The workspace's IANA timezone (e.g. 'Europe/Warsaw'). Posting-schedule slots and *_local times use it, and holidays in moments come from its country. Null when unset: times are then UTC and holidays default to the US. Set with update_workspace.
Id of the undo record this write created. Pass it to revert_revisions to put the record back exactly as it was before this call. Set only on the response to a write; null when you read the record.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Marky API","colors":{"primary":"#6366f1","light":"#818cf8","dark":"#4f46e5"},"logo":{"light":"https://mintcdn.com/marky-2d226b8c/Z6-NzY89vZC-JBeX/logo/logo.png?fit=max\u0026auto=format\u0026n=Z6-NzY89vZC-JBeX\u0026q=85\u0026s=a7ccd17d02af75ecb6ba720fd9abdef3","dark":"https://mintcdn.com/marky-2d226b8c/Z6-NzY89vZC-JBeX/logo/logo.png?fit=max\u0026auto=format\u0026n=Z6-NzY89vZC-JBeX\u0026q=85\u0026s=a7ccd17d02af75ecb6ba720fd9abdef3"},"favicon":"https://mintcdn.com/marky-2d226b8c/Z6-NzY89vZC-JBeX/favicon.png?fit=max\u0026auto=format\u0026n=Z6-NzY89vZC-JBeX\u0026q=85\u0026s=947c745723cff1b66415bec8af31fcda","api":{"playground":{"display":"interactive"},"examples":{"prefill":false}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"marky-2d226b8c","hasAudioNarration":false,"actualSubdomain":"marky-2d226b8c","customDomains":["docs.mymarky.ai"],"gitSource":{"type":"github","owner":"marky-team","repo":"fast-backend","deployBranch":"main","contentDirectory":"guides","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea2c0e98fdbb3061a05f93","collectionId":"b3a30ff4-60d8-4ffc-a856-9cbaf971bca7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea2c0e98fdbb3061a05f93"},"entitlements":{},"buildId":"6aea2c0e98fdbb3061a05f93","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":48},{"language":"default","tag":"Guides","count":17},{"language":"default","tag":"Getting Started","count":11},{"language":"default","tag":"Integrations","count":8},{"language":"default","tag":"Posts","count":7},{"language":"default","tag":"Files","count":6},{"language":"default","tag":"Workspaces","count":5},{"language":"default","tag":"Folders","count":5},{"language":"default","tag":"Topics","count":5},{"language":"default","tag":"Webhooks","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/get-business","slug":"/api-reference/get-business","pageMetadata":{"title":"Get workspace","openapi":"public-openapi.json get /api/workspaces/{workspace_id}","description":"Get the FULL profile of a single workspace. Must belong to your org.\n\nThis is the detail read: it returns everything list_workspaces leaves out —\nthe strategy doc, the design style, the per-platform writing instructions,\nevents and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the\nworkspace itself.\n\nErrors:\n 400 invalid_value: The workspace id is not a valid UUID.\n 401 authentication_required: API key or token is missing, invalid, or revoked.\n 403 permission_denied: Your plan does not include API access, or this workspace is not in your org.\n 404 resource_not_found: No workspace with that ID exists.\n 429 rate_limit_exceeded: You sent too many requests this minute.","href":"/api-reference/get-business"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Get the FULL profile of a single workspace. Must belong to your org.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"This is the detail read: it returns everything list_workspaces leaves out —\\nthe strategy doc, the design style, the per-platform writing instructions,\\nevents and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the\\nworkspace itself.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Errors:\\n400 invalid_value: The workspace id is not a valid UUID.\\n401 authentication_required: API key or token is missing, invalid, or revoked.\\n403 permission_denied: Your plan does not include API access, or this workspace is not in your org.\\n404 resource_not_found: No workspace with that ID exists.\\n429 rate_limit_exceeded: You sent too many requests this minute.\"\n })]\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 workspace","openapi":"public-openapi.json get /api/workspaces/{workspace_id}","description":"Get the FULL profile of a single workspace. Must belong to your org.\n\nThis is the detail read: it returns everything list_workspaces leaves out —\nthe strategy doc, the design style, the per-platform writing instructions,\nevents and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the\nworkspace itself.\n\nErrors:\n 400 invalid_value: The workspace id is not a valid UUID.\n 401 authentication_required: API key or token is missing, invalid, or revoked.\n 403 permission_denied: Your plan does not include API access, or this workspace is not in your org.\n 404 resource_not_found: No workspace with that ID exists.\n 429 rate_limit_exceeded: You sent too many requests this minute.","href":"/api-reference/get-business"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["businesses"],"summary":"Get workspace","description":"Get the FULL profile of a single workspace. Must belong to your org.\n\nThis is the detail read: it returns everything list_workspaces leaves out —\nthe strategy doc, the design style, the per-platform writing instructions,\nevents and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the\nworkspace itself.\n\nErrors:\n 400 invalid_value: The workspace id is not a valid UUID.\n 401 authentication_required: API key or token is missing, invalid, or revoked.\n 403 permission_denied: Your plan does not include API access, or this workspace is not in your org.\n 404 resource_not_found: No workspace with that ID exists.\n 429 rate_limit_exceeded: You sent too many requests this minute.","operationId":"get_workspace","security":["4d4f5481-a0f1-44ad-8bb5-8fcc95ff99ed"],"parameters":["e55b4c98-facb-40a9-beae-30e048465f10","c215668e-08aa-4033-adf3-d590e270a1b2"],"responses":{"200":"f10211a4-a436-4076-b1fd-a68cc246a09c","400":"bc6bb831-1af6-483b-b5f2-f428b6719f5f","401":"70a5e487-a36e-43e2-a9a7-4d8db22d94ba","403":"1f9ee119-b5e5-40d4-8e0c-cf5323e903e0","404":"6d63310d-868f-4748-8ba1-ae212e749afc","422":"cbed928a-4ce8-435f-ac37-dfb9d4ded88e","429":"df04c786-efec-4f12-9952-fb8dbf30ff97","500":"95f3379e-900b-4b49-9cf0-f40ca3bba12f"},"method":"get","type":"path","servers":["09d2689e-ff2e-4792-a0cf-48865ead84da"],"path":"/api/workspaces/{workspace_id}","baseUrlOptions":["https://api.mymarky.ai"],"title":"Get workspace","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e55b4c98-facb-40a9-beae-30e048465f10":{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","description":"The workspace ID (a UUID from list_workspaces).","format":"uuid","title":"Workspace Id","isRequired":true,"uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"The workspace ID (a UUID from list_workspaces)."},"c215668e-08aa-4033-adf3-d590e270a1b2":{"name":"Marky-Version","in":"header","required":false,"schema":{"type":"string","enum":["2026-04-08","2026-07-17","2026-08-02","2026-08-04","2026-08-06","2026-10-30","2026-10-31","2026-11-03"],"example":"2026-11-03","isRequired":false,"description":"Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-11-03) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-11-03) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model."}},"responses":{"f10211a4-a436-4076-b1fd-a68cc246a09c":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","title":"Id","description":"Workspace ID","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"created_at":{"type":"string","title":"Created At","description":"When the workspace was created","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"warnings":{"items":{"properties":{"field":{"type":"string","title":"Field","description":"The field this warning is about, e.g. 'strategy', 'caption' or 'platform_overrides[0].caption'.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].field","typeLabel":"string"},"level":{"type":"string","enum":["approaching_limit","over_limit","advisory"],"title":"Level","description":"'approaching_limit' = past the soft limit, act soon. 'over_limit' = past the hard limit, act now. 'advisory' = worth fixing before this publishes, but it may be intended.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].level","typeLabel":"enum\u003cstring>"},"message":{"type":"string","title":"Message","description":"Plain-language explanation of what is wrong and how to fix it.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"},"code":{"oneOf":[{"type":"string","title":"Code","description":"Stable machine-readable code, e.g. 'cta_without_contact'. Branch on this, never on the message. Null on the older size-budget warnings.","uniqueKey":"warnings.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","title":"Code","description":"Stable machine-readable code, e.g. 'cta_without_contact'. Branch on this, never on the message. Null on the older size-budget warnings.","uniqueKey":"warnings.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"string | null"}},"type":"object","required":["field","level","message"],"title":"FieldWarning","description":"One \"this is fine, but fix it soon\" note about a field the caller just read.\n\nA warning never blocks the write — see BusinessResponse.warnings for why.\nThis is the ONE non-blocking warnings shape (README F6): workspace size\nbudgets and post caption lint both use it, and so will later checks, so a\ncaller that loops over `warnings` keeps working as codes are added.","uniqueKey":"warnings.items.[INDEX]","typeLabel":"FieldWarning · object"},"type":"array","title":"Warnings","description":"Non-blocking notes about fields that need attention, empty when there is nothing to do. Act on them in the same turn you see them — that is while you still have the content in context.","readOnly":true,"isRequired":true,"uniqueKey":"warnings","typeLabel":"FieldWarning · object[]"},"field_budgets":{"items":{"properties":{"field":{"type":"string","title":"Field","description":"The field this budget applies to.","isRequired":true,"uniqueKey":"field_budgets.items.[INDEX].field","typeLabel":"string"},"limit":{"type":"integer","title":"Limit","description":"Hard ceiling, in characters.","isRequired":true,"uniqueKey":"field_budgets.items.[INDEX].limit","typeLabel":"integer"},"used":{"type":"integer","title":"Used","description":"Length of the field's current value, 0 when unset.","isRequired":true,"uniqueKey":"field_budgets.items.[INDEX].used","typeLabel":"integer"},"remaining":{"type":"integer","title":"Remaining","description":"Characters left before the hard limit, floored at 0. This is the room a REPLACEMENT value has, since writing a budgeted field replaces it whole.","isRequired":true,"uniqueKey":"field_budgets.items.[INDEX].remaining","typeLabel":"integer"}},"type":"object","required":["field","limit","used","remaining"],"title":"FieldBudget","description":"How much room a size-budgeted field has left, reported BEFORE a write.\n\nThe warning above is the after-the-fact half of the same idea, and on its own\nit guarantees a wasted rewrite: the only way to learn the ceiling was to hit\nit, so an agent composing a strategy doc wrote the whole thing, got told it\nwas too long, and wrote the whole thing again. Measured 2026-08-09 across the\n51 prod workspaces with a strategy doc: 23 of them (45%) sat at or past the\nsoft limit, i.e. that second pass was the normal path, not the exception.\n\nSo the budget also ships on the way OUT, on every workspace read and write. An\nagent that reads `remaining` before composing does not need the warning.","uniqueKey":"field_budgets.items.[INDEX]","typeLabel":"FieldBudget · object"},"type":"array","title":"Field Budgets","description":"Size ceilings for the fields that get pasted into the prompt for every generated post. READ THIS BEFORE COMPOSING a value for one of these fields — `remaining` is the room you have, and a budgeted field is REPLACED whole on write, so `limit` is the real target. Over-budget writes are accepted, not rejected, but they cost a full rewrite to fix.","readOnly":true,"isRequired":true,"uniqueKey":"field_budgets","typeLabel":"FieldBudget · object[]"},"design_style":{"oneOf":[{"type":"string","title":"Design Style","description":"The brand's whole visual direction as markdown: the place for its colours (exact hex codes, which one leads), fonts, how type is set, logo placement and when the logo appears, imagery and whitespace. Prose at the top is binding on every image; a `## Treatments` table underneath lists named looks, one picked per post. SCOPE: it is added to the prompt for AI-GENERATED images. It does NOT reach a template design, so it will not change a batch generated from templates. SIZE: 5000 characters, and writing this field REPLACES the whole value. Plan to the cap before composing; the response's `field_budgets` entry tells you how much room is left.","uniqueKey":"design_style.oneOf.0","typeLabel":"string"},{"type":"null","title":"Design Style","description":"The brand's whole visual direction as markdown: the place for its colours (exact hex codes, which one leads), fonts, how type is set, logo placement and when the logo appears, imagery and whitespace. Prose at the top is binding on every image; a `## Treatments` table underneath lists named looks, one picked per post. SCOPE: it is added to the prompt for AI-GENERATED images. It does NOT reach a template design, so it will not change a batch generated from templates. SIZE: 5000 characters, and writing this field REPLACES the whole value. Plan to the cap before composing; the response's `field_budgets` entry tells you how much room is left.","uniqueKey":"design_style.oneOf.1","typeLabel":"null"}],"uniqueKey":"design_style","typeLabel":"string | null"},"brand_style_grid_url":{"oneOf":[{"type":"string","title":"Brand Style Grid Url","description":"URL of a rendered 2x2 grid of four sample posts, all in ONE of the treatments from the design_style table — the first look the user kept when they ran /brand-setup. Written by /brand-setup at the end of that run; the app shows it so someone can SEE their look instead of reading it.","uniqueKey":"brand_style_grid_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Brand Style Grid Url","description":"URL of a rendered 2x2 grid of four sample posts, all in ONE of the treatments from the design_style table — the first look the user kept when they ran /brand-setup. Written by /brand-setup at the end of that run; the app shows it so someone can SEE their look instead of reading it.","uniqueKey":"brand_style_grid_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand_style_grid_url","typeLabel":"string | null"},"strategy":{"oneOf":[{"type":"string","title":"Strategy","description":"Social strategy doc as MARKDOWN — the goal we're working toward, who the posts are for, the brand voice, what we're trying right now, what we won't do, cadence and mix, plus a running log of experiments and what we learned. This is the layer an agency revisits each quarter. Write plain markdown (## headings, - bullets, | tables |); the app renders it in a rich-text editor, so no HTML tags — they show up as literal text and spend the size budget without adding meaning. Content pillars, caption rules and calls to action go here too. How graphics look goes in design_style. SIZE: 6000 characters, and writing this field REPLACES the whole doc. A longer value is still saved, but it comes back with a warning you have to act on in the same turn — so plan the doc to the cap BEFORE you compose it, rather than writing long and compacting after. The response's `field_budgets` entry for this field tells you exactly how much room is left.","uniqueKey":"strategy.oneOf.0","typeLabel":"string"},{"type":"null","title":"Strategy","description":"Social strategy doc as MARKDOWN — the goal we're working toward, who the posts are for, the brand voice, what we're trying right now, what we won't do, cadence and mix, plus a running log of experiments and what we learned. This is the layer an agency revisits each quarter. Write plain markdown (## headings, - bullets, | tables |); the app renders it in a rich-text editor, so no HTML tags — they show up as literal text and spend the size budget without adding meaning. Content pillars, caption rules and calls to action go here too. How graphics look goes in design_style. SIZE: 6000 characters, and writing this field REPLACES the whole doc. A longer value is still saved, but it comes back with a warning you have to act on in the same turn — so plan the doc to the cap BEFORE you compose it, rather than writing long and compacting after. The response's `field_budgets` entry for this field tells you exactly how much room is left.","uniqueKey":"strategy.oneOf.1","typeLabel":"null"}],"uniqueKey":"strategy","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","title":"Name","description":"Workspace name","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","title":"Name","description":"Workspace name","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","title":"Description","description":"Workspace description","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","description":"Workspace description","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"industry":{"oneOf":[{"type":"string","title":"Industry","description":"Industry category","uniqueKey":"industry.oneOf.0","typeLabel":"string"},{"type":"null","title":"Industry","description":"Industry category","uniqueKey":"industry.oneOf.1","typeLabel":"null"}],"uniqueKey":"industry","typeLabel":"string | null"},"website":{"oneOf":[{"type":"string","title":"Website","description":"Business website URL","uniqueKey":"website.oneOf.0","typeLabel":"string"},{"type":"null","title":"Website","description":"Business website URL","uniqueKey":"website.oneOf.1","typeLabel":"null"}],"uniqueKey":"website","typeLabel":"string | null"},"language":{"type":"string","title":"Language","description":"Content language as an ISO 639-1 code (e.g. 'en', 'fr', 'es').","default":"en","uniqueKey":"language","typeLabel":"string"},"platform_writing_instructions":{"oneOf":[{"type":"object","title":"Platform Writing Instructions","description":"The user's customized per-platform caption-writing instructions (empty when none set). Keys are canonical platform names (e.g. 'instagram', 'linkedIn') plus 'common' (applies to all platforms). Follow the matching entry when writing a caption or platform_overrides caption — the user's instructions ALWAYS outrank generic platform best practices. Update via PATCH (merge semantics). Returned by get_workspace only, not the list endpoint.","additionalProperties":{"type":"string","uniqueKey":"platform_writing_instructions.oneOf.0.additionalProperties","typeLabel":"string"},"uniqueKey":"platform_writing_instructions.oneOf.0","typeLabel":"Platform Writing Instructions · object"},{"type":"null","title":"Platform Writing Instructions","description":"The user's customized per-platform caption-writing instructions (empty when none set). Keys are canonical platform names (e.g. 'instagram', 'linkedIn') plus 'common' (applies to all platforms). Follow the matching entry when writing a caption or platform_overrides caption — the user's instructions ALWAYS outrank generic platform best practices. Update via PATCH (merge semantics). Returned by get_workspace only, not the list endpoint.","uniqueKey":"platform_writing_instructions.oneOf.1","typeLabel":"null"}],"uniqueKey":"platform_writing_instructions","typeLabel":"Platform Writing Instructions · object | null"},"events":{"items":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"e.g. 'Hope Shop opening'.","isRequired":true,"uniqueKey":"events.items.[INDEX].name","typeLabel":"string"},"date":{"type":"string","format":"date","title":"Date","description":"The day it happens, YYYY-MM-DD, on the business's calendar.","isRequired":true,"uniqueKey":"events.items.[INDEX].date","typeLabel":"string\u003cdate>"},"kind":{"type":"string","enum":["launch","opening","sale","event","other"],"title":"Kind","description":"What sort of moment it is.","default":"event","uniqueKey":"events.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"note":{"oneOf":[{"type":"string","title":"Note","description":"Optional detail, e.g. '20% off'.","maxLength":280,"uniqueKey":"events.items.[INDEX].note.oneOf.0","typeLabel":"string"},{"type":"null","title":"Note","description":"Optional detail, e.g. '20% off'.","uniqueKey":"events.items.[INDEX].note.oneOf.1","typeLabel":"null"}],"uniqueKey":"events.items.[INDEX].note","typeLabel":"string | null"}},"type":"object","required":["name","date"],"title":"BusinessEvent","description":"One dated moment of the business's own, stored in `businesses.events`.","uniqueKey":"events.items.[INDEX]","typeLabel":"BusinessEvent · object"},"type":"array","title":"Events","description":"The workspace's own dated moments: launches, openings, sales, events (e.g. {'name': 'Hope Shop opening', 'date': '2026-10-10', 'kind': 'opening'}). They show up in list_upcoming_moments, and a caption that names one is dated to it. At most 20.","uniqueKey":"events","typeLabel":"BusinessEvent · object[]"},"timezone":{"oneOf":[{"type":"string","title":"Timezone","description":"The workspace's IANA timezone (e.g. 'Europe/Warsaw'). Posting-schedule slots and `*_local` times use it, and holidays in moments come from its country. Null when unset: times are then UTC and holidays default to the US. Set with update_workspace.","uniqueKey":"timezone.oneOf.0","typeLabel":"string"},{"type":"null","title":"Timezone","description":"The workspace's IANA timezone (e.g. 'Europe/Warsaw'). Posting-schedule slots and `*_local` times use it, and holidays in moments come from its country. Null when unset: times are then UTC and holidays default to the US. Set with update_workspace.","uniqueKey":"timezone.oneOf.1","typeLabel":"null"}],"uniqueKey":"timezone","typeLabel":"string | null"},"updated_at":{"oneOf":[{"type":"string","title":"Updated At","description":"Last update time","uniqueKey":"updated_at.oneOf.0","typeLabel":"string"},{"type":"null","title":"Updated At","description":"Last update time","uniqueKey":"updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_at","typeLabel":"string | null"},"revision_id":{"oneOf":[{"type":"string","title":"Revision Id","description":"Id of the undo record this write created. Pass it to revert_revisions to put the record back exactly as it was before this call. Set only on the response to a write; null when you read the record.","uniqueKey":"revision_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Revision Id","description":"Id of the undo record this write created. Pass it to revert_revisions to put the record back exactly as it was before this call. Set only on the response to a write; null when you read the record.","uniqueKey":"revision_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"revision_id","typeLabel":"string | null"}},"type":"object","required":["id","created_at","warnings","field_budgets"],"title":"BusinessResponse","uniqueKey":"","typeLabel":"BusinessResponse · object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","created_at":"\u003cstring>","warnings":[{"field":"\u003cstring>","level":"approaching_limit","message":"\u003cstring>","code":"\u003cstring>"}],"field_budgets":[{"field":"\u003cstring>","limit":123,"used":123,"remaining":123}],"design_style":"\u003cstring>","brand_style_grid_url":"\u003cstring>","strategy":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","industry":"\u003cstring>","website":"\u003cstring>","language":"en","platform_writing_instructions":{},"events":[{"name":"\u003cstring>","date":"2023-12-25","kind":"event","note":"\u003cstring>"}],"timezone":"\u003cstring>","updated_at":"\u003cstring>","revision_id":"\u003cstring>"}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"bc6bb831-1af6-483b-b5f2-f428b6719f5f":{"description":"Bad request — the input was malformed or otherwise invalid.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"70a5e487-a36e-43e2-a9a7-4d8db22d94ba":{"description":"Authentication failed — the API key is missing or invalid.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"1f9ee119-b5e5-40d4-8e0c-cf5323e903e0":{"description":"Forbidden — the key is valid but may not access this resource.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"6d63310d-868f-4748-8ba1-ae212e749afc":{"description":"Not found — no resource matches the id in the path.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"cbed928a-4ce8-435f-ac37-dfb9d4ded88e":{"description":"Validation error — one or more fields failed validation.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"},"df04c786-efec-4f12-9952-fb8dbf30ff97":{"description":"Rate limited — retry after the window resets (see Retry-After).","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying (RFC 9110 delta-seconds).","schema":{"type":"string"}}},"exampleType":"generated"},"95f3379e-900b-4b49-9cf0-f40ca3bba12f":{"description":"Server error — something failed on our side; retry or quote X-Request-Id.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 Problem Details. Returned as application/problem+json to clients pinned to 2026-07-17 or later. Match on the stable `code`, never on text.","properties":{"type":{"type":"string","format":"uri","description":"URI for the problem type; dereferences to the docs entry for `code`.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"Short human-readable summary of the problem type (the broad error category).","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"The HTTP status code, repeated in the body.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"detail":{"type":"string","description":"Explanation specific to this occurrence. Display/logging only — do not parse.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"The full set of stable `error.code` values the API can return.\n\nTwo groups: (1) GENERIC codes the global handler derives from the HTTP status\nor message keyword for plain raises (see api_errors._error_code + the handlers),\nand (2) the typed BUSINESS codes (mirror of ErrorType) for raises the frontend\nmust tell apart from other same-status errors.\n\nThis enum exists so OpenAPI emits an `enum` for error.code — a canonical list in\nthe docs and a typed union for codegen — instead of a bare string. It does NOT\nvalidate runtime responses (those are plain dicts built in _build_error_response),\nso a code missing here only means incomplete docs, never a 500. The\ntest_error_code_enum_covers_* tests keep it in sync with ErrorType + _error_code\nso it can't silently drift.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"instance":{"type":"string","description":"The request path that produced this problem.","uniqueKey":"instance","typeLabel":"string"},"request_id":{"type":"string","description":"Id of this request (also the X-Request-Id header). Quote it to support.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","description":"The offending request field, when the problem is field-specific.","uniqueKey":"param","typeLabel":"string"}},"required":["type","title","status","detail","code"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","code":"\u003cstring>","instance":"\u003cstring>","request_id":"\u003cstring>","param":"\u003cstring>"}}},"exampleType":"generated"},"application/json":{"schema":{"description":"The body of every non-2xx response. Branch on `error.code`.","properties":{"error":{"properties":{"type":{"type":"string","title":"Type","description":"Broad error category derived from the HTTP status (invalid_request_error, authentication_error, permission_error, not_found_error, rate_limit_error, api_error).","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","title":"ErrorCode","description":"Stable, machine-readable error code. Match on THIS, never on the message. Codes never change even when the message is reworded.","x-extensible-enum":["authentication_required","permission_denied","resource_not_found","rate_limit_exceeded","validation_error","internal_error","invalid_value","invalid_id","already_exists","invalid_request","WORKSPACE_NOT_SUPPORTED","MAX_THREAD_IN_OTHER_WORKSPACE","FEATURE_REMOVED","INSUFFICIENT_CREDITS","BUSINESS_CREDIT_LIMIT_EXCEEDED","NO_ENABLED_TOPICS","GENERATION_CAP_REACHED","CHECKOUT_BLOCKED","INVALID_API_KEY","SOCIAL_TOKEN_EXPIRED","FB_ACCOUNT_BLOCKED","PAYMENT_REQUIRED","NO_CONNECTED_SOCIALS","PLATFORM_RULE_VIOLATION","NOT_ENOUGH_POSTS_FOR_TOPICS","WORKSPACE_LIMIT_EXCEEDED","RECIPIENT_WORKSPACE_LIMIT_EXCEEDED","ADVANCED_WHITELABEL_QUOTA_FROZEN","RESELLER_WHITELABEL_AT_CAPACITY","RESELLER_WHITELABEL_NOT_PURCHASED","CHANNEL_LIMIT_EXCEEDED","FILE_TOO_LARGE","INVALID_FILE_TYPE","SUBSCRIPTION_ALREADY_ACTIVE","UPSTREAM_PROVIDER_ERROR","WEBSITE_UNREACHABLE","PLATFORM_MEDIA_UNSUPPORTED","SOCIAL_CONNECT_FAILED","SOCIAL_CONNECT_LINK_EXPIRED","SOCIAL_APP_PAUSED","NO_PHOTO_SOURCE","TEMPLATE_FORMAT_MISMATCH","TEMPLATE_NOT_FOUND","INVALID_CSV_ROW","IMAGE_GENERATION_FAILED","IMAGE_REFERENCE_INVALID","PDF_HAS_NO_TEXT","POST_RENDER_FAILED","POST_DESIGN_SELECTION_FAILED","POST_CONTENT_GENERATION_FAILED","POST_IDEATION_FAILED","POST_MEDIA_FAILED","POST_AI_MEDIA_FAILED","POST_AI_MEDIA_BLOCKED","POST_RENDER_UNAVAILABLE","IDEMPOTENCY_KEY_CONFLICT","NO_STRIPE_CUSTOMER","X_AGENCY_NOT_ENABLED","NO_ACTIVE_SUBSCRIPTION","POST_HAS_NO_VIDEO","POST_ALREADY_PUBLISHED","CAPTION_HAS_PLACEHOLDER","COPY_DATE_BEFORE_NEXT_SLOT","SCHEDULE_HAS_NO_TIMESLOTS","SIGNUP_BLOCKED","MEDIA_RECENTLY_USED","NAME_MATCHES_OTHER_WORKSPACE","REVIEW_NOT_FOUND","SOCIAL_NEEDS_RECONNECT","COMMENT_NOT_OWN","COMMENT_CANNOT_BE_HIDDEN","REVIEW_ALREADY_REPLIED","REVIEW_DETAILS_MISMATCH","PREVIEW_REQUIRED","PREVIEW_STALE","NOT_ENOUGH_LIBRARY_PHOTOS","UNKNOWN_MEDIA_ID","REEL_DAILY_LIMIT_REACHED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","title":"Message","description":"Human-readable explanation. For display/logging only — do not parse.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","title":"Doc Url","description":"Link to the docs entry for this error code.","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"param":{"oneOf":[{"type":"string","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.0","typeLabel":"string"},{"type":"null","title":"Param","description":"The offending request field, when the error is field-specific.","uniqueKey":"error.param.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.param","typeLabel":"string | null"},"request_id":{"oneOf":[{"type":"string","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Request Id","description":"The id of this request (also returned as the X-Request-Id header). Quote it to support so they can find the exact request in our logs.","uniqueKey":"error.request_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.request_id","typeLabel":"string | null"},"reconnect_url":{"oneOf":[{"type":"string","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reconnect Url","description":"Present on social token-expired errors (SOCIAL_TOKEN_EXPIRED / REFRESH_TOKEN_EXPIRED): the page where the user reconnects the affected account, so an agent can surface the fix without a second call.","uniqueKey":"error.reconnect_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.reconnect_url","typeLabel":"string | null"},"is_reconnect_fixable":{"oneOf":[{"type":"boolean","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.0","typeLabel":"boolean"},{"type":"null","title":"Is Reconnect Fixable","description":"True on social token-expired errors — the failure is fixed by reconnecting the account (paired with reconnect_url).","uniqueKey":"error.is_reconnect_fixable.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.is_reconnect_fixable","typeLabel":"boolean | null"}},"type":"object","required":["type","code","message","doc_url"],"title":"ErrorDetail","isRequired":true,"uniqueKey":"error","typeLabel":"ErrorDetail · object"}},"required":["error"],"title":"ErrorEnvelope","type":"object","uniqueKey":"","typeLabel":"ErrorEnvelope · object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"\u003cstring>","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","param":"\u003cstring>","request_id":"\u003cstring>","reconnect_url":"\u003cstring>","is_reconnect_fixable":true}}}},"exampleType":"generated"}},"headers":{"RateLimit-Limit":{"description":"Requests allowed in the current window (IETF/Zalando name; preferred).","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"string"}},"RateLimit-Reset":{"description":"UNIX epoch (seconds) when the current window resets.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Back-compat alias of RateLimit-Limit.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Back-compat alias of RateLimit-Remaining.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Back-compat alias of RateLimit-Reset.","schema":{"type":"string"}},"X-Request-Id":{"description":"Unique id for THIS request (req_…). Quote it to support.","schema":{"type":"string"}},"X-Flow-ID":{"description":"Correlation id for the whole logical flow; echoes the request's X-Flow-ID if sent.","schema":{"type":"string"}},"Marky-Version":{"description":"The dated API version this response was served as.","schema":{"type":"string"}}},"exampleType":"generated"}},"security":{"4d4f5481-a0f1-44ad-8bb5-8fcc95ff99ed":{"HTTPBearer":{"type":"http","scheme":"bearer","description":"Bearer an mk_live_ API key. A key is ORG-SCOPED: it grants full access to every resource in that organization, with no per-endpoint scoping (see the `uid` pseudo-permission on each operation). Manage keys at https://app.mymarky.ai.","scopes":["uid"],"schemeName":"HTTPBearer"}}},"servers":{"09d2689e-ff2e-4792-a0cf-48865ead84da":{"url":"https://api.mymarky.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer an mk_live_ API key. A key is ORG-SCOPED: it grants full access to every resource in that organization, with no per-endpoint scoping (see the `uid` pseudo-permission on each operation). Manage keys at https://app.mymarky.ai.","scopes":["uid"],"schemeName":"HTTPBearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer an mk_live_ API key. A key is ORG-SCOPED: it grants full access to every resource in that organization, with no per-endpoint scoping (see the `uid` pseudo-permission on each operation). Manage keys at https://app.mymarky.ai.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"HTTPBearer","name":"Authorization"}],"title":"HTTPBearer"}]},"originalFileLocation":"public-openapi.json"},"subdomain":"marky-2d226b8c","siteName":"Marky API","title":"Get workspace - Marky API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T18:41:05.933Z","originalFileLocation":"api-reference/get-business.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Get the FULL profile of a single workspace. Must belong to your org. This is the detail read: it returns everything list_workspaces leaves out — the strategy doc, the design style, the per-platform writing instructions, events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the workspace itself. Errors: 400 invalid_value: The workspace id is not a valid UUID. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this workspace is not in your org. 404 resource_not_found: No workspace with that ID exists. 429 rate_limit_exceeded: You sent too many requests this minute.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Marky 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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get workspace - Marky API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Get the FULL profile of a single workspace. Must belong to your org. This is the detail read: it returns everything list_workspaces leaves out — the strategy doc, the design style, the per-platform writing instructions, events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the workspace itself. Errors: 400 invalid_value: The workspace id is not a valid UUID. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this workspace is not in your org. 404 resource_not_found: No workspace with that ID exists. 429 rate_limit_exceeded: You sent too many requests this minute.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Marky API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mymarky.ai/api-reference/get-business\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://marky-2d226b8c.mintlify.app/_mintlify/api/og/v2?division=Workspaces\u0026amp;title=Get+workspace\u0026amp;description=Get+the+FULL+profile+of+a+single+workspace.+Must+belong+to+your+org.%0A%0AThis+is+the+detail+read%3A+it+returns+everything+list_workspaces+leaves+out+%E2%80%94%0Athe+strategy+d\u0026amp;theme=feb25d55a2046f66c0b700e9\u0026amp;signature=3276b6772c3d64a886449f7362b3cb87cb6e142076994dfe9bf8a0dd8ae56b56\">\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 workspace - Marky API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Get the FULL profile of a single workspace. Must belong to your org. This is the detail read: it returns everything list_workspaces leaves out — the strategy doc, the design style, the per-platform writing instructions, events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the workspace itself. Errors: 400 invalid_value: The workspace id is not a valid UUID. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this workspace is not in your org. 404 resource_not_found: No workspace with that ID exists. 429 rate_limit_exceeded: You sent too many requests this minute.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://marky-2d226b8c.mintlify.app/_mintlify/api/og/v2?division=Workspaces\u0026amp;title=Get+workspace\u0026amp;description=Get+the+FULL+profile+of+a+single+workspace.+Must+belong+to+your+org.%0A%0AThis+is+the+detail+read%3A+it+returns+everything+list_workspaces+leaves+out+%E2%80%94%0Athe+strategy+d\u0026amp;theme=feb25d55a2046f66c0b700e9\u0026amp;signature=3276b6772c3d64a886449f7362b3cb87cb6e142076994dfe9bf8a0dd8ae56b56\">\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/marky-2d226b8c/2YHtFYr3jDlNjCE5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Marky API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366f1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mymarky.ai/api-reference/get-business\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/get-business.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mymarky.ai/#organization\",\"name\":\"Marky API\",\"url\":\"https://docs.mymarky.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/marky-2d226b8c/Z6-NzY89vZC-JBeX/logo/logo.png?fit=max\u0026auto=format\u0026n=Z6-NzY89vZC-JBeX\u0026q=85\u0026s=a7ccd17d02af75ecb6ba720fd9abdef3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mymarky.ai#website\",\"name\":\"Marky API\",\"url\":\"https://docs.mymarky.ai\",\"publisher\":{\"@id\":\"https://docs.mymarky.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mymarky.ai/api-reference/get-business#webpage\",\"url\":\"https://docs.mymarky.ai/api-reference/get-business\",\"name\":\"Get workspace\",\"description\":\"Get the FULL profile of a single workspace. Must belong to your org. This is the detail read: it returns everything list_workspaces leaves out — the strategy doc, the design style, the per-platform writing instructions, events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the workspace itself. Errors: 400 invalid_value: The workspace id is not a valid UUID. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this workspace is not in your org. 404 resource_not_found: No workspace with that ID exists. 429 rate_limit_exceeded: You sent too many requests this minute.\",\"dateModified\":\"2026-11-03T18:41:05.933Z\",\"isPartOf\":{\"@id\":\"https://docs.mymarky.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mymarky.ai/api-reference/get-business#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mymarky.ai/api-reference/get-business#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Workspaces\",\"item\":\"https://docs.mymarky.ai/api-reference/create-business\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get workspace\",\"item\":\"https://docs.mymarky.ai/api-reference/get-business\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mymarky.ai/api-reference/get-business#apireference\",\"headline\":\"Get workspace\",\"name\":\"Get workspace\",\"description\":\"Get the FULL profile of a single workspace. Must belong to your org. This is the detail read: it returns everything list_workspaces leaves out — the strategy doc, the design style, the per-platform writing instructions, events and timezone on top of the summary fields. Use list_workspaces to find a workspace id; use this to read the workspace itself. Errors: 400 invalid_value: The workspace id is not a valid UUID. 401 authentication_required: API key or token is missing, invalid, or revoked. 403 permission_denied: Your plan does not include API access, or this workspace is not in your org. 404 resource_not_found: No workspace with that ID exists. 429 rate_limit_exceeded: You sent too many requests this minute.\",\"url\":\"https://docs.mymarky.ai/api-reference/get-business\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mymarky.ai/api-reference/get-business#webpage\"},\"dateModified\":\"2026-11-03T18:41:05.933Z\",\"publisher\":{\"@id\":\"https://docs.mymarky.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mymarky.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Marky API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Marky API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Generation","pages":[{"title":"Generate posts","openapi":"public-openapi.json post /api/businesses/{business_id}/posts/generate","href":"/api-reference/generate-posts"},{"title":"Get job status","openapi":"public-openapi.json get /api/businesses/{business_id}/jobs/{job_id}","href":"/api-reference/get-job-status"}]},{"group":"Posts","pages":[{"title":"Video Posts","href":"/api-reference/video-posts"},{"title":"Create post","openapi":"public-openapi.json post /api/businesses/{business_id}/posts","href":"/api-reference/create-post"},{"title":"List posts","openapi":"public-openapi.json get /api/businesses/{business_id}/posts","href":"/api-reference/list-posts"},{"title":"Get post","openapi":"public-openapi.json get /api/businesses/{business_id}/posts/{post_id}","href":"/api-reference/get-post"},{"title":"Update post","openapi":"public-openapi.json patch /api/businesses/{business_id}/posts/{post_id}","href":"/api-reference/update-post"},{"title":"Schedule post","openapi":"public-openapi.json post /api/businesses/{business_id}/posts/{post_id}/schedule","href":"/api-reference/schedule-post"},{"title":"Publish post now","openapi":"public-openapi.json post /api/businesses/{business_id}/posts/{post_id}/publish","href":"/api-reference/publish-post"}]},{"group":"Team review","pages":[{"title":"List post comments","openapi":"public-openapi.json get /api/businesses/{business_id}/posts/{post_id}/comments","href":"/api-reference/list-post-comments"},{"title":"Add post comment","openapi":"public-openapi.json post /api/businesses/{business_id}/posts/{post_id}/comments","href":"/api-reference/create-post-comment"},{"title":"Resolve post comment","openapi":"public-openapi.json patch /api/businesses/{business_id}/posts/{post_id}/comments/{comment_id}","href":"/api-reference/resolve-post-comment"}]},{"group":"Stats","pages":[{"title":"Stats Coverage by Platform","href":"/api-reference/stats-coverage"},{"title":"Get post stats","openapi":"public-openapi.json get /api/businesses/{business_id}/posts/{post_id}/stats","href":"/api-reference/get-post-stats"},{"title":"Get integration stats","openapi":"public-openapi.json get /api/businesses/{business_id}/integrations/{integration_id}/stats","href":"/api-reference/get-integration-stats"},{"title":"Get external post stats","openapi":"public-openapi.json get /api/businesses/{business_id}/integrations/{integration_id}/posts/{external_post_id}/stats","href":"/api-reference/get-integration-post-stats"}]},{"group":"Integrations","pages":[{"title":"List integrations","openapi":"public-openapi.json get /api/businesses/{business_id}/integrations","href":"/api-reference/list-integrations"},{"title":"List posts on a platform","openapi":"public-openapi.json get /api/businesses/{business_id}/integrations/{integration_id}/posts","href":"/api-reference/list-integration-posts"}]},{"group":"Workspaces","pages":[{"title":"Create workspace","openapi":"public-openapi.json post /api/workspaces","href":"/api-reference/create-business"},{"title":"List workspaces","openapi":"public-openapi.json get /api/workspaces","description":"List the workspaces you can access.\n\nAn API key sees its organization's workspaces. A signed-in user sees every\nworkspace in an org they own or administer, plus only the specific workspaces\nthey were added to in an org where they are a guest.\n\nSTART HERE: every other endpoint takes a workspace id (the `business_id`\nparameter), and this is the tool that returns them. An agent with no workspace\nid in context begins with this call. Returns SUMMARY rows only (id, name,\ndescription, industry, website, language, timestamps), newest first. To read a\nworkspace's full profile (strategy doc, design style, writing instructions),\ncall get_workspace with the id from this list. Optional `name` narrows the list\nby case-insensitive substring match. If `next` is set, keep paging with it\nbefore concluding a workspace doesn't exist.\n\nErrors:\n 401 authentication_required: API key or token is missing, invalid, or revoked.\n 403 permission_denied: Your plan does not include API access.\n 429 rate_limit_exceeded: You sent too many requests this minute.","href":"/api-reference/list-businesses"},{"title":"Get workspace","openapi":"public-openapi.json get /api/workspaces/{workspace_id}","href":"/api-reference/get-business"},{"title":"Update workspace","openapi":"public-openapi.json patch /api/workspaces/{workspace_id}","description":"Update a workspace. Only provided fields are changed.\n\nChanging the website does not rewrite posts that are already made.\n`propagation` says how many unpublished posts still carry the old value and\ngives the update_posts call that fixes them.\n\nErrors:\n 400 invalid_request: No fields were given to update.\n 400 invalid_value: The workspace id is not a valid UUID.\n 401 authentication_required: API key or token is missing, invalid, or revoked.\n 403 permission_denied: Your plan does not include API access, or this workspace is not in your org.\n 404 resource_not_found: No workspace with that ID exists.\n 409 NAME_MATCHES_OTHER_WORKSPACE: Another workspace in your org already has that name. Nothing was saved. Send allow_duplicate_name=true to rename anyway.\n 429 rate_limit_exceeded: You sent too many requests this minute.","href":"/api-reference/update-business"},{"title":"Delete workspace","openapi":"public-openapi.json delete /api/workspaces/{workspace_id}","href":"/api-reference/delete-business"}]},{"group":"Topics","pages":[{"title":"create topic","openapi":"public-openapi.json post /api/businesses/{business_id}/topics","href":"/api-reference/create-topic"},{"title":"list topics","openapi":"public-openapi.json get /api/businesses/{business_id}/topics","href":"/api-reference/list-topics"},{"title":"get topic","openapi":"public-openapi.json get /api/businesses/{business_id}/topics/{topic_id}","href":"/api-reference/get-topic"},{"title":"update topic","openapi":"public-openapi.json patch /api/businesses/{business_id}/topics/{topic_id}","href":"/api-reference/update-topic"},{"title":"delete topic","openapi":"public-openapi.json delete /api/businesses/{business_id}/topics/{topic_id}","href":"/api-reference/delete-topic"}]},{"group":"Media","pages":[{"title":"Upload media","openapi":"public-openapi.json post /api/businesses/{business_id}/media","href":"/api-reference/upload-media"},{"title":"List media","openapi":"public-openapi.json get /api/businesses/{business_id}/library","href":"/api-reference/list-media"},{"title":"Get media","openapi":"public-openapi.json get /api/businesses/{business_id}/library/{media_id}","href":"/api-reference/get-media"},{"title":"Delete media","openapi":"public-openapi.json delete /api/businesses/{business_id}/library/{media_id}","href":"/api-reference/delete-media"}]},{"group":"Folders","pages":[{"title":"Create folder","openapi":"public-openapi.json post /api/businesses/{business_id}/folders","href":"/api-reference/create-folder"},{"title":"List folders","openapi":"public-openapi.json get /api/businesses/{business_id}/folders","href":"/api-reference/list-folders"},{"title":"Get folder","openapi":"public-openapi.json get /api/businesses/{business_id}/folders/{folder_id}","href":"/api-reference/get-folder"},{"title":"Update folder","openapi":"public-openapi.json patch /api/businesses/{business_id}/folders/{folder_id}","href":"/api-reference/update-folder"},{"title":"Delete folder","openapi":"public-openapi.json delete /api/businesses/{business_id}/folders/{folder_id}","href":"/api-reference/delete-folder"}]},{"group":"Files","pages":[{"title":"Create file","openapi":"public-openapi.json post /api/businesses/{business_id}/library/files","href":"/api-reference/create-file"},{"title":"List files","openapi":"public-openapi.json get /api/businesses/{business_id}/files","href":"/api-reference/list-files"},{"title":"Get file","openapi":"public-openapi.json get /api/businesses/{business_id}/files/{file_id}","href":"/api-reference/get-file"},{"title":"Update file","openapi":"public-openapi.json put /api/businesses/{business_id}/files/{file_id}","href":"/api-reference/update-file"},{"title":"Delete file","openapi":"public-openapi.json delete /api/businesses/{business_id}/files/{file_id}","href":"/api-reference/delete-file"},{"title":"Attach media to file","openapi":"public-openapi.json post /api/businesses/{business_id}/files/{file_id}/media","href":"/api-reference/attach-media"}]},{"group":"Webhooks","pages":[{"title":"Register webhook","openapi":"public-openapi.json post /api/webhooks","href":"/api-reference/create-webhook"},{"title":"List webhooks","openapi":"public-openapi.json get /api/webhooks","href":"/api-reference/list-webhooks"},{"title":"Delete webhook","openapi":"public-openapi.json delete /api/webhooks/{webhook_id}","href":"/api-reference/delete-webhook"},{"title":"List webhook deliveries","openapi":"public-openapi.json get /api/webhooks/{webhook_id}/deliveries","href":"/api-reference/list-webhook-deliveries"}]},{"group":"Feedback","pages":[{"title":"Submit feedback","openapi":"public-openapi.json post /api/feedback","href":"/api-reference/submit-feedback"}]}]}]},"basePath":"","title":"Get workspace - Marky API","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}