{"openapi":"3.1.0","info":{"title":"Skalyn API","version":"1.0.0","description":"Skalyn is an AI marketing platform that turns a solo founder's onboarding answers into a complete launch pack, then runs their marketing week after week with an approve-first AI copilot.\n\nProgrammatic access for AI agents and scripts. Authenticate with an API key created in your account, sent as `Authorization: Bearer wgtm_sk_…`. Long calls (run/plan/generate) block up to ~5 minutes; on a client timeout, poll `GET /api/v1/projects/{id}`. Rate-limited responses carry `Retry-After` + `X-RateLimit-*`; plan locks return 402 with a machine-actionable `upgrade` block. Authenticated responses carry an `X-Request-Id` correlation header (the cached public discovery endpoints omit it)."},"servers":[{"url":"https://skalyn.ai"}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/meta":{"get":{"operationId":"getMeta","summary":"Product, pricing, endpoints, and auth instructions for agents.","security":[],"responses":{"200":{"description":"Product, pricing, endpoints, and auth instructions for agents."}}}},"/api/v1/openapi.json":{"get":{"operationId":"getOpenApiSpec","summary":"This OpenAPI 3.1 document.","security":[],"responses":{"200":{"description":"This OpenAPI 3.1 document."}}}},"/api/v1/me":{"get":{"operationId":"getMe","summary":"The caller's plan, limits, scope-aware usage, and billing state.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The caller's plan, limits, scope-aware usage, and billing state.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/api/v1/signup":{"post":{"operationId":"signup","summary":"Create an account. A valid CAPTCHA token yields a browser free-tier account; omitting it yields a paid-only API account. Always returns 202 confirmation_required — never a key.","security":[],"responses":{"202":{"description":"Create an account. A valid CAPTCHA token yields a browser free-tier account; omitting it yields a paid-only API account. Always returns 202 confirmation_required — never a key."},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":8,"maxLength":200},"acceptTerms":{"type":"boolean","const":true},"captchaToken":{"type":"string","minLength":1,"maxLength":4096},"inviteCode":{"type":"string","minLength":1,"maxLength":200}},"required":["email","password","acceptTerms"],"additionalProperties":false}}}}}},"/api/v1/keys/bootstrap":{"post":{"operationId":"bootstrapKey","summary":"Exchange the confirmation email's token_hash for an API key (shown once). Confirms the email in the same step; retries within 15 minutes replay the identical response.","security":[],"responses":{"200":{"description":"Exchange the confirmation email's token_hash for an API key (shown once). Confirms the email in the same step; retries within 15 minutes replay the identical response."},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tokenHash":{"type":"string","minLength":1,"maxLength":512},"name":{"default":"bootstrap","type":"string","minLength":1,"maxLength":80}},"required":["tokenHash","name"],"additionalProperties":false}}}}}},"/api/v1/projects":{"get":{"operationId":"listProjects","summary":"List the caller's projects.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List the caller's projects.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"}}},"post":{"operationId":"createProject","summary":"Create a project from onboarding data.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Create a project from onboarding data.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"onboarding":{"type":"object","properties":{"businessName":{"type":"string","minLength":1,"maxLength":200},"productDescription":{"type":"string","minLength":1,"maxLength":3000},"problemSolved":{"type":"string","minLength":1,"maxLength":1000},"features":{"anyOf":[{"maxItems":4,"type":"array","items":{"type":"object","properties":{"what":{"type":"string","minLength":1,"maxLength":1000},"who":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"benefit":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]}},"required":["what"],"additionalProperties":false}},{"type":"null"}]},"whyItMatters":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"audienceType":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"audienceDescription":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"talkedToAudience":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"audienceFeedback":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"audienceGenerations":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"audiencePlatforms":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"founderPlatforms":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"enabledChannels":{"anyOf":[{"maxItems":15,"type":"array","items":{"type":"string","maxLength":50}},{"type":"null"}]},"successDefinition":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"successTimeline":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"toneWords":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"avoidToneWords":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"desiredActions":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"actionPriority":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"founderStory":{"anyOf":[{"type":"string","maxLength":3000},{"type":"null"}]},"whyChooseYou":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"avoidTopics":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"existingAssets":{"anyOf":[{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200}},{"type":"null"}]},"assetUrls":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"weeklyHours":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"approvalPreference":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"productReadiness":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"existingAudience":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"geographicFocus":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"revenueModel":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"marketingBudget":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["businessName","productDescription","problemSolved"],"additionalProperties":false}},"required":["name","onboarding"],"additionalProperties":false}}}}}},"/api/v1/projects/{id}":{"get":{"operationId":"getProject","summary":"Get one owned project and its runs.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Get one owned project and its runs.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/projects/{id}/confirm":{"post":{"operationId":"confirmProject","summary":"Confirm onboarding and enter the pipeline.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Confirm onboarding and enter the pipeline.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/agents":{"post":{"operationId":"runAgent","summary":"Run a pipeline agent for a project.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Run a pipeline agent for a project.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"agentType":{"type":"string","enum":["market-strategist","brand-architect","launch-strategist","website-copy","launch-assets"]}},"required":["projectId","agentType"],"additionalProperties":false}}}}},"patch":{"operationId":"reviewRun","summary":"Approve or reject a completed run.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Approve or reject a completed run.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string","enum":["approve","reject"]},"feedback":{"type":"string","maxLength":1000},"decisions":{"type":"object","properties":{"positioning":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":1000}},"required":["name","statement"],"additionalProperties":false},"valueProposition":{"type":"object","properties":{"angle":{"type":"string","maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":1000}},"required":["angle","statement"],"additionalProperties":false},"brandName":{"type":"string","minLength":1,"maxLength":200},"tagline":{"type":"string","minLength":1,"maxLength":1000},"colorPalette":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}},"required":["runId","action"],"additionalProperties":false}}}}}},"/api/v1/projects/{id}/content":{"get":{"operationId":"listProjectContent","summary":"List a project's content items.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List a project's content items.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/projects/{id}/content/download-all":{"get":{"operationId":"downloadProjectContent","summary":"Download all of a project's content.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Download all of a project's content.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/content/{itemId}":{"patch":{"operationId":"editContentItem","summary":"Edit a content item.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Edit a content item.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"parameters":[{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":20000}},"required":["body"],"additionalProperties":false}}}}}},"/api/v1/content/{itemId}/download":{"get":{"operationId":"downloadContentItem","summary":"Download one content item.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Download one content item.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/projects/{id}/brain":{"get":{"operationId":"getBrain","summary":"Read a project's Marketing Playbook.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Read a project's Marketing Playbook.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/projects/{id}/decisions":{"patch":{"operationId":"editDecisions","summary":"Update a project's founder decisions.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Update a project's founder decisions.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"positioning":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":1000}},"required":["name","statement"],"additionalProperties":false},"valueProposition":{"type":"object","properties":{"angle":{"type":"string","maxLength":200},"statement":{"type":"string","minLength":1,"maxLength":1000}},"required":["angle","statement"],"additionalProperties":false},"brandName":{"type":"string","minLength":1,"maxLength":200},"tagline":{"type":"string","minLength":1,"maxLength":1000},"colorPalette":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false}}}}}},"/api/v1/export":{"get":{"operationId":"exportProject","summary":"Export a project's launch pack.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Export a project's launch pack.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"},"description":"The project to export."},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","docx","pdf","xlsx"],"default":"json"},"description":"Export file format (defaults to JSON)."}]}},"/api/v1/account/export":{"get":{"operationId":"exportAccount","summary":"Export all of the caller's account data.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Export all of the caller's account data.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/api/v1/projects/{id}/growth/start":{"post":{"operationId":"startGrowth","summary":"Enter the Growth phase for a project.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Enter the Growth phase for a project.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/projects/{id}/growth/cycles":{"get":{"operationId":"listGrowthCycles","summary":"List a project's growth cycles.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List a project's growth cycles.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]},"post":{"operationId":"planGrowthCycle","summary":"Plan a new weekly growth cycle.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Plan a new weekly growth cycle.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}]}},"/api/v1/growth/cycles/{cycleId}/approve":{"post":{"operationId":"approveGrowthPlan","summary":"Approve a weekly plan.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Approve a weekly plan.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"name":"cycleId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"object","properties":{"weekTheme":{"type":"string","minLength":1,"maxLength":200},"rationale":{"type":"string","maxLength":3000},"contentPlan":{"maxItems":15,"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["x","linkedin","instagram","threads","bluesky","pinterest","tiktok","instagram-reels","youtube-shorts","reddit","discord","facebook-group","blog","thought-leadership","newsletter"]},"audienceRationale":{"type":"string","maxLength":1000},"count":{"type":"integer","minimum":0,"maximum":10},"items":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","maxLength":200},"title":{"type":"string","minLength":1,"maxLength":200},"angle":{"type":"string","maxLength":1000},"keyMessage":{"type":"string","maxLength":1000},"cta":{"type":"string","maxLength":200},"suggestedDay":{"type":"string","maxLength":20},"notes":{"type":"string","maxLength":1000}},"required":["slug","title","angle","keyMessage","suggestedDay"],"additionalProperties":false}}},"required":["channel","count","items"],"additionalProperties":false}},"founderTasks":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"category":{"type":"string","maxLength":50},"effort":{"type":"string","maxLength":20},"suggestedDay":{"type":"string","maxLength":20}},"required":["title","description","category","effort"],"additionalProperties":false}},"skipped":{"default":[],"maxItems":25,"type":"array","items":{"type":"object","properties":{"what":{"type":"string","maxLength":200},"why":{"type":"string","maxLength":1000}},"required":["what","why"],"additionalProperties":false}}},"required":["weekTheme","rationale","contentPlan","founderTasks","skipped"],"additionalProperties":false}},"additionalProperties":false}}}}}},"/api/v1/growth/cycles/{cycleId}/retro":{"post":{"operationId":"submitRetro","summary":"Submit an end-of-week retro.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Submit an end-of-week retro.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"name":"cycleId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"overall":{"type":"string","maxLength":3000},"items":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"result":{"type":"string","enum":["published","skipped"]},"note":{"type":"string","maxLength":500},"grade":{"type":"string","enum":["great","ok","quiet"]}},"required":["itemId","result"],"additionalProperties":false}}},"required":["overall","items"],"additionalProperties":false}}}}}},"/api/v1/growth/items/{itemId}/generate":{"post":{"operationId":"generateGrowthItem","summary":"Generate a draft for a planned item.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Generate a draft for a planned item.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"}},"parameters":[{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"feedback":{"type":"string","maxLength":1000}},"additionalProperties":false}}}}}},"/api/v1/growth/items/{itemId}":{"patch":{"operationId":"reviewGrowthItem","summary":"Review a planned item (approve/skip/publish).","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Review a planned item (approve/skip/publish).","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["approved","skipped","published","draft","planned"]},"resultNote":{"type":"string","maxLength":1000}},"required":["status"],"additionalProperties":false}}}}}},"/api/v1/growth/tasks/{taskId}":{"patch":{"operationId":"updateGrowthTask","summary":"Update a founder task's status.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Update a founder task's status.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["done","skipped","open"]}},"required":["status"],"additionalProperties":false}}}}}},"/api/v1/billing":{"get":{"operationId":"getBilling","summary":"Current plan and billing state.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Current plan and billing state.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/api/v1/billing/checkout":{"post":{"operationId":"createCheckout","summary":"Create a Stripe Checkout link for an upgrade.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Create a Stripe Checkout link for an upgrade.","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","enum":["pro","studio"]}},"required":["plan"],"additionalProperties":false}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key created in your account (Account → API keys), sent as `Authorization: Bearer wgtm_sk_…`."}},"headers":{"XRequestId":{"description":"Correlation id for this request (support/audit).","schema":{"type":"string"}},"RetryAfter":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimitLimit":{"description":"The applicable limit for the current window.","schema":{"type":"integer"}},"RateLimitRemaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer"}}},"schemas":{"Error":{"type":"object","description":"The error envelope every non-2xx response returns as JSON.","properties":{"error":{"type":"string","description":"Human-readable message."},"code":{"type":"string","description":"Machine-readable discriminator, e.g. `upgrade_required` or `step_mismatch`."},"retryable":{"type":"boolean","description":"Whether an identical retry could later succeed."}},"required":["error"]},"UpgradeError":{"type":"object","description":"A 402 plan lock. `upgrade` is machine-actionable: POST its `checkout` to get a Stripe Checkout URL.","properties":{"error":{"type":"string"},"code":{"type":"string","const":"upgrade_required"},"feature":{"type":"string","enum":["exports","growth","projects","runs"]},"upgrade":{"type":"object","properties":{"plans":{"type":"array","items":{"type":"string"}},"checkout":{"type":"object","properties":{"method":{"type":"string"},"path":{"type":"string"},"body":{"type":"object"}}},"pricingUrl":{"type":"string"},"docsUrl":{"type":"string"}}}},"required":["error","code","feature","upgrade"]}},"responses":{"BadRequest":{"description":"Invalid request body or parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The action is not permitted — e.g. signups are closed or the invite code is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PaymentRequired":{"description":"A plan lock — the body includes an `upgrade` block with a checkout pointer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeError"}}}},"NotFound":{"description":"The resource does not exist or is not yours.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"Conflicting state (an agent already running, or the requested step isn't current).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"A rate, daily-run, or hourly-write limit was hit. Retry after the window resets.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}