{"openapi":"3.1.0","info":{"title":"Flumin public API","version":"1.0.0","summary":"Public API for Flumin, the AI operating system for consultants.","description":"Public JSON API on the Flumin marketing site (signup and waitlist). Flumin is the AI operating system for consultants — Command Center and Case OS run in the product after login. Flumin does not currently expose an MCP server.\n\nAll error responses use `{ error, message, resolution }`.","contact":{"name":"Flumin","email":"hello@flumin.io","url":"https://flumin.co/developers"},"license":{"name":"Proprietary","identifier":"LicenseRef-Flumin"}},"servers":[{"url":"https://flumin.co","description":"Flumin marketing site"}],"tags":[{"name":"Signup","description":"Create a Flumin account via email magic link."},{"name":"Waitlist","description":"Join launch or marketing email lists."},{"name":"Discovery","description":"Machine-readable docs for agents."}],"paths":{"/api/get-started":{"post":{"operationId":"createFluminSignup","tags":["Signup"],"summary":"Start a Flumin account from an email address","description":"Sends a magic-link email if the address is valid. Always treat the response as non-enumerating: a 200 does not confirm the email exists. Requires reCAPTCHA v3 (`captchaToken`) and `termsAccepted: true`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetStartedRequest"}}}},"responses":{"200":{"description":"Signup accepted. Check the inbox for a magic link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetStartedResponse"}}}},"400":{"description":"Invalid payload, captcha, or terms.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}},"500":{"description":"Server or captcha configuration error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}}}}},"/api/marketing-subscribe":{"post":{"operationId":"subscribeFluminMarketing","tags":["Waitlist"],"summary":"Join the Flumin waitlist or marketing list","description":"Stores the email for launch notification and/or marketing. Requires reCAPTCHA v3. When `wantsMarketing` is true, `marketingConsent` must also be true.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingSubscribeRequest"}}}},"responses":{"200":{"description":"Subscription accepted. Confirmation email may follow.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketingSubscribeResponse"}}}},"400":{"description":"Invalid payload, consent, or captcha.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}},"405":{"description":"Method not allowed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonApiError"},"examples":{"default":{"value":{"error":"invalid_email","message":"The email address is missing or not valid.","resolution":"Send JSON with a valid `email` string (max 254 characters). See /openapi.json."}}}}}}}}},"/openapi.json":{"get":{"operationId":"getFluminOpenApi","tags":["Discovery"],"summary":"Download this OpenAPI document","description":"Returns the OpenAPI 3.1 specification for the public Flumin marketing API.","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/llms.txt":{"get":{"operationId":"getFluminLlmsTxt","tags":["Discovery"],"summary":"Agent instruction file for Flumin","description":"Plain-text index for AI agents: when to use Flumin, public URLs, and an explicit note that MCP is not available.","responses":{"200":{"description":"llms.txt body.","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"JsonApiError":{"type":"object","required":["error","message","resolution"],"additionalProperties":false,"properties":{"error":{"type":"string","description":"Stable machine-readable error code.","examples":["invalid_email","captcha_failed","not_found"]},"message":{"type":"string","description":"Human-readable explanation of what went wrong."},"resolution":{"type":"string","description":"What the client should change or try next."}}},"GetStartedRequest":{"type":"object","required":["email","captchaToken","termsAccepted"],"additionalProperties":false,"properties":{"email":{"type":"string","format":"email","description":"Account email that will receive the magic link."},"captchaToken":{"type":"string","description":"reCAPTCHA v3 token for action `get_started` (or the site's configured signup action)."},"termsAccepted":{"type":"boolean","description":"Must be true. User must have accepted /terms."}}},"GetStartedResponse":{"type":"object","required":["message"],"additionalProperties":true,"properties":{"message":{"type":"string"},"data":{"type":"object","additionalProperties":true}}},"MarketingSubscribeRequest":{"type":"object","required":["email","captchaToken"],"additionalProperties":false,"properties":{"email":{"type":"string","format":"email"},"captchaToken":{"type":"string","description":"reCAPTCHA v3 token for action `marketing_subscribe`."},"wantsMarketing":{"type":"boolean"},"wantsLaunchNotify":{"type":"boolean"},"marketingConsent":{"type":"boolean","description":"Required when wantsMarketing is true."}}},"MarketingSubscribeResponse":{"type":"object","required":["message"],"additionalProperties":true,"properties":{"message":{"type":"string"}}}}}}