{"openapi":"3.1.0","info":{"title":"StudioMotion GPT Actions","version":"1.0.0","description":"Original agency-grade React sections and complete visual themes. OAuth sign-in required. Free includes exactly one template; premium sections require Pro; complete themes cost $39 each or use one of five monthly Pro credits."},"servers":[{"url":"https://cambouch.com/api/public/actions"}],"security":[{"StudioMotionOAuth":["openid"]}],"components":{"securitySchemes":{"StudioMotionOAuth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://sbhiopjwprolqwsnqjpz.supabase.co/auth/v1/oauth/authorize","tokenUrl":"https://sbhiopjwprolqwsnqjpz.supabase.co/auth/v1/oauth/token","scopes":{"openid":"Connect your StudioMotion account"}}}}}},"paths":{"/list_styles":{"post":{"operationId":"list_styles","summary":"List styles","description":"List every StudioMotion visual style (id, label, description). Use the id as the style filter elsewhere.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/list_sections":{"post":{"operationId":"list_sections","summary":"List sections","description":"List StudioMotion agency sections (optionally filtered by style or kind), with their tier and whether your plan unlocks them. Paginated; use search_sections for free-text search.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"style":{"description":"Style id from list_styles.","type":"string","maxLength":60},"kind":{"description":"Section kind, e.g. hero, bento, interactive, typography, animation.","type":"string","maxLength":60},"limit":{"description":"Default 50.","type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/search_sections":{"post":{"operationId":"search_sections","summary":"Search sections","description":"Search the StudioMotion library by free text (e.g. 'scroll parallax hero', 'magnetic button') with optional style, kind, tier and tag filters. Ranked and paginated; use get_section with a returned id for code.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"description":"Free-text search over name, description, motion and tags.","type":"string","maxLength":200},"style":{"description":"Style id from list_styles.","type":"string","maxLength":60},"kind":{"description":"Section kind, e.g. hero, bento, interactive, typography, animation.","type":"string","maxLength":60},"tier":{"type":"string","enum":["free","pro"]},"tags":{"description":"Match any of these tags.","maxItems":10,"type":"array","items":{"type":"string","maxLength":40}},"limit":{"description":"Default 20.","type":"integer","minimum":1,"maximum":100},"offset":{"type":"integer","minimum":0,"maximum":9007199254740991}},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/get_section":{"post":{"operationId":"get_section","summary":"Get section code","description":"Get the full React + Framer Motion + Tailwind component code and motion spec for one StudioMotion section. Pro sections require an active Pro plan.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120,"description":"Section id from list_sections or search_sections."}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/get_design_tokens":{"post":{"operationId":"get_design_tokens","summary":"Get design tokens","description":"Get StudioMotion design tokens (colors, fonts, easings, durations, radii) and style descriptions.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/get_my_plan":{"post":{"operationId":"get_my_plan","summary":"Get my plan","description":"Show whether your StudioMotion account is on Free or Pro and how many sections it unlocks.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/list_themes":{"post":{"operationId":"list_themes","summary":"Browse complete themes","description":"Browse StudioMotion's 126 original industry website themes and default configurations; complete themes cost $39 each or use one of five monthly Pro theme credits.","x-openai-isConsequential":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string","maxLength":80},"query":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/compose_theme":{"post":{"operationId":"compose_theme","summary":"Compose complete theme","description":"Return complete customized React theme files with colors, fonts and 1–8 chosen section IDs; requires a purchased theme or one of five monthly Pro credits. Repeat retrievals of unlocked themes are free. Discover theme IDs with list_themes.","x-openai-isConsequential":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"theme":{"type":"string","maxLength":80},"brand":{"type":"string","minLength":1,"maxLength":60},"headline":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":300},"cta":{"type":"string","minLength":1,"maxLength":40},"email":{"anyOf":[{"type":"string","const":""},{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}]},"palette":{"type":"string","enum":["lime","coral","ice","mono"]},"font":{"type":"string","enum":["syne","manrope","mono"]},"mode":{"type":"string","enum":["dark","light"]},"motion":{"type":"boolean"},"sections":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","maxLength":120,"pattern":"^[a-z0-9-]+$"}},"colors":{"type":"object","properties":{"primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["primary","background","foreground","accent"],"additionalProperties":false}},"required":["theme","brand","headline","description","cta","email","palette","font","mode","motion"],"additionalProperties":false}}}},"responses":{"200":{"description":"Action result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"413":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"500":{"description":"Action error","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}