{"openapi":"3.1.0","info":{"title":"Croud API","version":"1.0.0","description":"REST API for the Croud Instagram ads marketplace. Authenticate with a workspace API key: `Authorization: Bearer crd_live_…`. Errors use `{ error: { code, message, details } }`. Lists use cursor pagination (`limit`, `cursor` → `has_more`, `next_cursor`). Rate limits are per workspace and reported in `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`."},"servers":[{"url":"https://croud.ai/api"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Workspace","description":"The workspace behind the API key, its plan and usage."},{"name":"Members","description":"The workspace's members and invitations."},{"name":"Webhooks","description":"Endpoints that receive signed events (placements, campaigns, payouts…) as they happen."},{"name":"Catalog","description":"Ad formats and caption templates, with plan and workspace availability applied. Create and publish your own templates."},{"name":"Campaigns","description":"Advertiser campaigns: create, edit, launch, pause and preview matching creators."},{"name":"Creatives","description":"Ad creatives (caption, hashtags, media) attached to campaigns, and the media library."},{"name":"Unique posts","description":"Per-creator variants: with unique posts on, every creator gets a post with its own angle, caption and design. Review, edit, rewrite or approve them."},{"name":"Brand kits","description":"A workspace's visual identity (colors, fonts, logos, handle) applied to designs and unique-post visuals."},{"name":"Design studio","description":"Design templates, slide layouts and designs: branded carousels, posts and stories written with AI and exported to images, PDFs or creatives."},{"name":"Placements","description":"Ad slots on creator accounts: the review inbox for creators and delivery tracking for advertisers."},{"name":"Opportunities","description":"Creator side of open campaigns: offers with a set price per post that your accounts can accept."},{"name":"Requests","description":"Advertiser side of direct requests and open-campaign applications: send, negotiate and review."},{"name":"Accounts","description":"Connected creator accounts, their ad policy, requirements and rate cards."},{"name":"Marketplace","description":"Search listed creator accounts."},{"name":"Personas","description":"Brand voices used by AI content generation."},{"name":"AI","description":"Generate captions, hashtags, scripts and ideas. Generations route automatically (your own key, else platform models with fallbacks); list models with `GET /v1/ai/models` and pass a `ref` as `model` to pick one."},{"name":"Analytics","description":"Performance reporting."},{"name":"Wallet","description":"Balances and the transaction ledger."},{"name":"Reference data","description":"Valid keys for categories, countries, objectives and decline reasons."}],"paths":{"/v1/me":{"get":{"operationId":"me.get","summary":"Get the authenticated workspace","description":"Returns the workspace (its profile and the `sides` it runs: creator, advertiser or both; edit the profile with `PATCH /v1/workspace`), plan, limits and feature flags the API key belongs to, plus the key's scopes and effective permissions: the scopes' permissions, limited to the creating member's role and to the workspace's sides. Endpoints of a side the workspace doesn't run return 403. Use it to verify a key.","tags":["Workspace"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"workspace_identity","workspace":{"id":"cmf0ws0001","name":"Lumen Skincare","slug":"lumen-skincare","creator_enabled":false,"advertiser_enabled":true,"sides":["advertiser"],"currency":"USD","timezone":"America/New_York","logo_url":"https://lumen.example/logo.png","website":"https://lumen.example","instagram_handle":"lumen.skincare","description":"Science-backed skincare without the jargon.","industry":"beauty","country":"US"},"plan":{"key":"pro","name":"Pro"},"api_key":{"id":"cmf0key001","name":"Production","prefix":"crd_live_8fQ2","scopes":["placements:read","placements:write"],"expires_at":null},"permissions":["accounts.read","campaigns.read","placements.review"],"features":{"api":true,"mcp":true,"webhooks":true},"limits":{"api_requests_per_minute":300,"webhook_endpoints":10,"active_campaigns":50}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":[],"x-mcp-tool":"whoami"}},"/v1/usage":{"get":{"operationId":"usage.get","summary":"Get usage and AI credits","description":"AI credit balance and metered usage (API requests, MCP tool calls, AI generations) for the current billing period. Limits of -1 mean unlimited.","tags":["Workspace"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"usage","period":"2026-10","ai_credits":{"balance":2840,"monthly_allowance":3000},"metrics":{"api_requests":1204,"mcp_calls":87,"ai_generations":160},"limits":{"api_requests_per_minute":300}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":[],"x-mcp-tool":"get_usage"}},"/v1/formats":{"get":{"operationId":"formats.list","summary":"List ad formats","description":"Every ad format with its effective availability for this workspace after platform, plan and workspace controls. `can_launch` is false for `draft_only` and `disabled` formats.\n\nRequired scope: `templates:read`.","tags":["Catalog"],"parameters":[{"name":"platform","in":"query","required":false,"description":"Filter by platform","schema":{"type":"string","enum":["instagram"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"key":"ig_reel","object":"format","platform":"instagram","name":"Reel","description":"Vertical video up to 90s","specs":{"mediaTypes":["video"],"aspectRatios":["9:16"]},"availability":"enabled","can_launch":true,"restricted_by":null,"reason":null}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:read"],"x-mcp-tool":"list_formats"}},"/v1/templates":{"get":{"operationId":"templates.list","summary":"List templates","description":"Platform and workspace templates visible to this workspace, each with its effective availability. Hidden templates are omitted.\n\nRequired scope: `templates:read`.","tags":["Catalog"],"parameters":[{"name":"format","in":"query","required":false,"description":"Filter by format key, e.g. `ig_reel`","schema":{"type":"string","maxLength":64}},{"name":"source","in":"query","required":false,"description":"Only platform or only workspace templates","schema":{"type":"string","enum":["platform","workspace"]}},{"name":"category","in":"query","required":false,"description":"Filter by content type key (see `GET /v1/reference/content_type`), e.g. `product_launch`","schema":{"type":"string","maxLength":64}},{"name":"search","in":"query","required":false,"description":"Case-insensitive match on name and description","schema":{"type":"string","maxLength":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0tpl001","object":"template","source":"platform","platform":"instagram","format":"ig_carousel","name":"Product launch carousel","description":"Five-slide launch story","category":"product_launch","status":"published","min_plan":null,"content":{"captionTemplate":"Meet {{product}}…","hashtags":["#launch"]},"thumbnail_url":null,"tags":[],"version":3,"availability":"enabled","reason":null,"updated_at":"2026-10-01T09:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:read"],"x-mcp-tool":"list_templates"},"post":{"operationId":"templates.create","summary":"Create a template","description":"Creates a workspace caption template as a `draft` (or `published` right away). Counts toward the plan's template limit. Use `{{variables}}` in the caption; `POST /v1/creatives/render-template` fills them.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80},"description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"format":{"type":"string","minLength":1,"maxLength":40,"description":"Format key, e.g. `ig_carousel` (see `GET /v1/formats`)"},"category":{"description":"`content_type` reference key","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"tags":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":30}},"content":{"type":"object","properties":{"caption_template":{"type":"string","maxLength":2200,"description":"Caption with `{{variables}}`"},"hashtags":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":101}},"cta":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"variables":{"description":"Declared variables; undeclared `{{keys}}` in the caption are added automatically","maxItems":30,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":40,"description":"Used as `{{key}}` in the caption"},"label":{"type":"string","maxLength":60},"default":{"type":"string","maxLength":300}},"required":["key"]}},"media_guidance":{"description":"Notes on visuals for whoever makes the media","type":"string","maxLength":1000}},"required":["caption_template"],"description":"Caption structure, hashtags, CTA and media guidance"},"status":{"default":"draft","type":"string","enum":["draft","published"]}},"required":["name","format","content"]},"example":{"name":"Launch carousel","format":"ig_carousel","category":"product_launch","content":{"caption_template":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now"}}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"draft","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":1,"availability":"draft_only","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"create_template"}},"/v1/workspace":{"get":{"operationId":"workspace.get","summary":"Get the workspace profile","description":"The workspace's profile: name, logo, website, Instagram username, description, industry, country and time zone, plus the sides it runs.","tags":["Workspace"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0ws0001","object":"workspace","name":"Lumen Skincare","slug":"lumen-skincare","logo_url":"https://lumen.example/logo.png","website":"https://lumen.example","instagram_handle":"lumen.skincare","description":"Science-backed skincare without the jargon.","industry":"beauty","country":"US","timezone":"America/New_York","creator_enabled":false,"advertiser_enabled":true,"sides":["advertiser"],"created_at":"2026-09-01T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":[],"x-mcp-tool":"get_workspace"},"patch":{"operationId":"workspace.update","summary":"Update the workspace profile","description":"Update profile fields; omitted fields keep their values and `null` or `\"\"` clears one (the name can't be cleared). `industry` is an `ad_category` key and `country` a `country` key (see `GET /v1/reference/{list}`). The Instagram username is invited as collaborator on collab posts. The URL, sides and billing stay in the app.\n\nRequired scope: `workspace:write`.","tags":["Workspace"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":60},"logo_url":{"description":"https:// image URL or a media library path (`/uploads/…`)","anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"website":{"description":"https:// URL","anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"instagram_handle":{"description":"Instagram username, with or without @","anyOf":[{"type":"string","maxLength":31},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"industry":{"description":"`ad_category` reference key","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"country":{"description":"ISO country code (`country` reference key)","anyOf":[{"type":"string","maxLength":2},{"type":"null"}]},"timezone":{"description":"IANA time zone, e.g. `Europe/Paris`","type":"string","maxLength":64}}},"example":{"website":"https://lumen.example","instagram_handle":"lumen.skincare","timezone":"America/New_York"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0ws0001","object":"workspace","name":"Lumen Skincare","slug":"lumen-skincare","logo_url":"https://lumen.example/logo.png","website":"https://lumen.example","instagram_handle":"lumen.skincare","description":"Science-backed skincare without the jargon.","industry":"beauty","country":"US","timezone":"America/New_York","creator_enabled":false,"advertiser_enabled":true,"sides":["advertiser"],"created_at":"2026-09-01T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["workspace:write"],"x-mcp-tool":"update_workspace"}},"/v1/members":{"get":{"operationId":"members.list","summary":"List members","description":"Everyone in the workspace with their role, access scope, teams and status, oldest first.\n\nRequired scope: `members:read`.","tags":["Members"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0mem001","object":"member","user_id":"cmf0usr001","name":"Jordan Lee","email":"jordan@lumen.example","role":{"id":"cmf0rol001","key":"admin","name":"Admin","is_system":true,"is_owner":false},"access_scope":"all","status":"active","teams":[],"two_factor_enabled":true,"joined_at":"2026-09-01T10:00:00.000Z","last_active_at":"2026-10-30T08:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:read"],"x-mcp-tool":"list_members"}},"/v1/invitations":{"get":{"operationId":"invitations.list","summary":"List invitations","description":"Pending and expired invitations, newest first. Pending invitations count toward the plan's seats.\n\nRequired scope: `members:read`.","tags":["Members"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0inv001","object":"invitation","email":"sam@lumen.example","role":{"id":"cmf0rol003","name":"Member"},"status":"pending","access_scope":"all","teams":[],"invited_by":"Jordan Lee","expires_at":"2026-11-08T10:00:00.000Z","created_at":"2026-11-01T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:read"],"x-mcp-tool":"list_invitations"},"post":{"operationId":"invitations.create","summary":"Invite members","description":"Emails an invitation to each address (up to 50). Re-inviting a pending address replaces its invitation. You can only grant roles whose permissions the key's creator holds; custom roles and team-scoped access depend on the plan. If the key's creator is team-scoped, invitations must use `access_scope: teams` with teams they belong to. Invitees must sign in with the invited email, and it must be verified, to join.\n\nRequired scope: `members:write`.","tags":["Members"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","maxLength":254}},"role":{"type":"string","minLength":1,"maxLength":64,"description":"System role key (`admin`, `manager`, `member`, `billing`, `viewer`) or a custom role id"},"access_scope":{"default":"all","description":"`teams`: only the teams in `team_ids` (plan feature)","type":"string","enum":["all","teams"]},"team_ids":{"default":[],"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":64}}},"required":["emails","role"]},"example":{"emails":["sam@lumen.example"],"role":"member"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0inv001","object":"invitation","email":"sam@lumen.example","role":{"id":"cmf0rol003","name":"Member"},"status":"pending","access_scope":"all","teams":[],"invited_by":"Jordan Lee","expires_at":"2026-11-08T10:00:00.000Z","created_at":"2026-11-01T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:write"],"x-mcp-tool":"invite_members"}},"/v1/invitations/{id}/resend":{"post":{"operationId":"invitations.resend","summary":"Resend an invitation","description":"Emails a pending or expired invitation again with a fresh link, valid for another 7 days. Earlier links stop working. Re-activating an expired invitation needs a free seat; you can only resend invitations for roles you could grant.\n\nRequired scope: `members:write`.","tags":["Members"],"parameters":[{"name":"id","in":"path","required":true,"description":"Invitation ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0inv001","object":"invitation","email":"sam@lumen.example","role":{"id":"cmf0rol003","name":"Member"},"status":"pending","access_scope":"all","teams":[],"invited_by":"Jordan Lee","expires_at":"2026-11-08T10:00:00.000Z","created_at":"2026-11-01T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:write"],"x-mcp-tool":"resend_invitation"}},"/v1/invitations/{id}":{"delete":{"operationId":"invitations.revoke","summary":"Revoke an invitation","description":"Cancels a pending or expired invitation: its link stops working and the seat is freed. Accepted invitations can't be revoked; remove the member instead.\n\nRequired scope: `members:write`.","tags":["Members"],"parameters":[{"name":"id","in":"path","required":true,"description":"Invitation ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0inv001","object":"invitation","revoked":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:write"],"x-mcp-tool":"revoke_invitation"}},"/v1/members/{id}":{"patch":{"operationId":"members.update","summary":"Update a member","description":"Change a member's role, access scope or teams. Omitted fields keep their values. You can only grant roles whose permissions the key's creator holds; owners' access can only be changed in the app, by another owner. A key can't change its own creator's membership.\n\nRequired scope: `members:write`.","tags":["Members"],"parameters":[{"name":"id","in":"path","required":true,"description":"Member ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"description":"System role key (`admin`, `manager`, `member`, `billing`, `viewer`) or a custom role id","type":"string","minLength":1,"maxLength":64},"access_scope":{"description":"`teams`: only the teams in `team_ids` (plan feature)","type":"string","enum":["all","teams"]},"team_ids":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":64}}}},"example":{"role":"manager"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0mem001","object":"member","user_id":"cmf0usr001","name":"Jordan Lee","email":"jordan@lumen.example","role":{"id":"cmf0rol002","key":"manager","name":"Manager","is_system":true,"is_owner":false},"access_scope":"all","status":"active","teams":[],"two_factor_enabled":true,"joined_at":"2026-09-01T10:00:00.000Z","last_active_at":"2026-10-30T08:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:write"],"x-mcp-tool":"update_member"},"delete":{"operationId":"members.remove","summary":"Remove a member","description":"Removes someone from the workspace: they lose access immediately and API keys they created are revoked. The last owner can't be removed, owners can only be removed in the app by another owner, and a key can't remove its own creator.\n\nRequired scope: `members:write`.","tags":["Members"],"parameters":[{"name":"id","in":"path","required":true,"description":"Member ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0mem001","object":"member","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["members:write"],"x-mcp-tool":"remove_member"}},"/v1/webhooks":{"get":{"operationId":"webhooks.list","summary":"List webhook endpoints","description":"Webhook endpoints with their subscribed events and the last 7 days of delivery counts. Secrets are never returned here.\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0whk001","object":"webhook_endpoint","url":"https://hooks.lumen.example/croud","description":"Placement updates","events":["placement.approved","placement.published"],"enabled":true,"failure_count":0,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-01T10:00:00.000Z","stats_7d":{"succeeded":42,"failed":0,"pending":1}}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"list_webhooks"},"post":{"operationId":"webhooks.create","summary":"Create a webhook endpoint","description":"Registers an https:// endpoint for the given events. The signing `secret` is returned once, in this response: verify the `Croud-Signature` header with it. Plan feature `webhooks`; counts toward the plan's endpoint limit.\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000,"description":"https:// URL that receives POSTed events"},"description":{"type":"string","maxLength":200},"events":{"minItems":1,"maxItems":39,"type":"array","items":{"type":"string","maxLength":64},"description":"Event types to receive, or `[\"*\"]` for every event (events of a side the workspace doesn't run are refused)"}},"required":["url","events"]},"example":{"url":"https://hooks.lumen.example/croud","events":["placement.approved","placement.published"],"description":"Placement updates"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0whk001","object":"webhook_endpoint","url":"https://hooks.lumen.example/croud","description":"Placement updates","events":["placement.approved","placement.published"],"enabled":true,"failure_count":0,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-01T10:00:00.000Z","secret":"whsec_8fQ2…"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"create_webhook"}},"/v1/webhooks/{id}":{"get":{"operationId":"webhooks.get","summary":"Get a webhook endpoint","description":"One webhook endpoint (without its secret).\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook endpoint ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0whk001","object":"webhook_endpoint","url":"https://hooks.lumen.example/croud","description":"Placement updates","events":["placement.approved","placement.published"],"enabled":true,"failure_count":0,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-01T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"get_webhook"},"patch":{"operationId":"webhooks.update","summary":"Update a webhook endpoint","description":"Change the URL, description or events, or turn the endpoint on or off (`enabled`). Turning it back on resets the failure count. Omitted fields keep their values.\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook endpoint ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000},"description":{"type":"string","maxLength":200},"events":{"minItems":1,"maxItems":39,"type":"array","items":{"type":"string","maxLength":64},"description":"Event types to receive, or `[\"*\"]` for every event (events of a side the workspace doesn't run are refused)"},"enabled":{"type":"boolean"}}},"example":{"events":["*"],"enabled":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0whk001","object":"webhook_endpoint","url":"https://hooks.lumen.example/croud","description":"Placement updates","events":["*"],"enabled":true,"failure_count":0,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-01T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"update_webhook"},"delete":{"operationId":"webhooks.delete","summary":"Delete a webhook endpoint","description":"Deletes the endpoint and its delivery history. Pending retries are dropped.\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook endpoint ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0whk001","object":"webhook_endpoint","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"delete_webhook"}},"/v1/webhooks/{id}/test":{"post":{"operationId":"webhooks.test","summary":"Send a test event","description":"Sends a signed `webhook.test` event to the endpoint now and returns the outcome. Test deliveries aren't retried and don't count toward auto-disable.\n\nRequired scope: `webhooks:write`.","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook endpoint ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"webhook_test","delivery_id":"cmf0dlv001","ok":true,"status":200,"error":null,"duration_ms":182}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["webhooks:write"],"x-mcp-tool":"test_webhook"}},"/v1/templates/{id}":{"get":{"operationId":"templates.get","summary":"Get a template","description":"One platform or workspace template with its availability. `editable` is true for the workspace's own templates.\n\nRequired scope: `templates:read`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"draft","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":1,"availability":"draft_only","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:read"],"x-mcp-tool":"get_template"},"patch":{"operationId":"templates.update","summary":"Update a template","description":"Edit a workspace template; omitted fields keep their values. Content changes create a new version. Platform templates are read-only: duplicate one in the app to edit it.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80},"description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"format":{"type":"string","minLength":1,"maxLength":40,"description":"Format key, e.g. `ig_carousel` (see `GET /v1/formats`)"},"category":{"description":"`content_type` reference key","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"tags":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":30}},"content":{"type":"object","properties":{"caption_template":{"type":"string","maxLength":2200,"description":"Caption with `{{variables}}`"},"hashtags":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":101}},"cta":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"variables":{"description":"Declared variables; undeclared `{{keys}}` in the caption are added automatically","maxItems":30,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":40,"description":"Used as `{{key}}` in the caption"},"label":{"type":"string","maxLength":60},"default":{"type":"string","maxLength":300}},"required":["key"]}},"media_guidance":{"description":"Notes on visuals for whoever makes the media","type":"string","maxLength":1000}},"required":["caption_template"],"description":"Caption structure, hashtags, CTA and media guidance"}}},"example":{"name":"Launch carousel v2","content":{"caption_template":"{{product}} is here. {{benefit}}"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"draft","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":2,"availability":"draft_only","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"update_template"},"delete":{"operationId":"templates.delete","summary":"Delete a template","description":"Permanently deletes an archived workspace template and its versions.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"delete_template"}},"/v1/templates/{id}/publish":{"post":{"operationId":"templates.publish","summary":"Publish a template","description":"Makes a workspace template available for creatives (from `draft`, or restores an archived one). The format must be enabled for the workspace.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"published","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":1,"availability":"enabled","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"publish_template"}},"/v1/templates/{id}/unpublish":{"post":{"operationId":"templates.unpublish","summary":"Move a template back to draft","description":"Turns a published or archived workspace template back into a draft.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"draft","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":1,"availability":"draft_only","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"unpublish_template"}},"/v1/templates/{id}/archive":{"post":{"operationId":"templates.archive","summary":"Archive a template","description":"Hides a workspace template from pickers. Creatives that used it keep their content. Archived templates can be published again or deleted.\n\nRequired scope: `templates:write`.","tags":["Catalog"],"parameters":[{"name":"id","in":"path","required":true,"description":"Template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0tpl009","object":"template","source":"workspace","platform":"instagram","format":"ig_carousel","name":"Launch carousel","description":"Five slides: hook, problem, product, proof, offer","category":"product_launch","status":"archived","min_plan":null,"content":{"captionTemplate":"Meet {{product}}. {{benefit}}","hashtags":["launch"],"cta":"Shop now","variables":[{"key":"product","label":"Product","default":""},{"key":"benefit","label":"Benefit","default":""}]},"thumbnail_url":null,"tags":["launch"],"version":1,"availability":"hidden","reason":null,"updated_at":"2026-11-01T10:00:00.000Z","editable":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"archive_template"}},"/v1/media":{"get":{"operationId":"media.list","summary":"List media","description":"Images and videos in the workspace's media library, newest first. Use an item's `id` as `media[].asset_id` and its `url` in a creative.\n\nRequired scope: `creatives:read`.","tags":["Creatives"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"type","in":"query","required":false,"description":"","schema":{"type":"string","enum":["image","video"]}},{"name":"folder","in":"query","required":false,"description":"Folder name","schema":{"type":"string","maxLength":60}},{"name":"search","in":"query","required":false,"description":"Match on the file name","schema":{"type":"string","maxLength":120}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0med001","object":"media","url":"https://croud.ai/uploads/ws/serum.jpg","filename":"serum.jpg","type":"image","mime_type":"image/jpeg","size_bytes":248120,"width":1080,"height":1350,"duration_sec":null,"folder":"Autumn launch","created_at":"2026-10-20T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_media"},"post":{"operationId":"media.create","summary":"Add media from a URL","description":"Downloads a public https:// image or video into the media library. Files are checked by content (JPEG, PNG, WebP, GIF, MP4, MOV, WebM) and size, and count toward the plan's storage. For videos, pass `width`, `height` and `duration_sec`.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000,"description":"Public https:// URL of the file"},"filename":{"type":"string","minLength":1,"maxLength":200},"folder":{"anyOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"null"}]},"width":{"type":"integer","minimum":1,"maximum":20000},"height":{"type":"integer","minimum":1,"maximum":20000},"duration_sec":{"type":"number","minimum":0,"maximum":86400}},"required":["url"]},"example":{"url":"https://cdn.lumen.example/serum.jpg","folder":"Autumn launch"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0med001","object":"media","url":"https://croud.ai/uploads/ws/serum.jpg","filename":"serum.jpg","type":"image","mime_type":"image/jpeg","size_bytes":248120,"width":1080,"height":1350,"duration_sec":null,"folder":"Autumn launch","created_at":"2026-10-20T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"add_media_from_url"}},"/v1/media/{id}":{"delete":{"operationId":"media.delete","summary":"Delete media","description":"Deletes a file from the library. Refused while a ready creative, a design, a brand kit or a booked post uses it.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Media ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0med001","object":"media","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"delete_media"}},"/v1/campaigns":{"get":{"operationId":"campaigns.list","summary":"List campaigns","description":"Campaigns in the workspace (team-scoped keys only see their teams'), most recently updated first. Archived campaigns are excluded unless `status=archived` or `status=all`.\n\nRequired scope: `campaigns:read`.","tags":["Campaigns"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"A status, `live` (active, scheduled, pending review) or `all`","schema":{"type":"string","enum":["draft","pending_review","scheduled","active","paused","completed","canceled","archived","all","live"]}},{"name":"team_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"search","in":"query","required":false,"description":"Match on campaign name","schema":{"type":"string","maxLength":120}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","placement_count":6,"live_placements":2,"reach":81200,"impressions":120400,"creative_count":2}],"has_more":false,"next_cursor":null,"total":1}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"list_campaigns"},"post":{"operationId":"campaigns.create","summary":"Create a campaign","description":"Creates a `draft` campaign. Add creatives, set a budget and launch it when ready. `type` picks how creators are reached: `targeted` (matched requests), `open` (an offer creators accept; the budget is escrowed at launch) or `direct` (hand-picked requests). Open campaigns, direct requests and collab posts depend on your plan. Audience demographics and hand-picked accounts require advanced targeting. The whole body is validated before anything is saved: if any field is rejected, no draft is created.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"type":{"default":"targeted","type":"string","enum":["targeted","open","direct"],"description":"`targeted` (default): requests go to matching creators at their rates. `open`: you set `offer_price_cents` and creators accept from their account. `direct`: you send hand-picked creators requests (`POST /v1/requests`). Can only change while a draft."},"objective":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","description":"awareness | engagement | traffic | conversions | launch"},"category":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","description":"Ad category used for creator policy matching, e.g. `beauty`"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"landing_url":{"description":"https:// URL","anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"team_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"persona_id":{"description":"Brand voice for AI-generated copy","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"budget_cents":{"type":"integer","minimum":0,"maximum":1000000000},"max_price_per_post_cents":{"anyOf":[{"type":"integer","minimum":100,"maximum":100000000},{"type":"null"}]},"offer_price_cents":{"description":"Open campaigns: price per post offered to every creator (at least the platform minimum)","anyOf":[{"type":"integer","minimum":100,"maximum":100000000},{"type":"null"}]},"acceptance_mode":{"description":"Open campaigns: `instant` books the slot when a creator accepts; `review` creates an application you approve or decline","type":"string","enum":["instant","review"]},"collab":{"description":"Posts are Instagram collab posts with your brand as collaborator (plan-gated)","type":"boolean"},"collab_handles":{"description":"Instagram usernames invited as collaborators (max 3)","maxItems":3,"type":"array","items":{"type":"string","maxLength":31}},"start_date":{"description":"ISO date or datetime; null = start at launch","anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"end_date":{"description":"ISO date or datetime; null = run until budget is spent","anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"targeting":{"type":"object","properties":{"niches":{"description":"Creator niches, e.g. `beauty`, `fitness`","maxItems":20,"type":"array","items":{"type":"string","minLength":1}},"countries":{"description":"ISO country codes of the creator","maxItems":50,"type":"array","items":{"type":"string","minLength":2,"maxLength":2}},"languages":{"maxItems":20,"type":"array","items":{"type":"string","minLength":2,"maxLength":5}},"min_followers":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"max_followers":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"min_engagement":{"description":"Minimum engagement rate, percent","anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"audience_gender":{"description":"Advanced targeting (plan-gated)","anyOf":[{"type":"string","enum":["female","male","any"]},{"type":"null"}]},"audience_ages":{"description":"Advanced targeting, e.g. `18-24`","maxItems":10,"type":"array","items":{"type":"string"}},"include_account_ids":{"description":"Hand-picked accounts (advanced targeting)","maxItems":500,"type":"array","items":{"type":"string","minLength":1}},"exclude_account_ids":{"maxItems":500,"type":"array","items":{"type":"string","minLength":1}},"max_placements":{"description":"Cap on placements for the campaign","anyOf":[{"type":"integer","minimum":1,"maximum":1000},{"type":"null"}]}},"description":"Which creator accounts the campaign matches"},"brand_kit_id":{"description":"Brand kit for designs and unique-post visuals (defaults to the workspace's default kit)","anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"null"}]},"variants_enabled":{"description":"Write a unique post for every creator (plan feature `creativeVariants`; needs `variant_config`)","type":"boolean"},"variant_config":{"anyOf":[{"type":"object","properties":{"angles":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"`creative_angle` keys to rotate through (see `GET /v1/reference/creative_angle`)"},"design_template_ids":{"description":"Design templates rotated for image formats (see `GET /v1/design-templates`). Empty keeps the base creative's visuals","maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"caption_template_ids":{"description":"Caption templates used as structure (see `GET /v1/templates`)","maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"brief":{"type":"string","minLength":20,"maxLength":4000,"description":"What the product is, key messages and facts. Variants never claim anything outside it"},"must_include":{"description":"Locked elements every variant keeps","type":"object","properties":{"hashtags":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"mentions":{"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":31}},"cta":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"claims":{"description":"Approved claims: the only product claims variants may make","maxItems":10,"type":"array","items":{"type":"string","minLength":3,"maxLength":200}}}},"avoid":{"description":"Words, phrases or claims variants must never use","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"tailor_to_creator":{"description":"Write for each creator's niche, audience and voice (default true)","type":"boolean"},"review":{"description":"`review` (default): approve each variant before the creator sees it. `auto`: sent as soon as it's written","type":"string","enum":["auto","review"]},"fallback_to_base":{"description":"Send the base creative when a variant can't be written (default true)","type":"boolean"},"slide_count":{"description":"Slides for carousel designs (default 5)","type":"integer","minimum":2,"maximum":10}},"required":["angles","brief"],"description":"Unique posts per creator. Replaces the whole configuration when set"},{"type":"null"}]}},"required":["name","objective","category"]},"example":{"name":"Autumn glow launch","objective":"launch","category":"beauty","budget_cents":500000,"max_price_per_post_cents":60000,"start_date":"2026-11-01","end_date":"2026-11-30","landing_url":"https://lumen.example/serum","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000}}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"create_campaign"}},"/v1/campaigns/{id}":{"get":{"operationId":"campaigns.get","summary":"Get a campaign","description":"A campaign with its creatives, placements (with latest metrics) and performance totals.\n\nRequired scope: `campaigns:read`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"get_campaign"},"patch":{"operationId":"campaigns.update","summary":"Update a campaign","description":"Update any field of a draft or paused campaign. While a campaign is running only `name`, `description`, `landing_url`, `budget_cents`, `end_date`, `persona_id`, `acceptance_mode`, `brand_kit_id` and `variant_config` can change; the budget can't go below what's already committed. `variant_config` replaces the whole unique-posts configuration and applies to placements created afterwards.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"type":{"type":"string","enum":["targeted","open","direct"],"description":"`targeted` (default): requests go to matching creators at their rates. `open`: you set `offer_price_cents` and creators accept from their account. `direct`: you send hand-picked creators requests (`POST /v1/requests`). Can only change while a draft."},"objective":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","description":"awareness | engagement | traffic | conversions | launch"},"category":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$","description":"Ad category used for creator policy matching, e.g. `beauty`"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"landing_url":{"description":"https:// URL","anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"team_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"persona_id":{"description":"Brand voice for AI-generated copy","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"budget_cents":{"type":"integer","minimum":0,"maximum":1000000000},"max_price_per_post_cents":{"anyOf":[{"type":"integer","minimum":100,"maximum":100000000},{"type":"null"}]},"offer_price_cents":{"description":"Open campaigns: price per post offered to every creator (at least the platform minimum)","anyOf":[{"type":"integer","minimum":100,"maximum":100000000},{"type":"null"}]},"acceptance_mode":{"description":"Open campaigns: `instant` books the slot when a creator accepts; `review` creates an application you approve or decline","type":"string","enum":["instant","review"]},"collab":{"description":"Posts are Instagram collab posts with your brand as collaborator (plan-gated)","type":"boolean"},"collab_handles":{"description":"Instagram usernames invited as collaborators (max 3)","maxItems":3,"type":"array","items":{"type":"string","maxLength":31}},"start_date":{"description":"ISO date or datetime; null = start at launch","anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"end_date":{"description":"ISO date or datetime; null = run until budget is spent","anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"targeting":{"type":"object","properties":{"niches":{"description":"Creator niches, e.g. `beauty`, `fitness`","maxItems":20,"type":"array","items":{"type":"string","minLength":1}},"countries":{"description":"ISO country codes of the creator","maxItems":50,"type":"array","items":{"type":"string","minLength":2,"maxLength":2}},"languages":{"maxItems":20,"type":"array","items":{"type":"string","minLength":2,"maxLength":5}},"min_followers":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"max_followers":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"min_engagement":{"description":"Minimum engagement rate, percent","anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"audience_gender":{"description":"Advanced targeting (plan-gated)","anyOf":[{"type":"string","enum":["female","male","any"]},{"type":"null"}]},"audience_ages":{"description":"Advanced targeting, e.g. `18-24`","maxItems":10,"type":"array","items":{"type":"string"}},"include_account_ids":{"description":"Hand-picked accounts (advanced targeting)","maxItems":500,"type":"array","items":{"type":"string","minLength":1}},"exclude_account_ids":{"maxItems":500,"type":"array","items":{"type":"string","minLength":1}},"max_placements":{"description":"Cap on placements for the campaign","anyOf":[{"type":"integer","minimum":1,"maximum":1000},{"type":"null"}]}},"description":"Which creator accounts the campaign matches"},"brand_kit_id":{"description":"Brand kit for designs and unique-post visuals (defaults to the workspace's default kit)","anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"null"}]},"variants_enabled":{"description":"Write a unique post for every creator (plan feature `creativeVariants`; needs `variant_config`)","type":"boolean"},"variant_config":{"anyOf":[{"type":"object","properties":{"angles":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"`creative_angle` keys to rotate through (see `GET /v1/reference/creative_angle`)"},"design_template_ids":{"description":"Design templates rotated for image formats (see `GET /v1/design-templates`). Empty keeps the base creative's visuals","maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"caption_template_ids":{"description":"Caption templates used as structure (see `GET /v1/templates`)","maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"brief":{"type":"string","minLength":20,"maxLength":4000,"description":"What the product is, key messages and facts. Variants never claim anything outside it"},"must_include":{"description":"Locked elements every variant keeps","type":"object","properties":{"hashtags":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"mentions":{"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":31}},"cta":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"claims":{"description":"Approved claims: the only product claims variants may make","maxItems":10,"type":"array","items":{"type":"string","minLength":3,"maxLength":200}}}},"avoid":{"description":"Words, phrases or claims variants must never use","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"tailor_to_creator":{"description":"Write for each creator's niche, audience and voice (default true)","type":"boolean"},"review":{"description":"`review` (default): approve each variant before the creator sees it. `auto`: sent as soon as it's written","type":"string","enum":["auto","review"]},"fallback_to_base":{"description":"Send the base creative when a variant can't be written (default true)","type":"boolean"},"slide_count":{"description":"Slides for carousel designs (default 5)","type":"integer","minimum":2,"maximum":10}},"required":["angles","brief"],"description":"Unique posts per creator. Replaces the whole configuration when set"},{"type":"null"}]}}},"example":{"budget_cents":750000,"end_date":"2026-12-15"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"update_campaign"},"delete":{"operationId":"campaigns.delete","summary":"Delete a draft campaign","description":"Deletes a draft that never launched. Its creatives stay in the library. Use archive for anything else.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"delete_campaign"}},"/v1/campaigns/{id}/archive":{"post":{"operationId":"campaigns.archive","summary":"Archive a campaign","description":"Hides a draft, completed or canceled campaign from default lists.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"archived","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"archive_campaign"}},"/v1/campaigns/{id}/duplicate":{"post":{"operationId":"campaigns.duplicate","summary":"Duplicate a campaign","description":"Creates a new draft with the same settings, targeting and copies of its creatives.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"duplicate_campaign"}},"/v1/campaigns/{id}/readiness":{"get":{"operationId":"campaigns.readiness","summary":"Check launch readiness","description":"Everything that would block or affect a launch: blocking `error` issues and advisory `warning`s, wallet coverage, eligible accounts and the estimated placements within budget.\n\nRequired scope: `campaigns:read`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"launch_readiness","can_launch":false,"issues":[{"level":"error","message":"Add at least one creative marked ready."}],"ready_creatives":0,"wallet":{"available_cents":1250000,"reserved_cents":90000},"preview":{"eligible_count":12,"in_targeting":18,"estimated":true},"estimate":{"count":10,"cost_cents":450000,"follower_reach":480000}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"get_campaign_readiness"}},"/v1/campaigns/{id}/launch":{"post":{"operationId":"campaigns.launch","summary":"Launch a campaign","description":"Launches a `draft` campaign: checks formats, plan limits and wallet balance, then requests placements from every eligible creator account within budget. Creators with auto-approval accept instantly. Check `/readiness` first to see blocking issues.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"campaign_launch","campaign":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"},"placements_requested":6}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"launch_campaign"}},"/v1/campaigns/{id}/pause":{"post":{"operationId":"campaigns.pause","summary":"Pause a campaign","description":"Stops requesting new placements for an `active` or `scheduled` campaign. Already scheduled placements still publish; cancel them individually if needed.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"paused","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"pause_campaign"}},"/v1/campaigns/{id}/resume":{"post":{"operationId":"campaigns.resume","summary":"Resume a campaign","description":"Resumes a `paused` campaign: re-checks the wallet and requests any newly eligible accounts.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"campaign_launch","campaign":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"active","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"},"placements_requested":1}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"resume_campaign"}},"/v1/campaigns/{id}/cancel":{"post":{"operationId":"campaigns.cancel","summary":"Cancel a campaign","description":"Cancels the campaign and every unpublished placement, releasing reserved funds. Published placements are unaffected. This can't be undone.\n\nRequired scope: `campaigns:write`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp001","object":"campaign","name":"Autumn glow launch","description":"Serum launch with mid-tier beauty creators","type":"targeted","objective":"launch","category":"beauty","status":"canceled","offer_price_cents":null,"acceptance_mode":"instant","collab":false,"collab_handles":["lumen.skincare"],"team_id":null,"persona_id":null,"budget_cents":500000,"committed_cents":0,"spent_cents":0,"currency":"USD","max_price_per_post_cents":60000,"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z","targeting":{"niches":["beauty"],"countries":["US"],"min_followers":10000},"brand_safety":{},"landing_url":"https://lumen.example/serum","utm":null,"brand_kit_id":"cmf0bk0001","variants_enabled":true,"variant_config":{"angles":["tutorial","routine","review"],"design_template_ids":["cmf0dt0001","cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34. Launching November 1.","must_include":{"hashtags":["ad","lumenglow"],"mentions":["lumen.skincare"],"cta":"Shop the launch","claims":["Fragrance-free"]},"avoid":["cure","miracle"],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"launched_at":null,"completed_at":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","team":null,"persona":null,"creatives":[],"placements":[{"id":"cmf0plc001","status":"scheduled","origin":"matched","is_collab":false,"price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","followers":48200},"creative":{"id":"cmf0crt001","name":"Serum reel","format":"ig_reel"},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"permalink":null,"metrics":null,"message_count":2}],"totals":{"impressions":0,"reach":0,"likes":0,"comments":0,"saves":0,"shares":0,"clicks":null,"video_views":0}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"cancel_campaign"}},"/v1/campaigns/{id}/matches":{"get":{"operationId":"campaigns.matches","summary":"Preview campaign matches","description":"Dry-run matching against every listed creator account: whether it's in targeting, eligible under the creator's policy for this campaign's ready creatives, the price, and the reasons when it isn't. Without ready creatives the result is an estimate (`estimated: true`). Nothing is requested.\n\nRequired scope: `campaigns:read`.","tags":["Campaigns"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"eligible_only","in":"query","required":false,"description":"Only return eligible accounts","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}},{"name":"limit","in":"query","required":false,"description":"Max accounts to return (default 50)","schema":{"default":50,"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"match_preview","campaign_id":"cmf0cmp001","estimated":false,"total_listed":40,"in_targeting":18,"eligible_count":12,"eligible_reach":640000,"data":[{"id":"cmf0acc001","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","niches":["beauty"],"in_targeting":true,"eligible":true,"price_cents":45000,"format_key":"ig_reel","creative_name":"Serum reel","reasons":[]}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"preview_campaign_matches"}},"/v1/creatives":{"get":{"operationId":"creatives.list","summary":"List creatives","description":"Creatives in the library, most recently updated first. Archived creatives are excluded unless `status=archived` or `status=all`. Unique posts written per creator (`kind: variant`) are only listed with `kind=variant` or `kind=all`.\n\nRequired scope: `creatives:read`.","tags":["Creatives"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"","schema":{"type":"string","enum":["draft","ready","archived","all"]}},{"name":"format","in":"query","required":false,"description":"Format key","schema":{"type":"string","maxLength":40}},{"name":"campaign_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"search","in":"query","required":false,"description":"Match on name or caption","schema":{"type":"string","maxLength":120}},{"name":"kind","in":"query","required":false,"description":"`standard` (default) = your library; `variant` = unique posts written per creator; `all`","schema":{"type":"string","enum":["standard","variant","all"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":2,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_creatives"},"post":{"operationId":"creatives.create","summary":"Create a creative","description":"Creates a creative in the library, optionally attached to a campaign. Drafts can use `draft_only` formats; `ready` creatives must pass the format's caption, hashtag and media specs and can be sent to creators.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"format":{"type":"string","minLength":1,"maxLength":40,"description":"Format key, e.g. `ig_reel` (see GET /v1/formats)"},"caption":{"type":"string","maxLength":5000},"hashtags":{"description":"With or without the leading #","maxItems":60,"type":"array","items":{"type":"string","maxLength":101}},"cta":{"description":"Call to action, e.g. `Shop now`","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"link_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"media":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"asset_id":{"description":"Media library asset ID","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"url":{"type":"string","minLength":1,"maxLength":2000,"description":"https:// URL or a media library path"},"type":{"type":"string","enum":["image","video"]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"duration_sec":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["url","type"]}},"persona_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"template_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"campaign_id":{"description":"Attach to a campaign","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"ai_generated":{"description":"Disclose AI-generated content (some creators decline it). Creatives saved from an AI-assisted design and per-creator variants are always marked","type":"boolean"},"status":{"default":"draft","description":"`ready` validates against the format specs","type":"string","enum":["draft","ready"]}},"required":["name","format"]},"example":{"name":"Serum reel","format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"campaign_id":"cmf0cmp001","status":"ready"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":2,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"create_creative"}},"/v1/creatives/{id}":{"get":{"operationId":"creatives.get","summary":"Get a creative","description":"Retrieve one creative.\n\nRequired scope: `creatives:read`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Creative ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":2,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"get_creative"},"patch":{"operationId":"creatives.update","summary":"Update a creative","description":"Update fields; omitted fields keep their values. Content changes bump `version`. The format can't change once a placement is scheduled or published. Set `status` to `archived` to archive, or back to `draft` to restore.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Creative ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"format":{"type":"string","minLength":1,"maxLength":40,"description":"Format key, e.g. `ig_reel` (see GET /v1/formats)"},"caption":{"type":"string","maxLength":5000},"hashtags":{"description":"With or without the leading #","maxItems":60,"type":"array","items":{"type":"string","maxLength":101}},"cta":{"description":"Call to action, e.g. `Shop now`","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"link_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"media":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"asset_id":{"description":"Media library asset ID","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"url":{"type":"string","minLength":1,"maxLength":2000,"description":"https:// URL or a media library path"},"type":{"type":"string","enum":["image","video"]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"null"}]},"duration_sec":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["url","type"]}},"persona_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"template_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"campaign_id":{"description":"Attach to a campaign","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"ai_generated":{"description":"Disclose AI-generated content (some creators decline it). Creatives saved from an AI-assisted design and per-creator variants are always marked","type":"boolean"},"status":{"type":"string","enum":["draft","ready","archived"],"description":"`ready` validates against the format specs; `archived` hides it"}}},"example":{"caption":"#ad Glow season is here.","status":"ready"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":3,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"update_creative"},"delete":{"operationId":"creatives.delete","summary":"Delete a creative","description":"Permanently deletes a creative that has never been used in a placement. Archive it otherwise.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Creative ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"delete_creative"}},"/v1/creatives/{id}/duplicate":{"post":{"operationId":"creatives.duplicate","summary":"Duplicate a creative","description":"Copies a creative as a new draft, optionally into another campaign.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Creative ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"description":"Campaign for the copy (defaults to the original's)","anyOf":[{"type":"string","minLength":1},{"type":"null"}]}}}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt002","object":"creative","name":"Serum reel (copy)","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"draft","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"duplicate_creative"}},"/v1/campaigns/{id}/creatives":{"post":{"operationId":"campaigns.creatives.attach","summary":"Add a creative to a campaign","description":"Attaches a library creative to a campaign. An unassigned creative moves into the campaign; one that already belongs to another campaign is copied, so that campaign keeps its content (the copy stays `ready` if the original was and still validates). Returns the creative now in the campaign.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"creative_id":{"type":"string","minLength":1,"maxLength":64,"description":"Creative to add"}},"required":["creative_id"]},"example":{"creative_id":"cmf0crt001"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":2,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","status":"draft"},"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"attach_creative_to_campaign"}},"/v1/campaigns/{id}/creatives/{creative_id}":{"delete":{"operationId":"campaigns.creatives.detach","summary":"Remove a creative from a campaign","description":"Moves a creative out of the campaign back to the library (it isn't deleted). Refused while the creative has open placements in the campaign.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"creative_id","in":"path","required":true,"description":"Creative ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":null,"template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["ad","skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[{"url":"https://cdn.example/serum.mp4","type":"video","width":1080,"height":1920,"duration_sec":21}],"status":"ready","ai_generated":false,"version":2,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z","campaign":null,"persona":null,"placement_count":0}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"detach_creative_from_campaign"}},"/v1/creatives/render-template":{"post":{"operationId":"creatives.render_template","summary":"Render a template","description":"Fills a template's variables and returns the caption, hashtags and CTA to use in a creative. Nothing is saved.\n\nRequired scope: `creatives:write`.","tags":["Creatives"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"template_id":{"type":"string","minLength":1},"values":{"default":{},"description":"Template variable values, e.g. `{ \"product\": \"Glow serum\" }`","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":500}}},"required":["template_id"]},"example":{"template_id":"cmf0tpl001","values":{"product":"Glow serum","discount":"20%"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"rendered_template","template_id":"cmf0tpl001","format_key":"ig_carousel","caption":"Meet Glow serum — 20% off this week.","hashtags":["skincare"],"cta":"Shop now","media_guidance":"5 square slides, product first"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"render_template"}},"/v1/campaigns/{id}/variants":{"get":{"operationId":"variants.list","summary":"List a campaign's unique posts","description":"Every variant written for the campaign's creators with its placement, angle, design and uniqueness score, plus counts by `variant_status` and the placements whose post is still being written (`writing`).\n\nRequired scope: `campaigns:read`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"variant_list","campaign_id":"cmf0cmp001","enabled":true,"config":{"angles":["tutorial","routine"],"design_template_ids":["cmf0dt0002"],"caption_template_ids":[],"brief":"Glow serum: 10% niacinamide, fragrance-free, $34.","must_include":{"hashtags":["ad"],"mentions":[],"cta":null,"claims":[]},"avoid":[],"tailor_to_creator":true,"review":"review","fallback_to_base":true,"slide_count":5},"counts":{"awaiting_review":1,"approved":4,"writing":2},"writing":[{"placement_id":"cmf0plc007","account":{"id":"cmf0acc007","username":"techbyleo","avatar_url":null}}],"data":[{"id":"cmf0crt101","object":"variant","name":"Serum carousel — @maya.creates","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_carousel","caption":"I swapped my evening serum for two weeks. Here's what changed (and what didn't). Fragrance-free, which my skin needed. #ad #lumenglow @lumen.skincare","hashtags":["ad","lumenglow","skincareroutine"],"cta":"Shop the launch","link_url":"https://lumen.example/serum","media":[{"asset_id":"cmf0med101","url":"https://croud.ai/uploads/ws/slide-1.png","type":"image","width":1080,"height":1350}],"status":"ready","ai_generated":true,"version":1,"kind":"variant","parent_id":"cmf0crt001","variant_for_account_id":"cmf0acc001","angle":"routine","design_template_id":"cmf0dt0002","caption_template_id":null,"variant_status":"awaiting_review","design_id":"cmf0dsn101","created_at":"2026-11-01T09:00:00.000Z","updated_at":"2026-11-01T09:00:00.000Z","placement":{"id":"cmf0plc001","status":"drafting","origin":"matched","price_cents":45000,"account":{"id":"cmf0acc001","username":"maya.creates","avatar_url":null,"followers":48200}},"design":{"id":"cmf0dsn101","name":"Autumn glow launch · @maya.creates","thumbnail_url":null},"generation":{"similarity":0.12,"threshold":0.35,"attempts":1,"credits":12,"model":"claude-opus-5-5","hook":"I swapped my evening serum for two weeks","error":null}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"list_campaign_variants"}},"/v1/campaigns/{id}/variants/approve":{"post":{"operationId":"variants.approve_all","summary":"Approve all waiting posts","description":"Approves every variant of the campaign that is `awaiting_review`; each placement continues to the creator (or is scheduled for accepted open-campaign slots).\n\nRequired scope: `campaigns:write`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"variant_approval","campaign_id":"cmf0cmp001","approved":6}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"approve_all_variants"}},"/v1/variants/{id}/approve":{"post":{"operationId":"variants.approve","summary":"Approve a unique post","description":"Approves a variant that is `awaiting_review` (or a hand-fixed `failed` one). Its placement continues to the creator's review, or is scheduled for an accepted open-campaign slot.\n\nRequired scope: `campaigns:write`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Variant (creative) ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt101","object":"variant","name":"Serum carousel — @maya.creates","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_carousel","caption":"I swapped my evening serum for two weeks. Here's what changed (and what didn't). Fragrance-free, which my skin needed. #ad #lumenglow @lumen.skincare","hashtags":["ad","lumenglow","skincareroutine"],"cta":"Shop the launch","link_url":"https://lumen.example/serum","media":[{"asset_id":"cmf0med101","url":"https://croud.ai/uploads/ws/slide-1.png","type":"image","width":1080,"height":1350}],"status":"ready","ai_generated":true,"version":1,"kind":"variant","parent_id":"cmf0crt001","variant_for_account_id":"cmf0acc001","angle":"routine","design_template_id":"cmf0dt0002","caption_template_id":null,"variant_status":"approved","design_id":"cmf0dsn101","created_at":"2026-11-01T09:00:00.000Z","updated_at":"2026-11-01T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"approve_variant"}},"/v1/variants/{id}":{"patch":{"operationId":"variants.update","summary":"Edit a unique post","description":"Hand-edit a variant's caption, hashtags and CTA while it's awaiting review, failed, or when the creator requested changes. The caption must still pass the format's specs; the uniqueness score is recomputed. A failed variant moves back to `awaiting_review`.\n\nRequired scope: `campaigns:write`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Variant (creative) ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"caption":{"type":"string","minLength":1,"maxLength":2200},"hashtags":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"description":"With or without the leading #"},"cta":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]}},"required":["caption","hashtags"]},"example":{"caption":"Two weeks with the Glow serum: my honest notes. #ad @lumen.skincare","hashtags":["ad","lumenglow"],"cta":"Shop the launch"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt101","object":"variant","name":"Serum carousel — @maya.creates","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_carousel","caption":"I swapped my evening serum for two weeks. Here's what changed (and what didn't). Fragrance-free, which my skin needed. #ad #lumenglow @lumen.skincare","hashtags":["ad","lumenglow","skincareroutine"],"cta":"Shop the launch","link_url":"https://lumen.example/serum","media":[{"asset_id":"cmf0med101","url":"https://croud.ai/uploads/ws/slide-1.png","type":"image","width":1080,"height":1350}],"status":"ready","ai_generated":true,"version":2,"kind":"variant","parent_id":"cmf0crt001","variant_for_account_id":"cmf0acc001","angle":"routine","design_template_id":"cmf0dt0002","caption_template_id":null,"variant_status":"awaiting_review","design_id":"cmf0dsn101","created_at":"2026-11-01T09:00:00.000Z","updated_at":"2026-11-01T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"update_variant"}},"/v1/variants/{id}/regenerate":{"post":{"operationId":"variants.regenerate","summary":"Rewrite a unique post","description":"Queues a rewrite, optionally with another angle, design template or revision notes (the creator's change request is used when you send none). The current version is replaced when the new one is ready (`creative.variant_ready`); if the rewrite fails the current version is kept. Up to 5 rewrites per post per hour. Uses AI credits.\n\nRequired scope: `campaigns:write`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Variant (creative) ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"angle":{"description":"`creative_angle` key","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"design_template_id":{"description":"Design template for the visuals; null = keep the base creative's media","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"instructions":{"description":"Revision notes for the AI","anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}}},"example":{"angle":"review","instructions":"Shorter, and mention it's fragrance-free."}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"example":{"object":"variant_regeneration","id":"cmf0crt101","variant_status":"generating","queued":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"regenerate_variant"}},"/v1/variants/{id}/use-base":{"post":{"operationId":"variants.use_base","summary":"Send the base creative instead","description":"Skips a variant that's waiting for review: the placement gets the campaign's base creative and continues to the creator. The variant is archived (`variant_status: replaced`).\n\nRequired scope: `campaigns:write`.","tags":["Unique posts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Variant (creative) ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0crt101","object":"variant","name":"Serum carousel — @maya.creates","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_carousel","caption":"I swapped my evening serum for two weeks. Here's what changed (and what didn't). Fragrance-free, which my skin needed. #ad #lumenglow @lumen.skincare","hashtags":["ad","lumenglow","skincareroutine"],"cta":"Shop the launch","link_url":"https://lumen.example/serum","media":[{"asset_id":"cmf0med101","url":"https://croud.ai/uploads/ws/slide-1.png","type":"image","width":1080,"height":1350}],"status":"archived","ai_generated":true,"version":1,"kind":"variant","parent_id":"cmf0crt001","variant_for_account_id":"cmf0acc001","angle":"routine","design_template_id":"cmf0dt0002","caption_template_id":null,"variant_status":"replaced","design_id":"cmf0dsn101","created_at":"2026-11-01T09:00:00.000Z","updated_at":"2026-11-01T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"use_base_creative"}},"/v1/brand-kits":{"get":{"operationId":"brand_kits.list","summary":"List brand kits","description":"The workspace's brand kits, default first. Designs and unique-post visuals use a campaign's kit, otherwise the default.\n\nRequired scope: `creatives:read`.","tags":["Brand kits"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0bk0001","object":"brand_kit","name":"Lumen","is_default":true,"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"logo_url":"https://croud.ai/uploads/ws/lumen-logo.png","logo_dark_url":null,"mark_url":null,"handle":"lumen.skincare","website":"lumen.example","footer":null,"radius":24,"warnings":[],"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_brand_kits"},"post":{"operationId":"brand_kits.create","summary":"Create a brand kit","description":"Creates a brand kit. The first kit becomes the default. Fonts must be in the Google font catalog or uploaded in the studio first. Limited by the plan's `brandKits`.\n\nRequired scope: `creatives:write`.","tags":["Brand kits"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"colors":{"type":"object","properties":{"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"accent_ink":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Text color on the accent"},"secondary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"}},"required":["dark","light","accent","accent_ink","secondary"],"description":"Dark and light slide backgrounds, the accent, text on the accent and a second accent"},"fonts":{"type":"object","properties":{"display":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]},"body":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]}},"required":["display","body","mono"],"description":"Font for headlines, body text and labels"},"logo_url":{"description":"https:// URL or a media library path","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"logo_dark_url":{"description":"Logo for dark backgrounds","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"mark_url":{"description":"Square icon / avatar","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"handle":{"description":"Instagram handle shown on slides","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"website":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"footer":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"radius":{"description":"Corner radius in px (default 24)","type":"integer","minimum":0,"maximum":80},"is_default":{"description":"Make this the workspace's default kit","type":"boolean"}},"required":["name","colors","fonts"]},"example":{"name":"Lumen","colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"handle":"lumen.skincare","website":"lumen.example"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0bk0001","object":"brand_kit","name":"Lumen","is_default":true,"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"logo_url":"https://croud.ai/uploads/ws/lumen-logo.png","logo_dark_url":null,"mark_url":null,"handle":"lumen.skincare","website":"lumen.example","footer":null,"radius":24,"warnings":[],"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"create_brand_kit"}},"/v1/brand-kits/{id}":{"get":{"operationId":"brand_kits.get","summary":"Get a brand kit","description":"Retrieve one brand kit with contrast warnings for its colors.\n\nRequired scope: `creatives:read`.","tags":["Brand kits"],"parameters":[{"name":"id","in":"path","required":true,"description":"Brand kit ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0bk0001","object":"brand_kit","name":"Lumen","is_default":true,"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"logo_url":"https://croud.ai/uploads/ws/lumen-logo.png","logo_dark_url":null,"mark_url":null,"handle":"lumen.skincare","website":"lumen.example","footer":null,"radius":24,"warnings":[],"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"get_brand_kit"},"patch":{"operationId":"brand_kits.update","summary":"Update a brand kit","description":"Update fields; omitted fields keep their values (`colors` and `fonts` are replaced as a whole). Designs using the kit pick up the change on their next render.\n\nRequired scope: `creatives:write`.","tags":["Brand kits"],"parameters":[{"name":"id","in":"path","required":true,"description":"Brand kit ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"colors":{"type":"object","properties":{"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"},"accent_ink":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Text color on the accent"},"secondary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"6-digit hex, e.g. `#1a2b3c`"}},"required":["dark","light","accent","accent_ink","secondary"],"description":"Dark and light slide backgrounds, the accent, text on the accent and a second accent"},"fonts":{"type":"object","properties":{"display":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]},"body":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":80},"source":{"type":"string","enum":["google","upload","system"],"description":"`google` (catalog font), `upload` (a font uploaded in the studio) or `system`"}},"required":["family","source"]}},"required":["display","body","mono"],"description":"Font for headlines, body text and labels"},"logo_url":{"description":"https:// URL or a media library path","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"logo_dark_url":{"description":"Logo for dark backgrounds","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"mark_url":{"description":"Square icon / avatar","anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"handle":{"description":"Instagram handle shown on slides","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"website":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"footer":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"radius":{"description":"Corner radius in px (default 24)","type":"integer","minimum":0,"maximum":80},"is_default":{"description":"Make this the workspace's default kit","type":"boolean"}}},"example":{"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#f2c94c","accent_ink":"#14120f","secondary":"#8aa6c1"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0bk0001","object":"brand_kit","name":"Lumen","is_default":true,"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"logo_url":"https://croud.ai/uploads/ws/lumen-logo.png","logo_dark_url":null,"mark_url":null,"handle":"lumen.skincare","website":"lumen.example","footer":null,"radius":24,"warnings":[],"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"update_brand_kit"},"delete":{"operationId":"brand_kits.delete","summary":"Delete a brand kit","description":"Deletes a brand kit. Designs and campaigns using it move to the workspace's next kit, which becomes the default if this one was.\n\nRequired scope: `creatives:write`.","tags":["Brand kits"],"parameters":[{"name":"id","in":"path","required":true,"description":"Brand kit ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0bk0002","object":"brand_kit","deleted":true,"moved_to":"cmf0bk0001","designs_moved":3,"campaigns_moved":1}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"delete_brand_kit"}},"/v1/brand-kits/{id}/default":{"post":{"operationId":"brand_kits.set_default","summary":"Set the default brand kit","description":"Makes this kit the workspace default. New designs and campaigns without a kit use it.\n\nRequired scope: `creatives:write`.","tags":["Brand kits"],"parameters":[{"name":"id","in":"path","required":true,"description":"Brand kit ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0bk0001","object":"brand_kit","name":"Lumen","is_default":true,"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}},"logo_url":"https://croud.ai/uploads/ws/lumen-logo.png","logo_dark_url":null,"mark_url":null,"handle":"lumen.skincare","website":"lumen.example","footer":null,"radius":24,"warnings":[],"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-21T09:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"set_default_brand_kit"}},"/v1/design-templates":{"get":{"operationId":"design_templates.list","summary":"List design templates","description":"The visual template gallery (system templates plus the workspace's custom ones) with availability after platform, plan and workspace controls. Locked templates (`available: false`, e.g. above your plan) are listed so you can see what an upgrade unlocks; hidden ones are omitted.\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"category","in":"query","required":false,"description":"Category key, e.g. `carousel`, `product`, `promo`","schema":{"type":"string","maxLength":40}},{"name":"format","in":"query","required":false,"description":"Only templates that support this canvas, e.g. `story`","schema":{"type":"string","maxLength":20}},{"name":"source","in":"query","required":false,"description":"","schema":{"type":"string","enum":["system","custom"]}},{"name":"search","in":"query","required":false,"description":"Match on name, description and tags","schema":{"type":"string","maxLength":120}},{"name":"available_only","in":"query","required":false,"description":"Only templates you can use now","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0dt0001","object":"design_template","key":"myth-vs-fact","source":"system","name":"Myth vs fact","description":"Bust common misconceptions in your niche, one slide at a time.","category":"carousel","tags":["education","myths"],"formats":["portrait","square","story"],"default_format":"portrait","featured":true,"status":"active","available":true,"availability":"enabled","restricted_by":null,"reason":null,"min_plan":null,"slide_count":6,"usage_count":128}],"categories":[{"key":"carousel","label":"Educational carousels"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_design_templates"}},"/v1/design-templates/{id}":{"get":{"operationId":"design_templates.get","summary":"Get a design template","description":"One template with its definition (style, look, sample slides) and the layouts it offers. Locked templates return only their first slides (`definition.preview: true`).\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dt0001","object":"design_template","key":"myth-vs-fact","source":"system","name":"Myth vs fact","description":"Bust common misconceptions in your niche, one slide at a time.","category":"carousel","tags":["education","myths"],"formats":["portrait","square","story"],"default_format":"portrait","featured":true,"status":"active","available":true,"availability":"enabled","restricted_by":null,"reason":null,"min_plan":null,"slide_count":6,"usage_count":128,"definition":{"style":{"scheme":"dark","emphasis":"accent"},"look":{"colors":{"dark":"#14120f","light":"#f6f3ee","accent":"#d7f25c","accent_ink":"#14120f","secondary":"#8aa6c1"},"fonts":{"display":{"family":"Instrument Serif","source":"google"},"body":{"family":"Inter","source":"google"},"mono":{"family":"JetBrains Mono","source":"google"}}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"ai":{"min_slides":4,"max_slides":8},"preview":false},"layouts":[]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"get_design_template"},"patch":{"operationId":"design_templates.update","summary":"Update a custom design template","description":"Rename one of the workspace's own (custom) design templates or change its description, category or tags. Slides and style stay as saved. System templates can't be edited (404). Keys that can also read creatives get the full gallery entry back.\n\nRequired scope: `templates:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design template ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"description":{"description":"`null` or an empty string clears it","anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"category":{"description":"Category key from `categories` in `GET /v1/design-templates`, e.g. `carousel`, `product`, `promo`","type":"string","maxLength":40},"tags":{"description":"Replaces the tags (up to 10)","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":30}}}},"example":{"name":"Lumen myth buster","description":"Our go-to education carousel","category":"carousel","tags":["education","skincare"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dt0001","object":"design_template","key":null,"source":"custom","name":"Lumen myth buster","description":"Our go-to education carousel","category":"carousel","tags":["education","skincare"],"formats":["portrait","square","story"],"default_format":"portrait","featured":false,"status":"active","available":true,"availability":"enabled","restricted_by":null,"reason":null,"min_plan":null,"slide_count":6,"usage_count":4}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["templates:write"],"x-mcp-tool":"update_design_template"}},"/v1/layouts":{"get":{"operationId":"layouts.list","summary":"List slide layouts","description":"Every slide layout with its variants and content fields (with soft character limits), plus the canvas formats. Use it to build or edit `slides` by hand.\n\nRequired scope: `creatives:read` or `templates:read`.","tags":["Design studio"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"key":"cover","object":"layout","name":"Cover","description":"Opening slide with a hook headline.","group":"Structure","variants":[{"key":"stack","label":"Stacked"}],"fields":[{"key":"headline","label":"Hook","type":"textarea","max_chars":60,"min_items":null,"max_items":null,"item_fields":null,"ai":true,"help":"Wrap words in *asterisks* to emphasize them.","options":null}],"ai_hint":"The hook."}],"formats":[{"key":"portrait","label":"Portrait","ratio":"4:5","width":1080,"height":1350}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read","templates:read"],"x-mcp-tool":"list_layouts"}},"/v1/designs":{"get":{"operationId":"designs.list","summary":"List designs","description":"Designs, most recently edited first. Archived designs are excluded unless `status=archived` or `status=all`.\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"","schema":{"type":"string","enum":["draft","ready","archived","all"]}},{"name":"campaign_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"template_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"brand_kit_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"search","in":"query","required":false,"description":"Match on name","schema":{"type":"string","maxLength":120}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_designs"},"post":{"operationId":"designs.create","summary":"Create a design","description":"Creates a design from a template (or blank) with the brand kit applied. Pass `brief` to have AI write the slides, caption and hashtags right away: the design is created either way, and `ai` reports whether the AI run succeeded. Locked templates return 402. Limited by the plan's `designs`.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"template_id":{"description":"Design template (see `GET /v1/design-templates`). Omitted = blank design","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"name":{"type":"string","maxLength":100},"format":{"description":"Canvas: portrait (4:5), square, story (9:16), landscape, wide or pin. Defaults to the template's","type":"string","enum":["portrait","square","story","landscape","wide","pin"]},"brand_kit_id":{"description":"Brand kit ID, or `template` for the template's own look. Omitted = the campaign's kit, then the workspace default","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"campaign_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"persona_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"team_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"slides":{"description":"Start from these slides instead of the template's","minItems":1,"maxItems":20,"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"style":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Design-level style overrides (scheme, background, headlineFont, emphasis, align, counter, showLogo…). `brand` holds this design's own brand details (`name` ≤ 60, `handle` ≤ 40, `website` ≤ 80, `footer` ≤ 80, `logoUrl`: uploaded or HTTPS image). Each field wins over the brand kit, which wins over the workspace profile (name, Instagram username, website, logo); empty fields render nothing"},"caption":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"hashtags":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"brief":{"description":"Write the slides, caption and hashtags with AI right after creating (needs the `ai:generate` scope; uses AI credits)","type":"string","minLength":3,"maxLength":4000},"ai":{"description":"Options for the AI run when `brief` is given","type":"object","properties":{"persona_id":{"description":"Voice (workspace or platform persona). Omitted = the design's persona, else the voice for the content type, else the workspace default; null = none","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"description":"Content type for this run (default: the design's). Saved to the design when the result is applied","anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"language":{"description":"Language code, e.g. `en`, `de`","type":"string","maxLength":10},"slide_count":{"type":"integer","minimum":1,"maximum":20},"extra_instructions":{"type":"string","maxLength":1000},"model":{"description":"AI model for this run: a `ref` from `GET /v1/ai/models`, e.g. `\"openrouter:anthropic/claude-sonnet-5.5\"`. Omitted = automatic routing. Credits use that model's multiplier","type":"string","minLength":3,"maxLength":240}}}}},"example":{"template_id":"cmf0dt0001","campaign_id":"cmf0cmp001","format":"portrait","brief":"Three myths about niacinamide, for people new to skincare. Product: Lumen Glow serum."}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z","ai":{"ok":true,"generation_id":"cmf0gen001","provider":"openrouter","model":"anthropic/claude-sonnet-5.5","fallback_used":false,"credits_charged":8,"sandbox":false,"used_byok":false,"repaired":false,"content_type":"education","persona":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"create_design"}},"/v1/designs/{id}":{"get":{"operationId":"designs.get","summary":"Get a design","description":"Retrieve one design with its slides.\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"get_design"},"patch":{"operationId":"designs.update","summary":"Update a design","description":"Update fields; omitted fields keep their values and `slides` replaces all slides. Send `expected_updated_at` to avoid overwriting someone else's edit (409 on conflict). Changing `format` must stay within the template's formats.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"format":{"type":"string","enum":["portrait","square","story","landscape","wide","pin"],"description":"portrait | square | story | landscape | wide | pin"},"style":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Design-level style overrides (scheme, background, headlineFont, emphasis, align, counter, showLogo…). `brand` holds this design's own brand details (`name` ≤ 60, `handle` ≤ 40, `website` ≤ 80, `footer` ≤ 80, `logoUrl`: uploaded or HTTPS image). Each field wins over the brand kit, which wins over the workspace profile (name, Instagram username, website, logo); empty fields render nothing"},"slides":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"description":"Slides: `{ id, layout, variant?, content, style? }` (see `GET /v1/layouts` for each layout's content fields). Validated server-side"},"brand_kit_id":{"description":"Brand kit ID; null = the template's own look","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"campaign_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"persona_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"caption":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"hashtags":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"status":{"description":"`archived` hides it and frees a saved-design slot","type":"string","enum":["draft","ready","archived"]},"ai_assisted":{"description":"Mark the copy as AI-written (e.g. you applied a caption from `/captions`). AI runs set it automatically; it is never cleared","type":"boolean","const":true},"expected_updated_at":{"type":"string","maxLength":40,"description":"ISO 8601 date-time: the design's `updated_at` you last read. The write fails with 409 if it changed since"}}},"example":{"caption":"Three niacinamide myths, busted. #ad","status":"ready","expected_updated_at":"2026-10-28T10:05:00.000Z"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"ready","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"update_design"},"delete":{"operationId":"designs.delete","summary":"Delete a design","description":"Permanently deletes a design and its export files. Media saved to the library and creatives made from it stay.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsn001","object":"design","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"delete_design"}},"/v1/designs/{id}/duplicate":{"post":{"operationId":"designs.duplicate","summary":"Duplicate a design","description":"Copies a design as a new draft, optionally renamed or for another campaign.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"campaign_id":{"description":"Campaign for the copy (defaults to the original's)","anyOf":[{"type":"string","minLength":1},{"type":"null"}]}}}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsn002","object":"design","name":"Myth vs fact: niacinamide (copy)","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"duplicate_design"}},"/v1/designs/{id}/generate":{"post":{"operationId":"designs.generate","summary":"Write a design with AI","description":"AI writes the slides, caption and hashtags from a brief, using the template's guidance, the brand kit, the content type's rules (caption length, hashtags, structure, slide count), the persona's voice and the platform style guide. Output that breaks a rule gets one automatic repair; unusable output is refunded. With `apply` (default) the result is saved together with `content_type` (and an explicit `persona_id`); otherwise it's only returned. A design edited meanwhile returns 409 and is refunded. Needs the `ai:generate` scope as well and uses AI credits.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":3,"maxLength":4000,"description":"What the design should say"},"persona_id":{"description":"Voice (workspace or platform persona). Omitted = the design's persona, else the voice for the content type, else the workspace default; null = none","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"description":"Content type for this run (default: the design's). Saved to the design when the result is applied","anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"language":{"description":"Language code, e.g. `en`, `de`","type":"string","maxLength":10},"slide_count":{"type":"integer","minimum":1,"maximum":20},"extra_instructions":{"type":"string","maxLength":1000},"model":{"description":"AI model for this run: a `ref` from `GET /v1/ai/models`, e.g. `\"openrouter:anthropic/claude-sonnet-5.5\"`. Omitted = automatic routing. Credits use that model's multiplier","type":"string","minLength":3,"maxLength":240},"apply":{"description":"Save into the design (default true)","type":"boolean"},"expected_updated_at":{"type":"string","maxLength":40,"description":"ISO 8601 date-time: the design's `updated_at` you last read. The write fails with 409 if it changed since"}},"required":["brief"]},"example":{"brief":"Three myths about niacinamide, for people new to skincare.","content_type":"education","slide_count":5,"apply":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"design_generation","design":{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"applied":true,"generation_id":"cmf0gen001","provider":"openrouter","model":"anthropic/claude-sonnet-5.5","fallback_used":false,"credits_charged":8,"sandbox":false,"used_byok":false,"repaired":false,"content_type":"education","persona":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"write_design_with_ai"}},"/v1/designs/{id}/rewrite":{"post":{"operationId":"designs.rewrite","summary":"Rewrite slides with AI","description":"Rewrites some slides in place (same layouts, images and style) with a quick `action` (`shorter`, `punchier`, `casual`, `fit` to fix overflowing text) and/or an `instruction`; `caption: true` rewrites the caption and hashtags too (default when every slide is rewritten). One slide is billed as a `design_edit`, several as `design`. With `apply` (default) the result is saved; 409 if the design changed meanwhile (refunded). Needs the `ai:generate` scope as well.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slides":{"description":"0-based slide indexes (default all)","minItems":1,"maxItems":20,"type":"array","items":{"type":"integer","minimum":0,"maximum":19}},"action":{"description":"shorter | punchier | casual | fit","type":"string","enum":["shorter","punchier","casual","fit"]},"instruction":{"description":"What to change, e.g. \"Lead with the price\"","type":"string","maxLength":1000},"brief":{"description":"Facts the rewrite may use","type":"string","maxLength":4000},"caption":{"type":"boolean"},"persona_id":{"description":"Voice (workspace or platform persona). Omitted = the design's persona, else the voice for the content type, else the workspace default; null = none","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"description":"Content type for this run (default: the design's). Saved to the design when the result is applied","anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"language":{"description":"Language code, e.g. `en`, `de`","type":"string","maxLength":10},"model":{"description":"AI model for this run: a `ref` from `GET /v1/ai/models`, e.g. `\"openrouter:anthropic/claude-sonnet-5.5\"`. Omitted = automatic routing. Credits use that model's multiplier","type":"string","minLength":3,"maxLength":240},"apply":{"description":"Save into the design (default true)","type":"boolean"},"expected_updated_at":{"type":"string","maxLength":40,"description":"ISO 8601 date-time: the design's `updated_at` you last read. The write fails with 409 if it changed since"}}},"example":{"slides":[2],"action":"shorter"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"design_rewrite","design":{"id":"cmf0dsn001","object":"design","name":"Myth vs fact: niacinamide","status":"draft","template_id":"cmf0dt0001","brand_kit_id":"cmf0bk0001","campaign_id":"cmf0cmp001","persona_id":null,"content_type":"education","team_id":null,"format":"portrait","style":{"brand":{"handle":"@lumen.skincare"}},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"slide_count":2,"caption":"Three things niacinamide can (and can't) do. #ad","hashtags":["skincare","niacinamide"],"ai_assisted":true,"thumbnail_url":null,"last_exported_at":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:05:00.000Z"},"slides":[{"id":"a1b2c3d4e5","layout":"cover","variant":"stack","content":{"eyebrow":"Skincare myths","headline":"Niacinamide *myths*, busted","subhead":"Swipe before you buy another serum."}},{"id":"f6g7h8i9j0","layout":"list","content":{"headline":"What it actually does","items":[{"title":"Evens tone"},{"title":"Supports the barrier"}]}}],"rewritten":[1],"caption":null,"hashtags":null,"applied":true,"generation_id":"cmf0gen001","provider":"openrouter","model":"anthropic/claude-sonnet-5.5","fallback_used":false,"credits_charged":2,"sandbox":false,"used_byok":false,"repaired":false,"content_type":"education","persona":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"rewrite_design_slides"}},"/v1/designs/{id}/captions":{"post":{"operationId":"designs.captions","summary":"Caption options for a design","description":"AI writes caption options (default 3, each with hashtags) for the design's current slides, following its content type, persona and the style guide. Nothing is saved: pick one and `PATCH` it into the design. Billed as one `design_edit`. Needs the `ai:generate` scope as well.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"description":"Default 3","type":"integer","minimum":1,"maximum":5},"brief":{"description":"Extra facts for the caption","type":"string","maxLength":4000},"instruction":{"type":"string","maxLength":1000},"persona_id":{"description":"Voice (workspace or platform persona). Omitted = the design's persona, else the voice for the content type, else the workspace default; null = none","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"content_type":{"description":"Content type for this run (default: the design's). Saved to the design when the result is applied","anyOf":[{"type":"string","minLength":1,"maxLength":40,"description":"Content type key (see `GET /v1/reference/content_type`): sets caption length, hashtag count, structure, CTA and slide count"},{"type":"null"}]},"language":{"description":"Language code, e.g. `en`, `de`","type":"string","maxLength":10},"model":{"description":"AI model for this run: a `ref` from `GET /v1/ai/models`, e.g. `\"openrouter:anthropic/claude-sonnet-5.5\"`. Omitted = automatic routing. Credits use that model's multiplier","type":"string","minLength":3,"maxLength":240}}},"example":{"count":3}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"design_captions","design_id":"cmf0dsn001","options":[{"caption":"Niacinamide won't fix everything. Here's what it does do.\n\nSave this before your next serum haul.","hashtags":["niacinamide","skincaretips"]},{"caption":"3 niacinamide myths we hear every week, and what the research says.\n\nSave it for later.","hashtags":["niacinamide","skincaremyths"]}],"generation_id":"cmf0gen001","provider":"openrouter","model":"anthropic/claude-sonnet-5.5","fallback_used":false,"credits_charged":2,"sandbox":false,"used_byok":false,"repaired":false,"content_type":"education","persona":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"design_caption_options"}},"/v1/designs/{id}/exports":{"post":{"operationId":"designs.export","summary":"Export a design","description":"Renders slides to PNG, JPG, a ZIP of images or a PDF. Usually finishes within the request (`status: done`); on deployments with a render worker it returns `queued` — poll `GET /v1/designs/{id}/exports/{export_id}` or pass `wait: true`. `save_to_library` also stores the images in the media library. Counts toward the plan's monthly `designExportsPerMonth`; designs from templates above your plan export with a watermark. Files not saved to the library expire after 7 days. Emits `design.exported`.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"description":"Default `png`","type":"string","enum":["png","jpg","pdf","zip"]},"image_type":{"description":"Image type inside a zip","type":"string","enum":["png","jpg"]},"slides":{"description":"0-based slide indexes (default all)","maxItems":20,"type":"array","items":{"type":"integer","minimum":0,"maximum":9007199254740991}},"scale":{"description":"2 = double resolution","anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"save_to_library":{"type":"boolean"},"folder":{"description":"Media library folder for saved images","type":"string","minLength":1,"maxLength":60},"wait":{"description":"Wait up to 60 seconds for a queued export to finish","type":"boolean"}}},"example":{"kind":"png","scale":1,"save_to_library":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dex001","object":"design_export","design_id":"cmf0dsn001","status":"done","kind":"png","error":null,"warnings":[],"watermark":false,"slide_count":2,"download_url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","files":[{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","filename":"myth-vs-fact-1.png","mime_type":"image/png","byte_size":412331,"width":1080,"height":1350,"media_id":null},{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-2.png","filename":"myth-vs-fact-2.png","mime_type":"image/png","byte_size":398112,"width":1080,"height":1350,"media_id":null}],"media_ids":[],"created_at":"2026-10-28T10:06:00.000Z","finished_at":"2026-10-28T10:06:04.000Z","expires_at":"2026-11-04T10:06:04.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"export_design"},"get":{"operationId":"designs.exports","summary":"List a design's exports","description":"The design's latest exports, newest first.\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"limit","in":"query","required":false,"description":"","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0dex001","object":"design_export","design_id":"cmf0dsn001","status":"done","kind":"png","error":null,"warnings":[],"watermark":false,"slide_count":2,"download_url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","files":[{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","filename":"myth-vs-fact-1.png","mime_type":"image/png","byte_size":412331,"width":1080,"height":1350,"media_id":null},{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-2.png","filename":"myth-vs-fact-2.png","mime_type":"image/png","byte_size":398112,"width":1080,"height":1350,"media_id":null}],"media_ids":[],"created_at":"2026-10-28T10:06:00.000Z","finished_at":"2026-10-28T10:06:04.000Z","expires_at":"2026-11-04T10:06:04.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"list_design_exports"}},"/v1/designs/{id}/exports/{export_id}":{"get":{"operationId":"designs.export_status","summary":"Get an export","description":"Status of one export: `queued`, `rendering`, `done`, `failed` or `expired`. Files and URLs are present once it's `done`.\n\nRequired scope: `creatives:read`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"export_id","in":"path","required":true,"description":"Export ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dex001","object":"design_export","design_id":"cmf0dsn001","status":"done","kind":"png","error":null,"warnings":[],"watermark":false,"slide_count":2,"download_url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","files":[{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-1.png","filename":"myth-vs-fact-1.png","mime_type":"image/png","byte_size":412331,"width":1080,"height":1350,"media_id":null},{"url":"https://croud.ai/uploads/ws/design-cmf0dsn001-2.png","filename":"myth-vs-fact-2.png","mime_type":"image/png","byte_size":398112,"width":1080,"height":1350,"media_id":null}],"media_ids":[],"created_at":"2026-10-28T10:06:00.000Z","finished_at":"2026-10-28T10:06:04.000Z","expires_at":"2026-11-04T10:06:04.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:read"],"x-mcp-tool":"get_design_export"}},"/v1/designs/{id}/creative":{"post":{"operationId":"designs.save_as_creative","summary":"Save a design as a creative","description":"Renders the slides into the media library (counts as one export) and creates a draft creative linked to the design, with its caption and hashtags. Story designs become `ig_story`, one-slide portrait or square designs `ig_feed_image`, several slides `ig_carousel`.\n\nRequired scope: `creatives:write`.","tags":["Design studio"],"parameters":[{"name":"id","in":"path","required":true,"description":"Design ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"campaign_id":{"description":"Campaign for the creative (defaults to the design's)","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"format":{"description":"Defaults from the design's canvas and slide count. `ig_feed_image` uses the first slide","type":"string","enum":["ig_feed_image","ig_carousel","ig_story"]},"name":{"type":"string","minLength":1,"maxLength":120}}}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"object":"design_creative","design_id":"cmf0dsn001","creative":{"id":"cmf0crt009","object":"creative","name":"Myth vs fact: niacinamide","format":"ig_carousel","status":"draft","design_id":"cmf0dsn001"},"media":[{"asset_id":"cmf0med001","url":"https://croud.ai/uploads/ws/slide-1.png","type":"image","width":1080,"height":1350}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["creatives:write"],"x-mcp-tool":"save_design_as_creative"}},"/v1/placements":{"get":{"operationId":"placements.list","summary":"List placements","description":"Placements are individual ad slots: one creative on one creator account for one campaign. Use `side=creator` for ad requests on your connected accounts and `side=advertiser` for placements of your campaigns. Newest first. Campaigns with unique posts start each placement in `drafting` while its post is written and reviewed (`pending_status` is the status it moves to next); creators see `creative: null` until it's ready.\n\nRequired scope: `placements:read`.","tags":["Placements"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"side","in":"query","required":true,"description":"`creator` = requests on your accounts; `advertiser` = placements of your campaigns","schema":{"type":"string","enum":["creator","advertiser"]}},{"name":"status","in":"query","required":false,"description":"Comma-separated statuses, e.g. `pending_approval,changes_requested`","schema":{"anyOf":[{"type":"array","items":{"type":"string","enum":["drafting","pending_approval","pending_advertiser","changes_requested","approved","rejected","scheduled","publishing","published","disputed","completed","removed_early","failed","canceled","expired"]}},{"type":"string"}]}},{"name":"campaign_id","in":"query","required":false,"description":"Only placements of this campaign","schema":{"type":"string","maxLength":64}},{"name":"account_id","in":"query","required":false,"description":"Only placements on this account","schema":{"type":"string","maxLength":64}},{"name":"origin","in":"query","required":false,"description":"`matched` (campaign targeting), `open` (accepted open campaign) or `direct` (hand-picked request)","schema":{"type":"string","enum":["matched","open","direct"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0plc001","object":"placement","side":"creator","status":"pending_approval","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:read"],"x-mcp-tool":"list_placements"}},"/v1/placements/{id}":{"get":{"operationId":"placements.get","summary":"Get a placement","description":"Retrieve a placement with its campaign, account and creative. Works from either side of the marketplace.\n\nRequired scope: `placements:read`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"side","in":"query","required":false,"description":"Disambiguate when the workspace is on both sides","schema":{"type":"string","enum":["creator","advertiser"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"creator","status":"pending_approval","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:read"],"x-mcp-tool":"get_placement"}},"/v1/placements/{id}/approve":{"post":{"operationId":"placements.approve","summary":"Approve a placement","description":"Creator side. Approves a `pending_approval` placement (including direct requests at the advertiser's current offer), reserves the advertiser's funds and schedules it in the next slot allowed by the account's pacing rules. If the advertiser's wallet is short, the placement stays `pending_approval` with `pending_status: \"awaiting_funds\"` and is scheduled automatically when they add funds.\n\nRequired scope: `placements:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"creator","status":"scheduled","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":"2026-10-28T11:00:00.000Z","failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write"],"x-mcp-tool":"approve_placement"}},"/v1/placements/{id}/reject":{"post":{"operationId":"placements.reject","summary":"Reject a placement","description":"Creator side. Declines a pending placement; the reason is shared with the advertiser and any reserved funds are released.\n\nRequired scope: `placements:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":1000,"description":"Why you're declining (shown to the advertiser)"}},"required":["reason"]},"example":{"reason":"Not a fit for my audience"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"creator","status":"rejected","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":"Not a fit for my audience","decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write"],"x-mcp-tool":"reject_placement"}},"/v1/placements/{id}/request-changes":{"post":{"operationId":"placements.request_changes","summary":"Request changes","description":"Creator side. Sends a `pending_approval` placement back to the advertiser with requested edits. The advertiser resubmits it after updating the creative.\n\nRequired scope: `placements:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":3,"maxLength":2000,"description":"What should change"}},"required":["message"]},"example":{"message":"Please add #ad at the start of the caption"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"creator","status":"changes_requested","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":"Please add #ad at the start of the caption","decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write"],"x-mcp-tool":"request_placement_changes"}},"/v1/placements/{id}/resubmit":{"post":{"operationId":"placements.resubmit","summary":"Resubmit a placement","description":"Advertiser side. After updating the creative, send a `changes_requested` placement back to the creator for review.\n\nRequired scope: `campaigns:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"description":"Optional note to the creator","type":"string","maxLength":2000}}},"example":{"note":"Moved #ad to the first line."}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"pending_approval","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"resubmit_placement"}},"/v1/placements/{id}/cancel":{"post":{"operationId":"placements.cancel","summary":"Cancel a placement","description":"Advertiser side. Cancels a placement that hasn't been published yet and releases its reserved funds.\n\nRequired scope: `campaigns:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"canceled","origin":"matched","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"cancel_placement"}},"/v1/placements/{id}/messages":{"get":{"operationId":"placements.messages.list","summary":"List placement messages","description":"The conversation between creator and advertiser on a placement, oldest first. System messages record approvals and scheduling.\n\nRequired scope: `placements:read`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0msg001","object":"placement_message","placement_id":"cmf0plc001","side":"system","author":null,"body":"Approved. Scheduled for 2026-11-02T15:00:00.000Z.","created_at":"2026-10-28T11:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:read"],"x-mcp-tool":"list_placement_messages"},"post":{"operationId":"placements.messages.create","summary":"Send a placement message","description":"Post a message to the other side of a placement. Requires `placements:write` on the creator side or `campaigns:write` on the advertiser side.\n\nRequired scope: `placements:write` or `campaigns:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":2000,"description":"Message text, up to 2,000 characters"}},"required":["body"]},"example":{"body":"Can we move this to Thursday?"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0msg002","object":"placement_message","placement_id":"cmf0plc001","side":"creator","author":"Maya Chen","body":"Can we move this to Thursday?","created_at":"2026-10-28T11:05:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write","campaigns:write"],"x-mcp-tool":"send_placement_message"}},"/v1/placements/{id}/counter":{"post":{"operationId":"placements.counter","summary":"Counter a direct request","description":"Creator side. Answer a `pending_approval` direct request (`origin: direct`) with your own price. The placement moves to `pending_advertiser` until the advertiser accepts, declines or counters back. Counters on both sides are limited per request (`negotiation.rounds`); approve to accept the current offer instead.\n\nRequired scope: `placements:write`.","tags":["Placements"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price_cents":{"type":"integer","minimum":100,"maximum":100000000,"description":"Your price for this post, in cents (at least the platform minimum offer)"},"message":{"description":"Optional note to the advertiser","type":"string","maxLength":1000}},"required":["price_cents"]},"example":{"price_cents":60000,"message":"Happy to do this as a Reel at my usual rate."}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"creator","status":"pending_advertiser","origin":"direct","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":45000,"counter_price_cents":60000,"rounds":1},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write"],"x-mcp-tool":"counter_direct_request"}},"/v1/opportunities":{"get":{"operationId":"opportunities.list","summary":"List opportunities","description":"Creator side. Live open campaigns your connected accounts can accept: the advertiser's price per post, your earning after the platform fee, requirements, creatives, remaining slots and a per-account fit (`blockers` are the advertiser's requirements, `warnings` are your own policy and rates). By default only campaigns that pass your policy are listed; set `matching_only=false` to see the rest.\n\nRequired scope: `accounts:read` or `placements:read`.","tags":["Opportunities"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"account_id","in":"query","required":false,"description":"Only evaluate this account","schema":{"type":"string","maxLength":40}},{"name":"category","in":"query","required":false,"description":"Content category key","schema":{"type":"string","maxLength":40}},{"name":"format","in":"query","required":false,"description":"Only campaigns with a creative in this format","schema":{"type":"string","maxLength":40}},{"name":"min_price_cents","in":"query","required":false,"description":"","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"matching_only","in":"query","required":false,"description":"Only campaigns that pass your policy and rates (default true)","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}},{"name":"sort","in":"query","required":false,"description":"","schema":{"type":"string","enum":["newest","price","ending"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0cmp002","name":"Glow Ambassadors","description":"Show your morning routine with our vitamin C serum.","category":"beauty","objective":"awareness","status":"active","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","logo_url":null,"verified":true,"website":"https://lumen.example"},"price_cents":30000,"earning_cents":27000,"currency":"USD","acceptance_mode":"instant","collab":true,"collab_handles":["lumen.skincare"],"start_date":null,"end_date":"2026-12-15T00:00:00.000Z","slots_left":12,"requirements":{"categories":["beauty","lifestyle"],"countries":["US","GB"],"min_followers":10000,"max_followers":null,"min_engagement":2},"landing_url":"https://lumen.example/serum","creatives":[{"id":"cmf0crt002","name":"Serum reel","format_key":"ig_reel","caption":"My 5-step morning routine #ad","hashtags":["#ad"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"ai_generated":false}],"accounts":[{"account_id":"cmf0acc001","username":"maya.creates","avatar_url":null,"followers":48200,"creative_ids":["cmf0crt002"],"blockers":[],"warnings":[],"can_accept":true,"placement":null}],"launched_at":"2026-10-20T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read","placements:read"],"x-mcp-tool":"list_opportunities"}},"/v1/opportunities/{id}":{"get":{"operationId":"opportunities.get","summary":"Get an opportunity","description":"Creator side. One open campaign with per-account fit. Campaigns that closed are still returned when one of your accounts joined them (`live: false`).\n\nRequired scope: `accounts:read` or `placements:read`.","tags":["Opportunities"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0cmp002","name":"Glow Ambassadors","description":"Show your morning routine with our vitamin C serum.","category":"beauty","objective":"awareness","status":"active","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","logo_url":null,"verified":true,"website":"https://lumen.example"},"price_cents":30000,"earning_cents":27000,"currency":"USD","acceptance_mode":"instant","collab":true,"collab_handles":["lumen.skincare"],"start_date":null,"end_date":"2026-12-15T00:00:00.000Z","slots_left":12,"requirements":{"categories":["beauty","lifestyle"],"countries":["US","GB"],"min_followers":10000,"max_followers":null,"min_engagement":2},"landing_url":"https://lumen.example/serum","creatives":[{"id":"cmf0crt002","name":"Serum reel","format_key":"ig_reel","caption":"My 5-step morning routine #ad","hashtags":["#ad"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"ai_generated":false}],"accounts":[{"account_id":"cmf0acc001","username":"maya.creates","avatar_url":null,"followers":48200,"creative_ids":["cmf0crt002"],"blockers":[],"warnings":[],"can_accept":true,"placement":null}],"launched_at":"2026-10-20T10:00:00.000Z","live":true,"can_act":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read","placements:read"],"x-mcp-tool":"get_opportunity"}},"/v1/opportunities/{id}/accept":{"post":{"operationId":"opportunities.accept","summary":"Accept an opportunity","description":"Creator side. Accept an open campaign with one of your accounts and one of the campaign's creatives. `instant` campaigns book the slot right away (funds move from the campaign's escrow and the post is scheduled); `review` campaigns create an application (`pending_advertiser`) the advertiser approves or declines.\n\nRequired scope: `placements:write`.","tags":["Opportunities"],"parameters":[{"name":"id","in":"path","required":true,"description":"Campaign ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","minLength":1,"maxLength":40,"description":"Your connected account"},"creative_id":{"type":"string","minLength":1,"maxLength":40,"description":"One of the campaign's creatives"},"message":{"description":"Optional note to the advertiser","type":"string","maxLength":1000}},"required":["account_id","creative_id"]},"example":{"account_id":"cmf0acc001","creative_id":"cmf0crt002"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"object":"opportunity_acceptance","placement_id":"cmf0plc009","status":"scheduled","scheduled_at":"2026-11-02T15:00:00.000Z","placement":{"id":"cmf0plc009","object":"placement","side":"creator","status":"scheduled","origin":"open","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":true,"collab_handles":["lumen.skincare"],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write"],"x-mcp-tool":"accept_opportunity"}},"/v1/requests/preview":{"get":{"operationId":"requests.preview","summary":"Preview a direct request","description":"Advertiser side. Before sending a request: whether the creator takes direct requests (`mode`), their public rates (with collab add-ons), what they'd ask for this creative (`asking_cents`) and public-safe warnings for your campaign, creative and price. Nothing is sent.\n\nRequired scope: `marketplace:read`.","tags":["Requests"],"parameters":[{"name":"account_id","in":"query","required":true,"description":"Creator account ID from the marketplace","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"campaign_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":40}},{"name":"creative_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":40}},{"name":"price_cents","in":"query","required":false,"description":"Your offer; defaults to the creator's rate","schema":{"type":"integer","minimum":0,"maximum":9007199254740991}},{"name":"collab","in":"query","required":false,"description":"Request a collab post","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"account":{"id":"cmf0acc003","username":"techbyleo","display_name":"Leo","avatar_url":null,"followers":182000},"mode":"anyone","rates":[{"format_key":"ig_reel","price_cents":90000,"collab_enabled":true,"collab_price_cents":18000}],"approval_sla_hours":48,"can_send":true,"warnings":["Below their rate for this format"],"asking_cents":108000}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["marketplace:read"],"x-mcp-tool":"preview_direct_request"}},"/v1/requests/campaigns":{"get":{"operationId":"requests.campaigns","summary":"List requestable campaigns","description":"Advertiser side. Running targeted and direct campaigns a request can be attached to, with their ready creatives and remaining budget (budget minus committed and pending requests).\n\nRequired scope: `campaigns:read`.","tags":["Requests"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0cmp003","name":"Creator Spotlights","type":"direct","status":"active","collab":false,"collab_handles":[],"remaining_cents":250000,"creatives":[{"id":"cmf0crt003","name":"Spotlight reel","format_key":"ig_reel","thumbnail":null}]}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"list_requestable_campaigns"}},"/v1/requests":{"post":{"operationId":"requests.create","summary":"Send a direct request","description":"Advertiser side. Send a hand-picked creator a request for one creative of a running targeted or direct campaign, at your price. The price is reserved from your wallet; the creator approves, declines or counters (`placement.countered` webhook). Requires direct requests on your plan (and collab posts for `collab: true`).\n\nRequired scope: `campaigns:write`.","tags":["Requests"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account_id":{"type":"string","minLength":1,"maxLength":40,"description":"Creator account ID"},"campaign_id":{"type":"string","minLength":1,"maxLength":40},"creative_id":{"type":"string","minLength":1,"maxLength":40,"description":"A ready creative of the campaign"},"price_cents":{"type":"integer","minimum":100,"maximum":100000000,"description":"Your offer for the post (at least the platform minimum)"},"collab":{"description":"Ask for a collab post with your brand as collaborator","type":"boolean"},"brief":{"description":"Note to the creator","type":"string","maxLength":2000},"requested_publish_at":{"description":"Preferred publish time (ISO 8601)","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["account_id","campaign_id","creative_id","price_cents"]},"example":{"account_id":"cmf0acc003","campaign_id":"cmf0cmp003","creative_id":"cmf0crt003","price_cents":90000,"brief":"Unboxing in your usual style.","requested_publish_at":"2026-11-05T17:00:00Z"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"pending_approval","origin":"direct","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":"Show the serum in your morning routine; mention the 20% launch code.","requested_publish_at":"2026-11-05T17:00:00.000Z","negotiation":{"offer_price_cents":45000,"counter_price_cents":null,"rounds":0},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"send_direct_request"},"get":{"operationId":"requests.list","summary":"List sent requests","description":"Advertiser side. Direct requests you sent and applications to your open campaigns, newest first. `status` groups: `action` (a counter-offer or application waiting on you), `waiting` (on the creator), `booked`, `closed`.\n\nRequired scope: `campaigns:read`.","tags":["Requests"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"action | waiting | booked | closed","schema":{"type":"string","enum":["action","waiting","booked","closed"]}},{"name":"origin","in":"query","required":false,"description":"`direct` requests or `open`-campaign applications","schema":{"type":"string","enum":["direct","open"]}},{"name":"campaign_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"pending_advertiser","origin":"direct","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":"Show the serum in your morning routine; mention the 20% launch code.","requested_publish_at":"2026-11-05T17:00:00.000Z","negotiation":{"offer_price_cents":45000,"counter_price_cents":60000,"rounds":1},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"list_sent_requests"}},"/v1/requests/{id}":{"get":{"operationId":"requests.get","summary":"Get a sent request","description":"Advertiser side. One direct request or application with its negotiation state, the actions you can take now, and the message thread.\n\nRequired scope: `campaigns:read`.","tags":["Requests"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"pending_advertiser","origin":"direct","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":"Show the serum in your morning routine; mention the 20% launch code.","requested_publish_at":"2026-11-05T17:00:00.000Z","negotiation":{"offer_price_cents":45000,"counter_price_cents":60000,"rounds":1,"max_rounds":4},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z","actions":{"accept_counter":true,"counter":true,"decline_counter":true,"approve_application":false,"decline_application":false,"withdraw":true,"message":true},"messages":[{"id":"cmf0msg003","object":"placement_message","placement_id":"cmf0plc001","side":"system","author":null,"body":"@techbyleo countered with $600.00 (offer was $450.00).","created_at":"2026-10-28T12:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:read"],"x-mcp-tool":"get_sent_request"}},"/v1/requests/{id}/respond":{"post":{"operationId":"requests.respond","summary":"Respond to a counter-offer","description":"Advertiser side. Answer a creator's counter-offer on a direct request (`pending_advertiser`): `accept` books it at the counter price (the difference is reserved from your wallet), `counter` sends a new price back, `decline` closes the request and releases the reserve.\n\nRequired scope: `campaigns:write`.","tags":["Requests"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["accept","counter","decline"]},"price_cents":{"description":"Required for `counter`","type":"integer","minimum":100,"maximum":100000000},"message":{"description":"Optional note to the creator","type":"string","maxLength":1000}},"required":["action"]},"example":{"action":"counter","price_cents":52000,"message":"We can meet in the middle."}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"pending_approval","origin":"direct","price_cents":52000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":"Show the serum in your morning routine; mention the 20% launch code.","requested_publish_at":"2026-11-05T17:00:00.000Z","negotiation":{"offer_price_cents":52000,"counter_price_cents":60000,"rounds":2},"scheduled_at":null,"published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"respond_to_counter_offer"}},"/v1/requests/{id}/review":{"post":{"operationId":"requests.review","summary":"Review an application","description":"Advertiser side. Approve or decline a creator's application to a `review` open campaign (`origin: open`, `pending_advertiser`). Approving schedules the post; declining shares the reason with the creator.\n\nRequired scope: `campaigns:write`.","tags":["Requests"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","decline"]},"reason":{"description":"Shared with the creator when declining","type":"string","maxLength":500}},"required":["decision"]},"example":{"decision":"approve"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0plc001","object":"placement","side":"advertiser","status":"scheduled","origin":"open","price_cents":45000,"platform_fee_cents":4500,"net_payout_cents":40500,"currency":"USD","campaign":{"id":"cmf0cmp001","name":"Autumn glow launch","type":"targeted","objective":"launch","category":"beauty","advertiser":{"id":"cmf0ws0001","name":"Lumen Skincare","verified":true},"start_date":"2026-11-01T00:00:00.000Z","end_date":"2026-11-30T00:00:00.000Z"},"pending_status":null,"account":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US"},"creative":{"id":"cmf0crt001","object":"creative","name":"Serum reel","campaign_id":"cmf0cmp001","template_id":null,"persona_id":null,"format":"ig_reel","caption":"Glow season is here. #ad","hashtags":["#ad","#skincare"],"cta":"Shop now","link_url":"https://lumen.example/serum","media":[],"status":"ready","ai_generated":false,"version":1,"kind":"standard","parent_id":null,"variant_for_account_id":null,"angle":null,"design_template_id":null,"caption_template_id":null,"variant_status":null,"design_id":null,"created_at":"2026-10-20T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z"},"is_collab":false,"collab_handles":[],"collab_price_cents":0,"brief":null,"requested_publish_at":null,"negotiation":{"offer_price_cents":null,"counter_price_cents":null,"rounds":0},"scheduled_at":"2026-11-02T15:00:00.000Z","published_at":null,"completed_at":null,"expires_at":"2026-10-30T10:00:00.000Z","permalink":null,"auto_approved":false,"decision_reason":null,"decided_at":null,"failure_reason":null,"created_at":"2026-10-28T10:00:00.000Z","updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["campaigns:write"],"x-mcp-tool":"review_application"}},"/v1/reference/{list}":{"get":{"operationId":"reference.list","summary":"List reference values","description":"Valid keys for admin-managed lists: `content_category` (creator niches, campaign targeting), `ad_category` (what a campaign promotes; creator policies allow or block these), `country`, `campaign_objective`, `decline_reason` `creative_angle` (messaging angles for unique posts per creator: `hook`, `guidance`, `suited_categories`, `blocked_ad_categories`, `default_selected`), `content_type` (kinds of posts for AI writing and caption template categories: `goal`, `persona_key`, `caption_min`/`caption_max` characters, `hashtag_min`/`hashtag_max`, `emoji`, `structure`, `cta`, `slide_min`/`slide_max`) and `persona_tone` (tones for personas). Keys are stable; retired values keep resolving but can't be used for new writes. Any API key can read these.","tags":["Reference data"],"parameters":[{"name":"list","in":"path","required":true,"description":"content_category | ad_category | country | campaign_objective | decline_reason | creative_angle | content_type | persona_tone | payout_method | dispute_reason | report_reason | cta | design_template_category","schema":{"type":"string","enum":["content_category","ad_category","country","campaign_objective","decline_reason","creative_angle","content_type","persona_tone","payout_method","dispute_reason","report_reason","cta","design_template_category"]}},{"name":"include_retired","in":"query","required":false,"description":"Include retired values (to label stored data)","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"reference_list","list":"ad_category","label":"Ad categories","data":[{"key":"beauty","label":"Beauty & skincare","description":null,"active":true,"metadata":{"sensitive":false,"default_blocked":false}},{"key":"gambling","label":"Gambling","description":null,"active":true,"metadata":{"sensitive":true,"default_blocked":true}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":[],"x-mcp-tool":"get_reference_data"}},"/v1/accounts":{"get":{"operationId":"accounts.list","summary":"List connected accounts","description":"Instagram accounts connected to this workspace (creator side), largest first, with approval mode and pending request counts.\n\nRequired scope: `accounts:read`.","tags":["Accounts"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"","schema":{"type":"string","enum":["connected","expired","error","disconnected"]}},{"name":"purpose","in":"query","required":false,"description":"`monetize` = hosts ads; `brand` = advertiser's own account","schema":{"type":"string","enum":["monetize","brand"]}},{"name":"team_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"q","in":"query","required":false,"description":"Match on username or display name","schema":{"type":"string","maxLength":60}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","bio":"Skincare & slow mornings","account_type":"creator","purpose":"monetize","following":512,"media_count":840,"avg_reach":21000,"categories":["beauty","lifestyle"],"audience":{"countries":{"US":0.62},"age_ranges":{"25-34":0.41},"gender":{"female":0.78}},"language":"en","status":"connected","status_message":null,"is_listed":true,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","categories_source":"auto","analysis_status":"ready","analyzed_at":"2026-10-28T06:00:00.000Z","team_id":null,"last_synced_at":"2026-10-28T06:00:00.000Z","created_at":"2026-09-01T10:00:00.000Z","approval_mode":"manual","accepting_campaigns":true,"pending_requests":2}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read"],"x-mcp-tool":"list_accounts"}},"/v1/accounts/{id}":{"get":{"operationId":"accounts.get","summary":"Get an account","description":"One connected account with its ad policy and rate cards.\n\nRequired scope: `accounts:read`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","bio":"Skincare & slow mornings","account_type":"creator","purpose":"monetize","following":512,"media_count":840,"avg_reach":21000,"categories":["beauty","lifestyle"],"audience":{"countries":{"US":0.62},"age_ranges":{"25-34":0.41},"gender":{"female":0.78}},"language":"en","status":"connected","status_message":null,"is_listed":true,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","categories_source":"auto","analysis_status":"ready","analyzed_at":"2026-10-28T06:00:00.000Z","team_id":null,"last_synced_at":"2026-10-28T06:00:00.000Z","created_at":"2026-09-01T10:00:00.000Z","team":null,"policy":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"},"rate_cards":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read"],"x-mcp-tool":"get_account"},"patch":{"operationId":"accounts.update","summary":"Update account settings","description":"Marketplace listing, purpose and team assignment.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"is_listed":{"description":"Visible in the advertiser marketplace","type":"boolean"},"purpose":{"type":"string","enum":["monetize","brand"]},"team_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}}},"example":{"is_listed":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","bio":"Skincare & slow mornings","account_type":"creator","purpose":"monetize","following":512,"media_count":840,"avg_reach":21000,"categories":["beauty","lifestyle"],"audience":{"countries":{"US":0.62},"age_ranges":{"25-34":0.41},"gender":{"female":0.78}},"language":"en","status":"connected","status_message":null,"is_listed":false,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","categories_source":"auto","analysis_status":"ready","analyzed_at":"2026-10-28T06:00:00.000Z","team_id":null,"last_synced_at":"2026-10-28T06:00:00.000Z","created_at":"2026-09-01T10:00:00.000Z","team":null,"policy":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"},"rate_cards":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_account_settings"}},"/v1/accounts/{id}/policy":{"get":{"operationId":"accounts.policy.get","summary":"Get the ad policy","description":"Content rules, minimum requirements, pacing, posting windows and approval settings that every ad request is checked against. `null` until the policy is first saved.\n\nRequired scope: `accounts:read`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read"],"x-mcp-tool":"get_account_policy"},"patch":{"operationId":"accounts.policy.update","summary":"Update content policy","description":"Which ads the account accepts: categories, keywords, advertisers, formats, disclosure and AI content. Omitted fields keep their current values.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accepting_campaigns":{"description":"Pause all new ad requests when false","type":"boolean"},"allowed_categories":{"description":"Empty = every category not blocked","maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$"}},"blocked_categories":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$"}},"blocked_keywords":{"description":"Requests whose copy contains these are declined","maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":60}},"blocked_advertiser_ids":{"description":"Advertiser workspace IDs","maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"allowed_formats":{"description":"Empty = every enabled format","maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"require_disclosure":{"type":"boolean"},"disclosure_text":{"description":"e.g. `#ad`","type":"string","minLength":2,"maxLength":40},"allow_ai_generated":{"type":"boolean"},"allow_caption_edits":{"type":"boolean"},"content_guidelines":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}}},"example":{"blocked_categories":["gambling","politics","crypto"],"blocked_keywords":["diet pill"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_account_policy"}},"/v1/accounts/{id}/requirements":{"patch":{"operationId":"accounts.requirements.update","summary":"Update requirements & pacing","description":"Minimum price and budget, lead time, advertiser checks, ad frequency caps, approval SLA and posting windows. Omitted fields keep their current values.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"min_price_cents":{"type":"integer","minimum":0,"maximum":9007199254740991},"min_budget_cents":{"type":"integer","minimum":0,"maximum":9007199254740991},"min_lead_time_hours":{"type":"integer","minimum":0,"maximum":720},"min_campaign_days":{"type":"integer","minimum":1,"maximum":365},"min_advertiser_age_days":{"type":"integer","minimum":0,"maximum":3650},"require_verified_advertiser":{"type":"boolean"},"max_ads_per_day":{"type":"integer","minimum":1,"maximum":20},"max_ads_per_week":{"type":"integer","minimum":1,"maximum":100},"min_hours_between_ads":{"type":"integer","minimum":0,"maximum":168},"approval_sla_hours":{"description":"Requests expire if not decided in time","type":"integer","minimum":1,"maximum":336},"posting_windows":{"description":"When ads may publish; empty = any time","maxItems":168,"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6,"description":"0 = Sunday"},"start":{"type":"string","description":"HH:MM UTC"},"end":{"type":"string","description":"HH:MM UTC"}},"required":["day","start","end"]}}}},"example":{"min_price_cents":20000,"max_ads_per_week":2,"posting_windows":[{"day":2,"start":"17:00","end":"21:00"}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_account_requirements"}},"/v1/accounts/{id}/approval-settings":{"put":{"operationId":"accounts.approval.update","summary":"Set approval settings","description":"How requests are approved: `manual` (every request waits for review), `rules` (auto-approve when rules match) or `auto` (approve everything that meets the policy). Rules replace the current rules when provided. `direct_requests` controls who may send hand-picked requests.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"approval_mode":{"type":"string","enum":["manual","rules","auto"],"description":"`rules` requires auto-approval rules on your plan"},"direct_requests":{"description":"Who may send hand-picked direct requests: `anyone` (you decide on each), `eligible_only` (must pass your policy and minimum price) or `off`. Omit to keep the current setting.","type":"string","enum":["anyone","eligible_only","off"]},"auto_approve_rules":{"type":"object","properties":{"min_price_cents":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"categories":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,39}$"}},"verified_advertisers_only":{"type":"boolean"},"trusted_workspace_ids":{"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"require_no_ai_content":{"type":"boolean"},"max_placements_per_campaign":{"anyOf":[{"type":"integer","minimum":1,"maximum":100},{"type":"null"}]}}}},"required":["approval_mode"]},"example":{"approval_mode":"rules","auto_approve_rules":{"min_price_cents":30000,"categories":["beauty"],"verified_advertisers_only":true},"direct_requests":"eligible_only"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"rules","auto_approve_rules":{"min_price_cents":30000,"categories":["beauty"],"verified_advertisers_only":true,"trusted_workspace_ids":[],"require_no_ai_content":false,"max_placements_per_campaign":null},"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_approval_settings"}},"/v1/accounts/{id}/rate-cards":{"get":{"operationId":"accounts.rate_cards.list","summary":"List rate cards","description":"Price per post for each format on this account.\n\nRequired scope: `accounts:read`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read"],"x-mcp-tool":"list_rate_cards"},"put":{"operationId":"accounts.rate_cards.update","summary":"Set rate cards","description":"Create or update prices per format. `pricing_mode: auto` follows the suggested price from account analysis (and moves when the account or the pricing model changes); `manual` keeps your price. Enable collab posts per format with an automatic or manual add-on. Formats not included are left unchanged; set `active: false` to stop offering one.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rate_cards":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"format":{"type":"string","minLength":1,"maxLength":40,"description":"Format key"},"pricing_mode":{"description":"`auto` follows the platform's suggested price (refreshed on every analysis); `manual` keeps `price_cents`. Defaults to the current mode; for new rows `manual` when `price_cents` is given, otherwise `auto`.","type":"string","enum":["auto","manual"]},"price_cents":{"description":"Minimum price per post (min $5). Required for manual rows that don't exist yet; ignored when `pricing_mode` is `auto`.","type":"integer","minimum":500,"maximum":100000000},"min_duration_hours":{"description":"How long the post stays live; defaults by format","type":"integer","minimum":1,"maximum":720},"active":{"description":"Defaults to true for new rows","type":"boolean"},"collab_enabled":{"description":"Accept collab posts (the brand is invited as an Instagram collaborator). Only for formats that support collabs.","type":"boolean"},"collab_pricing_mode":{"description":"`auto` uses the suggested collab add-on; `manual` keeps `collab_price_cents`. Defaults like `pricing_mode`.","type":"string","enum":["auto","manual"]},"collab_price_cents":{"description":"Collab add-on charged on top of the price (min $5 when manual)","type":"integer","minimum":0,"maximum":100000000}},"required":["format"]},"description":"Upserted by format; formats not listed are left unchanged. Omitted fields keep their current values."}},"required":["rate_cards"]},"example":{"rate_cards":[{"format":"ig_reel","pricing_mode":"auto","collab_enabled":true,"collab_pricing_mode":"auto"},{"format":"ig_story","pricing_mode":"manual","price_cents":12000,"min_duration_hours":24}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_rate_cards"}},"/v1/accounts/{id}/insights":{"get":{"operationId":"accounts.insights.get","summary":"Get account insights","description":"What account analysis found: content categories (effective and suggested, with `auto`/`manual` source), the advertiser-facing description, content stats from recent posts, analysis status, and suggested prices per format with the full pricing breakdown.\n\nRequired scope: `accounts:read`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"account_insights","account_id":"cmf0acc001","categories":["beauty","lifestyle"],"categories_source":"auto","suggested_categories":[{"key":"beauty","confidence":0.82},{"key":"lifestyle","confidence":0.41}],"description":"Skincare routines and slow-morning rituals for women in their late twenties.","description_source":"auto","suggested_description":"Skincare routines and slow-morning rituals for women in their late twenties.","analysis":{"status":"ready","error":null,"model":"claude-opus-5-5","analyzed_at":"2026-10-28T06:00:00.000Z"},"stats":{"posts_analyzed":15,"period_days":34,"posts_per_week":3.1,"last_post_at":"2026-10-26T08:00:00.000Z","format_mix":{"image":4,"carousel":3,"reel":8},"avg_likes":1840,"avg_comments":96,"engagement_rate":4,"medians":{"feed":{"median":14200,"samples":7},"reel":{"median":21800,"samples":8}},"reach_rate":0.36,"top_hashtags":["#skincare","#morningroutine"]},"recent_posts":[{"id":"cmf0med001","media_type":"video","product_type":"reels","caption":"Morning routine, 5 steps","permalink":"https://instagram.com/p/abc","thumbnail_url":null,"posted_at":"2026-10-26T08:00:00.000Z","likes":2210,"comments":104,"reach":23100,"views":31800,"saves":310,"shares":42}],"pricing":[{"format":"ig_reel","format_name":"Reel","price_cents":45000,"pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"breakdown":{"format":"reel","expected_impressions":19800,"impressions_source":"blended","samples":6,"cpm_cents":2500,"factors":{"size":1.02,"engagement":1.21,"niche":1.1,"geo":0.92,"activity":1.05},"raw_cents":44310,"price_cents":45000,"floor_applied":false,"collab_percent":20,"collab_cents":9000,"model_version":1}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:read"],"x-mcp-tool":"get_account_insights"}},"/v1/accounts/{id}/profile":{"patch":{"operationId":"accounts.profile.update","summary":"Update categories & description","description":"Override the categories or description found by analysis. Edited values become `manual` and are kept on re-analysis; `reset_categories` / `reset_description` go back to the analysis results. Category changes reprice auto-priced rate cards.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"description":"Content category keys (see `GET /v1/reference/content_category`). Marks categories as manual: re-analysis won't overwrite them.","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"description":{"description":"Short summary shown to advertisers. Marks the description as manual.","type":"string","minLength":10,"maxLength":500},"reset_categories":{"description":"Go back to the categories found by analysis","type":"boolean"},"reset_description":{"description":"Go back to the description written by analysis","type":"boolean"}}},"example":{"categories":["beauty","wellness"],"reset_description":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"account_insights","account_id":"cmf0acc001","categories":["beauty","wellness"],"categories_source":"manual","suggested_categories":[{"key":"beauty","confidence":0.82},{"key":"lifestyle","confidence":0.41}],"description":"Skincare routines and slow-morning rituals for women in their late twenties.","description_source":"auto","suggested_description":"Skincare routines and slow-morning rituals for women in their late twenties.","analysis":{"status":"ready","error":null,"model":"claude-opus-5-5","analyzed_at":"2026-10-28T06:00:00.000Z"},"stats":{"posts_analyzed":15,"period_days":34,"posts_per_week":3.1,"last_post_at":"2026-10-26T08:00:00.000Z","format_mix":{"image":4,"carousel":3,"reel":8},"avg_likes":1840,"avg_comments":96,"engagement_rate":4,"medians":{"feed":{"median":14200,"samples":7},"reel":{"median":21800,"samples":8}},"reach_rate":0.36,"top_hashtags":["#skincare","#morningroutine"]},"recent_posts":[{"id":"cmf0med001","media_type":"video","product_type":"reels","caption":"Morning routine, 5 steps","permalink":"https://instagram.com/p/abc","thumbnail_url":null,"posted_at":"2026-10-26T08:00:00.000Z","likes":2210,"comments":104,"reach":23100,"views":31800,"saves":310,"shares":42}],"pricing":[{"format":"ig_reel","format_name":"Reel","price_cents":45000,"pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"breakdown":{"format":"reel","expected_impressions":19800,"impressions_source":"blended","samples":6,"cpm_cents":2500,"factors":{"size":1.02,"engagement":1.21,"niche":1.1,"geo":0.92,"activity":1.05},"raw_cents":44310,"price_cents":45000,"floor_applied":false,"collab_percent":20,"collab_cents":9000,"model_version":1}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"update_account_profile"}},"/v1/accounts/{id}/analyze":{"post":{"operationId":"accounts.analyze","summary":"Re-analyze an account","description":"Queue a fresh analysis of the account's recent posts (categories, description, stats and suggested prices). Runs in the background; poll `/insights` or subscribe to the `account.analyzed` webhook. Limited to 3 requests per account per hour.\n\nRequired scope: `accounts:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"202":{"description":"Success","content":{"application/json":{"example":{"object":"account_analysis","account_id":"cmf0acc001","queued":true,"status":"pending"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["accounts:write"],"x-mcp-tool":"analyze_account"}},"/v1/accounts/{id}/sync":{"post":{"operationId":"accounts.sync","summary":"Sync an account","description":"Refresh the account's profile, followers and engagement from Instagram now (accounts also sync daily). Auto-priced rate cards follow the new numbers.\n\nRequired scope: `connections:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","bio":"Skincare & slow mornings","account_type":"creator","purpose":"monetize","following":512,"media_count":840,"avg_reach":21000,"categories":["beauty","lifestyle"],"audience":{"countries":{"US":0.62},"age_ranges":{"25-34":0.41},"gender":{"female":0.78}},"language":"en","status":"connected","status_message":null,"is_listed":true,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","categories_source":"auto","analysis_status":"ready","analyzed_at":"2026-10-28T06:00:00.000Z","team_id":null,"last_synced_at":"2026-10-28T06:00:00.000Z","created_at":"2026-09-01T10:00:00.000Z","team":null,"policy":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"},"rate_cards":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["connections:write"],"x-mcp-tool":"sync_account"}},"/v1/accounts/{id}/disconnect":{"post":{"operationId":"accounts.disconnect","summary":"Disconnect an account","description":"Disconnects the account from Croud: its token is removed, it leaves the marketplace, and open requests on it are closed (scheduled posts are canceled and advertisers are refunded). Reconnect it from the app.\n\nRequired scope: `connections:write`.","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0acc001","object":"account","platform":"instagram","username":"maya.creates","display_name":"Maya","avatar_url":null,"followers":48200,"engagement_rate":4.1,"country":"US","bio":"Skincare & slow mornings","account_type":"creator","purpose":"monetize","following":512,"media_count":840,"avg_reach":21000,"categories":["beauty","lifestyle"],"audience":{"countries":{"US":0.62},"age_ranges":{"25-34":0.41},"gender":{"female":0.78}},"language":"en","status":"disconnected","status_message":null,"is_listed":false,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","categories_source":"auto","analysis_status":"ready","analyzed_at":"2026-10-28T06:00:00.000Z","team_id":null,"last_synced_at":"2026-10-28T06:00:00.000Z","created_at":"2026-09-01T10:00:00.000Z","team":null,"policy":{"object":"ad_policy","account_id":"cmf0acc001","accepting_campaigns":true,"approval_mode":"manual","auto_approve_rules":null,"allowed_categories":[],"blocked_categories":["gambling","politics"],"blocked_keywords":[],"blocked_advertiser_ids":[],"allowed_formats":[],"require_disclosure":true,"disclosure_text":"#ad","allow_ai_generated":true,"allow_caption_edits":true,"min_budget_cents":0,"min_price_cents":15000,"min_lead_time_hours":24,"min_campaign_days":1,"min_advertiser_age_days":0,"require_verified_advertiser":false,"max_ads_per_day":1,"max_ads_per_week":3,"min_hours_between_ads":12,"posting_windows":[{"day":1,"start":"09:00","end":"21:00"}],"approval_sla_hours":48,"direct_requests":"anyone","content_guidelines":null,"updated_at":"2026-10-28T10:00:00.000Z"},"rate_cards":[{"id":"cmf0rc0001","object":"rate_card","account_id":"cmf0acc001","format":"ig_reel","price_cents":45000,"currency":"USD","pricing_mode":"auto","suggested_price_cents":45000,"collab_enabled":true,"collab_price_cents":9000,"collab_pricing_mode":"auto","suggested_collab_cents":9000,"min_duration_hours":72,"active":true,"updated_at":"2026-10-28T10:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["connections:write"],"x-mcp-tool":"disconnect_account"}},"/v1/ai/generate":{"post":{"operationId":"ai.generate","summary":"Generate content","description":"Generate captions, hashtags, ideas, scripts, rewrites or image prompts. `content_type` (see `GET /v1/reference/content_type`) sets the caption length, hashtag count, structure and call to action; a template's category is used when it's omitted. Without `persona_id` the voice is picked automatically: the workspace's voice for the content type, else the platform voice for it, else the workspace default (see `GET /v1/personas/voices`); `persona_id: null` writes without a persona. Every generation uses the brand's saved details (brand kit, then the workspace profile: name, Instagram username, website, description, industry); `campaign_id` adds that campaign's objective, category, landing page and description. The response says which voice wrote it (`persona.source`) and whether a rule-fixing pass ran (`repaired`). Uses the workspace's BYOK key when set (no credits), otherwise AI credits per variation at the platform's current rates (`credits_charged`).\n\nRequired scope: `ai:generate`.","tags":["AI"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["caption","hashtags","ideas","script","rewrite","image_prompt"],"description":"caption | hashtags | ideas | script | rewrite | image_prompt"},"brief":{"default":"","description":"What you want, in a sentence or two","type":"string","maxLength":4000},"content_type":{"description":"Content type key, e.g. `education`, `promo`, `ugc`","anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"persona_id":{"description":"Persona or platform voice ID. Omit for Auto (voice for the content type); null for no persona","type":["string","null"]},"template_id":{"description":"Start from a template; `brief` may then be empty","type":["string","null"]},"format":{"description":"Target format key, e.g. `ig_reel`","type":["string","null"]},"campaign_id":{"description":"Campaign the copy is for: its objective, category, landing page and description are added to the prompt (404 when outside your workspace or team)","anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}]},"variables":{"description":"Template variables","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":500}},"variations":{"default":1,"type":"integer","minimum":1,"maximum":5},"provider":{"description":"Force a provider (see `GET /v1/ai/providers`); your key for it when you have one, else the platform's","type":"string","maxLength":40},"model":{"description":"A specific model: `\"provider:model\"` (e.g. `\"openrouter:anthropic/claude-haiku-5.5\"`) or `{ provider, model }`. Must be listed by `GET /v1/ai/models`; credits use that model's multiplier","anyOf":[{"type":"string","minLength":3,"maxLength":240},{"type":"object","properties":{"provider":{"type":"string","minLength":1,"maxLength":40},"model":{"type":"string","minLength":1,"maxLength":200}},"required":["provider","model"]}]}},"required":["kind"]},"example":{"kind":"caption","brief":"Launch post for our vitamin C serum, 20% off this week","content_type":"product_launch","format":"ig_reel","variations":2,"model":"openrouter:anthropic/claude-haiku-5.5"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"object":"ai_generation_result","id":"cmf0gen001","outputs":[{"text":"Glow season starts now. Our vitamin C serum is 20% off this week.","hashtags":["skincare","vitaminc"],"cta":"Shop now"}],"provider":"anthropic","model":"claude-sonnet-5-5","used_byok":false,"credits_charged":2,"persona":{"id":"cmf0prs101","name":"Launch insider","source":"platform_type"},"content_type":"product_launch","repaired":false,"fallback_used":false}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["ai:generate"],"x-mcp-tool":"generate_content"}},"/v1/ai/models":{"get":{"operationId":"ai.models.list","summary":"List AI models","description":"Models this workspace can generate with. `platform` models are paid with AI credits: `credits` is what one generation of each kind costs with that model (the kind's credits × the model's multiplier); `available: false` means the model is visible but not included in your plan. `byok` lists models reachable through your own provider keys (no credits). Pass a model's `ref` as `model` to `POST /v1/ai/generate`. `current` is where generations go when no model is given.\n\nRequired scope: `ai:generate`.","tags":["AI"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"object":"ai_model","ref":"openrouter:anthropic/claude-haiku-5.5","provider":"openrouter","provider_name":"OpenRouter","model":"anthropic/claude-haiku-5.5","label":"Claude Haiku 5.5","description":"Anthropic via OpenRouter. Fast and inexpensive.","tier":"standard","context_length":1000000,"credit_multiplier":1,"credits":{"caption":1,"design":8},"available":true,"reason":null,"billing":"credits"}],"byok":[{"key_id":"cmf0key001","key_label":"Our OpenAI key","provider":"openai","provider_name":"OpenAI","is_default":true,"default_model":"gpt-5.6-terra","models":[{"ref":"openai:gpt-5.6-terra","model":"gpt-5.6-terra","label":"GPT-5.6 Terra","tier":"standard"}]}],"current":{"mode":"platform","provider":"openrouter","model":"anthropic/claude-haiku-5.5","label":"Claude Haiku 5.5"}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["ai:generate"],"x-mcp-tool":"list_ai_models"}},"/v1/ai/providers":{"get":{"operationId":"ai.providers.list","summary":"List AI providers","description":"Providers you can bring your own key for (Settings → AI provider keys), with where to create a key, the key format and the models offered. `requires_base_url` providers (Azure OpenAI) also need your resource URL; `free_text_models` providers accept any model id their model list contains (checked when the key is saved). `byok_enabled` says whether your plan includes your own keys.\n\nRequired scope: `ai:generate`.","tags":["AI"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","byok_enabled":true,"data":[{"object":"ai_provider","key":"openrouter","name":"OpenRouter","description":"One key for hundreds of models from Anthropic, OpenAI, Google, Meta and more.","key_prefix":"sk-or-","key_placeholder":"sk-or-v1-…","docs_url":"https://openrouter.ai/docs/quickstart","dashboard_url":"https://openrouter.ai/settings/keys","requires_base_url":false,"supports_model_list":true,"free_text_models":true,"default_model":"anthropic/claude-haiku-5.5","models":[{"id":"anthropic/claude-haiku-5.5","label":"Claude Haiku 5.5","tier":"standard"}]}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["ai:generate"],"x-mcp-tool":"list_ai_providers"}},"/v1/ai/generations":{"get":{"operationId":"ai.generations.list","summary":"List generations","description":"AI generation history for the workspace, newest first.\n\nRequired scope: `ai:generate`.","tags":["AI"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"kind","in":"query","required":false,"description":"","schema":{"type":"string","enum":["caption","hashtags","ideas","script","rewrite","image_prompt","variant","design","design_edit"]}},{"name":"persona_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"content_type","in":"query","required":false,"description":"Content type key (see `GET /v1/reference/content_type`)","schema":{"type":"string","maxLength":40}},{"name":"status","in":"query","required":false,"description":"","schema":{"type":"string","enum":["succeeded","failed"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0gen001","object":"ai_generation","kind":"caption","status":"succeeded","error":null,"persona":{"id":"cmf0prs001","name":"Lumen voice"},"content_type":"promo","template_id":null,"outputs":[{"text":"Glow season starts now.","hashtags":["skincare"],"cta":"Shop now"}],"provider":"anthropic","model":"claude-sonnet-5-5","used_byok":false,"credits_charged":1,"source":"api","created_at":"2026-10-28T10:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["ai:generate"],"x-mcp-tool":"list_generations"}},"/v1/ai/generations/{id}":{"get":{"operationId":"ai.generations.get","summary":"Get a generation","description":"One AI generation with its outputs.\n\nRequired scope: `ai:generate`.","tags":["AI"],"parameters":[{"name":"id","in":"path","required":true,"description":"Generation ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0gen001","object":"ai_generation","kind":"caption","status":"succeeded","error":null,"persona":null,"content_type":null,"template_id":null,"outputs":[],"provider":"anthropic","model":"claude-sonnet-5-5","used_byok":false,"credits_charged":1,"source":"api","created_at":"2026-10-28T10:00:00.000Z"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["ai:generate"]}},"/v1/marketplace/creators":{"get":{"operationId":"marketplace.search","summary":"Search creators","description":"Listed creator accounts (your own accounts are excluded), including ones not currently accepting campaigns so you can still send them a direct request; accounts open to campaigns sort first. `direct_requests` on each card says whether the creator takes hand-picked requests. Prices are cents; `min_price`/`max_price` filters are in dollars.\n\nRequired scope: `marketplace:read`.","tags":["Marketplace"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"q","in":"query","required":false,"description":"Username, name or niche","schema":{"type":"string","maxLength":80}},{"name":"niches","in":"query","required":false,"description":"Comma-separated niches","schema":{"type":"string","maxLength":400}},{"name":"country","in":"query","required":false,"description":"","schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"min_followers","in":"query","required":false,"description":"","schema":{"type":"number","minimum":0}},{"name":"max_followers","in":"query","required":false,"description":"","schema":{"type":"number","minimum":0}},{"name":"min_er","in":"query","required":false,"description":"Minimum engagement rate, percent","schema":{"type":"number","minimum":0}},{"name":"format","in":"query","required":false,"description":"Only creators with a rate for this format","schema":{"type":"string","maxLength":40}},{"name":"min_price","in":"query","required":false,"description":"Dollars","schema":{"type":"number","minimum":0}},{"name":"max_price","in":"query","required":false,"description":"Dollars","schema":{"type":"number","minimum":0}},{"name":"approval","in":"query","required":false,"description":"`instant` = rules or auto","schema":{"type":"string","enum":["manual","rules","auto","instant"]}},{"name":"category","in":"query","required":false,"description":"Only creators who accept this ad category","schema":{"type":"string","maxLength":40}},{"name":"available","in":"query","required":false,"description":"Only creators currently accepting campaigns","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}},{"name":"collab","in":"query","required":false,"description":"Only creators who offer collab posts","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}},{"name":"languages","in":"query","required":false,"description":"Comma-separated language codes (e.g. `en,es`)","schema":{"type":"string","maxLength":200}},{"name":"audience_ages","in":"query","required":false,"description":"Comma-separated audience age ranges: 13-17, 18-24, 25-34, 35-44, 45+","schema":{"type":"string","maxLength":100}},{"name":"sort","in":"query","required":false,"description":"","schema":{"type":"string","enum":["relevance","followers","engagement","price_asc","price_desc"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","total_listed":40,"total":1,"data":[{"id":"cmf0acc001","username":"maya.creates","display_name":"Maya","avatar_url":null,"country":"US","niches":["beauty","lifestyle"],"followers":48200,"engagement_rate":4.1,"avg_reach":21000,"from_price_cents":12000,"formats":["ig_story","ig_reel"],"approval_mode":"rules","accepting_campaigns":true,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","offers_collab":true,"direct_requests":"anyone","price_for_filter_cents":12000}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["marketplace:read"],"x-mcp-tool":"search_creators"}},"/v1/marketplace/creators/{id}":{"get":{"operationId":"marketplace.creator","summary":"Get a creator profile","description":"A listed creator's public profile: stats, follower history, audience, rate card, track record and a summary of the ad policy you'll be matched against.\n\nRequired scope: `marketplace:read`.","tags":["Marketplace"],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0acc001","username":"maya.creates","display_name":"Maya","avatar_url":null,"country":"US","niches":["beauty","lifestyle"],"followers":48200,"engagement_rate":4.1,"avg_reach":21000,"from_price_cents":12000,"formats":["ig_story","ig_reel"],"approval_mode":"rules","accepting_campaigns":true,"description":"Skincare routines and slow-morning rituals for women in their late twenties.","offers_collab":true,"direct_requests":"anyone","bio":"Skincare & slow mornings","following":512,"media_count":840,"language":"en","account_type":"creator","growth":{"percent":6.2,"since":"2026-05-01T00:00:00.000Z"},"audience":{"countries":[["US",0.62]],"age_ranges":[["25-34",0.41]],"gender":[["female",0.78]]},"rate_card":[{"format_key":"ig_reel","price_cents":45000,"currency":"USD","min_duration_hours":72,"format_name":"Reel"}],"track":{"completed":14,"approval_rate":0.82},"policy":{"accepting_campaigns":true,"approval_mode":"rules","approval_sla_hours":48,"min_price_cents":12000,"require_disclosure":true,"disclosure_text":"#ad"},"fit":{"verified_required_but_missing":false}}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["marketplace:read"],"x-mcp-tool":"get_creator_profile"}},"/v1/analytics":{"get":{"operationId":"analytics.summary","summary":"Get analytics","description":"Performance over the last 7, 30 or 90 days with deltas against the previous period and a daily series. `side=advertiser`: spend, impressions, reach, engagements, clicks, top accounts and per-campaign KPIs. `side=creator`: earnings, approvals and per-account / per-advertiser breakdowns.\n\nRequired scope: `analytics:read`.","tags":["Analytics"],"parameters":[{"name":"side","in":"query","required":true,"description":"Which side of the marketplace to report on","schema":{"type":"string","enum":["advertiser","creator"]}},{"name":"days","in":"query","required":false,"description":"","schema":{"default":30,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"analytics","side":"advertiser","days":30,"totals":{"spend_cents":310000,"impressions":402000,"reach":288000,"engagements":21400,"clicks":3100},"deltas":{"spend_cents":12.4,"impressions":8.1,"reach":5.6,"engagements":-2.3,"clicks":14},"series":[{"date":"2026-10-27","spend_cents":12000,"impressions":14800,"reach":10200,"engagements":790,"clicks":104}],"top_accounts":[],"per_campaign":[]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["analytics:read"],"x-mcp-tool":"get_analytics"}},"/v1/personas":{"get":{"operationId":"personas.list","summary":"List personas","description":"Voices used by AI generation: the workspace's personas (default first), then the platform voices (`platform: true`, admin-managed and read-only, one per content type). Any of them can be passed as `persona_id` to `POST /v1/ai/generate`.\n\nRequired scope: `personas:read`.","tags":["Personas"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"Filters the workspace's personas; platform voices are always active","schema":{"default":"active","type":"string","enum":["active","archived","all"]}},{"name":"team_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"include_platform","in":"query","required":false,"description":"Include platform voices (default true; ignored for `status=archived`)","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["0","1","true","false"]}]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:read"],"x-mcp-tool":"list_personas"},"post":{"operationId":"personas.create","summary":"Create a persona","description":"Creates a brand voice. The first active persona becomes the default. Counts toward the plan's persona limit.\n\nRequired scope: `personas:write`.","tags":["Personas"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":60},"tagline":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"team_id":{"type":["string","null"]},"tone":{"description":"Up to 6 `persona_tone` keys (see `GET /v1/reference/persona_tone`), e.g. warm, practical","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":30}},"formality":{"description":"0 = casual, 100 = formal","type":"integer","minimum":0,"maximum":100},"emoji_usage":{"type":"string","enum":["none","light","heavy"]},"language":{"description":"Language code, e.g. `en`","type":"string","minLength":2,"maxLength":10},"audience":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"values":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"do_list":{"description":"Things the voice always does","maxItems":15,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"dont_list":{"description":"Things the voice never does","maxItems":15,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"banned_words":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"sample_posts":{"description":"Example captions in this voice","maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":2200}},"hashtag_style":{"type":"string","enum":["none","minimal","moderate","heavy"]},"cta_style":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]}},"required":["name"]},"example":{"name":"Lumen voice","tone":["warm","expert"],"formality":40,"emoji_usage":"light","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"hashtag_style":"minimal"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"create_persona"}},"/v1/personas/{id}":{"get":{"operationId":"personas.get","summary":"Get a persona","description":"Retrieve one persona: a workspace persona or a platform voice (`platform: true`).\n\nRequired scope: `personas:read`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:read"],"x-mcp-tool":"get_persona"},"patch":{"operationId":"personas.update","summary":"Update a persona","description":"Update fields; omitted fields keep their values. Platform voices are read-only (403): duplicate one to edit it.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":60},"tagline":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"team_id":{"type":["string","null"]},"tone":{"description":"Up to 6 `persona_tone` keys (see `GET /v1/reference/persona_tone`), e.g. warm, practical","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":30}},"formality":{"description":"0 = casual, 100 = formal","type":"integer","minimum":0,"maximum":100},"emoji_usage":{"type":"string","enum":["none","light","heavy"]},"language":{"description":"Language code, e.g. `en`","type":"string","minLength":2,"maxLength":10},"audience":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"values":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"do_list":{"description":"Things the voice always does","maxItems":15,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"dont_list":{"description":"Things the voice never does","maxItems":15,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"banned_words":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":40}},"sample_posts":{"description":"Example captions in this voice","maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":2200}},"hashtag_style":{"type":"string","enum":["none","minimal","moderate","heavy"]},"cta_style":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]}}},"example":{"formality":55,"banned_words":["miracle","flawless"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"update_persona"},"delete":{"operationId":"personas.delete","summary":"Delete a persona","description":"Permanently deletes an archived workspace persona. Creatives and campaigns that used it keep their content; their persona link is cleared.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","deleted":true}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"delete_persona"}},"/v1/personas/{id}/duplicate":{"post":{"operationId":"personas.duplicate","summary":"Duplicate a persona","description":"Copy a workspace persona or a platform voice into the workspace as an editable persona. Counts toward the plan's persona limit.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"duplicate_persona"}},"/v1/personas/{id}/archive":{"post":{"operationId":"personas.archive","summary":"Archive a persona","description":"Hides a workspace persona from pickers and AI generation. If it was the default, the workspace has no default until you set one. Archived personas can be restored or deleted.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":false,"status":"archived","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"archive_persona"}},"/v1/personas/{id}/restore":{"post":{"operationId":"personas.restore","summary":"Restore a persona","description":"Makes an archived persona active again. Counts toward the plan's persona limit.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":false,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"restore_persona"}},"/v1/personas/{id}/default":{"post":{"operationId":"personas.set_default","summary":"Make a persona the default","description":"The default persona writes AI content when no persona is chosen and no voice is set for the content type. One per workspace; the persona must be active.\n\nRequired scope: `personas:write`.","tags":["Personas"],"parameters":[{"name":"id","in":"path","required":true,"description":"Persona ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0prs001","object":"persona","name":"Lumen voice","avatar_url":null,"tagline":"Calm, clinical, kind","description":"Science-backed skincare without the jargon.","tone":["warm","expert"],"formality":40,"emoji_usage":"light","language":"en","audience":"Women 25–40 who read ingredient lists","values":"Honesty over hype","do_list":["Name the key ingredient"],"dont_list":["Promise overnight results"],"banned_words":["miracle"],"sample_posts":[],"hashtag_style":"minimal","cta_style":"Soft invitation","is_default":true,"status":"active","team_id":null,"created_at":"2026-10-01T10:00:00.000Z","updated_at":"2026-10-20T10:00:00.000Z","platform":false,"key":null,"content_type":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"set_default_persona"}},"/v1/personas/voices":{"get":{"operationId":"personas.voices.get","summary":"Voices by content type","description":"For every content type (see `GET /v1/reference/content_type`): the workspace's chosen voice, the platform default, and `auto_voice`, the persona `POST /v1/ai/generate` uses when `persona_id` is omitted (`source`: workspace_type | platform_type | workspace_default).\n\nRequired scope: `personas:read`.","tags":["Personas"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"content_type_voices","data":[{"content_type":"education","label":"How-to & tips","goal":"saves","workspace_voice":null,"platform_voice":{"id":"cmf0prs101","name":"Practical teacher"},"auto_voice":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}},{"content_type":"promo","label":"Offer & promo","goal":"clicks","workspace_voice":{"id":"cmf0prs001","name":"Lumen voice","platform":false},"platform_voice":{"id":"cmf0prs102","name":"Straight shooter"},"auto_voice":{"id":"cmf0prs001","name":"Lumen voice","platform":false,"source":"workspace_type"}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:read"],"x-mcp-tool":"get_content_type_voices"},"put":{"operationId":"personas.voices.update","summary":"Set voices by content type","description":"Choose the voice for one or more content types: `{ \"voices\": { \"education\": \"<persona id>\", \"promo\": null } }`. Any workspace persona or platform voice works; `null` goes back to the platform default. Types you leave out are unchanged.\n\nRequired scope: `personas:write`.","tags":["Personas"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"voices":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":40},"additionalProperties":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"description":"content_type key → persona id, or null for the platform default"}},"required":["voices"]},"example":{"voices":{"education":"cmf0prs001","promo":null}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"content_type_voices","data":[{"content_type":"education","label":"How-to & tips","goal":"saves","workspace_voice":null,"platform_voice":{"id":"cmf0prs101","name":"Practical teacher"},"auto_voice":{"id":"cmf0prs101","name":"Practical teacher","platform":true,"source":"platform_type"}},{"content_type":"promo","label":"Offer & promo","goal":"clicks","workspace_voice":{"id":"cmf0prs001","name":"Lumen voice","platform":false},"platform_voice":{"id":"cmf0prs102","name":"Straight shooter"},"auto_voice":{"id":"cmf0prs001","name":"Lumen voice","platform":false,"source":"workspace_type"}}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["personas:write"],"x-mcp-tool":"set_content_type_voices"}},"/v1/wallet":{"get":{"operationId":"wallet.get","summary":"Get wallet balances","description":"Balances in the platform currency (cents). Advertisers: `available` funds new placements, `reserved` is held for approved placements and open-campaign escrow (marketplace fee included). Creators: `pending_earnings` settle when placements complete; `withdrawable_cents` (settled earnings not yet paid out or spent) can be paid out. Deposits are never withdrawable.\n\nRequired scope: `wallet:read` or `analytics:read`.","tags":["Wallet"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"wallet","currency":"USD","available_cents":1250000,"withdrawable_cents":0,"reserved_cents":90000,"pending_payouts_cents":0,"pending_earnings_cents":0,"lifetime_earnings_cents":0,"lifetime_spend_cents":310000,"lifetime_deposits_cents":1650000}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["wallet:read","analytics:read"],"x-mcp-tool":"get_wallet"}},"/v1/wallet/transactions":{"get":{"operationId":"wallet.transactions.list","summary":"List wallet transactions","description":"The wallet ledger, newest first. Amounts are signed cents: holds and charges are negative, deposits and earnings positive.\n\nRequired scope: `wallet:read` or `analytics:read`.","tags":["Wallet"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"type","in":"query","required":false,"description":"Comma-separated transaction types","schema":{"anyOf":[{"type":"array","items":{"type":"string","enum":["deposit","reserve","hold","release","charge","earning","platform_fee","payout","refund","adjustment"]}},{"type":"string"}]}},{"name":"status","in":"query","required":false,"description":"Comma-separated statuses","schema":{"anyOf":[{"type":"array","items":{"type":"string","enum":["pending","settled","failed","reversed"]}},{"type":"string"}]}},{"name":"campaign_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}},{"name":"placement_id","in":"query","required":false,"description":"","schema":{"type":"string","maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0txn001","object":"wallet_transaction","type":"hold","amount_cents":-45000,"currency":"USD","status":"pending","campaign_id":"cmf0cmp001","placement_id":"cmf0plc001","payout_id":null,"description":"Hold for @maya.creates","created_at":"2026-10-28T11:00:00.000Z"}],"has_more":true,"next_cursor":"cmf0txn001"}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["wallet:read","analytics:read"],"x-mcp-tool":"list_wallet_transactions"}},"/v1/payouts":{"get":{"operationId":"payouts.list","summary":"List payouts","description":"The workspace's payout requests, newest first. `status`: pending (waiting for review; `hold_reason` when held), processing (approved, being sent), paid, failed (amount returned to the balance) or canceled.\n\nRequired scope: `wallet:read`.","tags":["Payouts"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0pay001","object":"payout","amount_cents":25000,"currency":"USD","method":"paypal","status":"pending","hold_reason":null,"failure_reason":null,"external_ref":null,"requested_at":"2026-10-28T11:00:00.000Z","processed_at":null,"paid_at":null}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["wallet:read"],"x-mcp-tool":"list_payouts"},"post":{"operationId":"payouts.create","summary":"Request a payout","description":"Withdraw settled earnings. `amount_cents` must be at least the platform minimum and at most `withdrawable_cents` from `GET /v1/wallet`. `method` is a key from `GET /v1/payouts/methods`; manual methods need a `destination` (e.g. the PayPal email).\n\nRequired scope: `payouts:write`.","tags":["Payouts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount_cents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"method":{"type":"string","minLength":1,"maxLength":40},"destination":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}]}},"required":["amount_cents","method"]},"example":{"amount_cents":25000,"method":"paypal","destination":"maya@example.com"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0pay001","object":"payout","amount_cents":25000,"currency":"USD","method":"paypal","status":"pending","hold_reason":null,"failure_reason":null,"external_ref":null,"requested_at":"2026-10-28T11:00:00.000Z","processed_at":null,"paid_at":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["payouts:write"],"x-mcp-tool":"request_payout"}},"/v1/payouts/methods":{"get":{"operationId":"payouts.methods","summary":"List payout methods","description":"Payout methods creators can choose (admin-managed), with what `destination` to send and the usual processing time. Automatic methods (Stripe) need a connected Stripe account.\n\nRequired scope: `wallet:read`.","tags":["Payouts"],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"key":"paypal","label":"PayPal","automatic":false,"destination_label":"PayPal email","destination_hint":"The email of your PayPal account.","processing_time":"1–3 business days"}]}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["wallet:read"],"x-mcp-tool":"list_payout_methods"}},"/v1/payouts/{id}/cancel":{"post":{"operationId":"payouts.cancel","summary":"Cancel a payout","description":"Cancel a payout that is still `pending` (not yet approved). The amount returns to the withdrawable balance.\n\nRequired scope: `payouts:write`.","tags":["Payouts"],"parameters":[{"name":"id","in":"path","required":true,"description":"Payout ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0pay001","object":"payout","amount_cents":25000,"currency":"USD","method":"paypal","status":"canceled","hold_reason":null,"failure_reason":null,"external_ref":null,"requested_at":"2026-10-28T11:00:00.000Z","processed_at":null,"paid_at":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["payouts:write"],"x-mcp-tool":"cancel_payout"}},"/v1/placements/{id}/disputes":{"post":{"operationId":"placements.dispute","summary":"Report a problem with a post","description":"Open a dispute on a published, completed or early-removed placement, from either side, within the platform's dispute window. The placement becomes `disputed`: completion and the creator's earning are frozen until the Croud team resolves it. `reason` is a key of the `dispute_reason` reference list (`GET /v1/reference/dispute_reason`).\n\nRequired scope: `placements:write` or `campaigns:write`.","tags":["Disputes"],"parameters":[{"name":"id","in":"path","required":true,"description":"Placement ID","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":40},"details":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["reason"]},"example":{"reason":"removed_early","details":"The post was deleted after 6 hours."}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"example":{"id":"cmf0dsp001","object":"dispute","placement_id":"cmf0plc001","opened_by":"advertiser","reason":"removed_early","details":"The post was deleted after 6 hours.","status":"open","resolution":null,"creator_share_cents":null,"resolution_note":null,"created_at":"2026-10-28T11:00:00.000Z","resolved_at":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found in this workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource is in a state that doesn't allow this action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:write","campaigns:write"],"x-mcp-tool":"open_dispute"}},"/v1/disputes":{"get":{"operationId":"disputes.list","summary":"List disputes","description":"Disputes on this workspace's placements (as advertiser or creator), newest first.\n\nRequired scope: `placements:read`.","tags":["Disputes"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Page size, 1–100 (default 25)","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string","maxLength":128}},{"name":"status","in":"query","required":false,"description":"","schema":{"type":"string","enum":["open","resolved"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"example":{"object":"list","data":[{"id":"cmf0dsp001","object":"dispute","placement_id":"cmf0plc001","opened_by":"advertiser","reason":"removed_early","details":"The post was deleted after 6 hours.","status":"open","resolution":null,"creator_share_cents":null,"resolution_note":null,"created_at":"2026-10-28T11:00:00.000Z","resolved_at":null}],"has_more":false,"next_cursor":null}}}},"401":{"description":"Missing, invalid, revoked or expired API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan doesn't include this feature, or insufficient funds / credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"API key is missing a scope or the creator's role lacks the permission","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Platform maintenance; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-required-scopes":["placements:read"],"x-mcp-tool":"list_disputes"}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"crd_live_<32 chars>","description":"Workspace API key. Scopes: campaigns:read, campaigns:write, creatives:read, creatives:write, accounts:read, accounts:write, placements:read, placements:write, personas:read, personas:write, templates:read, templates:write, ai:generate, analytics:read, marketplace:read, wallet:read, connections:write, workspace:write, members:read, members:write, webhooks:write, payouts:write or `*` (full access)."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["unauthorized","forbidden","not_found","invalid_input","conflict","plan_limit","feature_unavailable","insufficient_credits","insufficient_funds","rate_limited","integration_error","internal","service_unavailable"]},"message":{"type":"string"},"details":{}}}}}}}}