{"openapi":"3.1.0","info":{"title":"Design Capture","version":"0.1.0"},"paths":{"/api/v1/companies":{"get":{"tags":["companies"],"summary":"List Companies","description":"List all companies in the database.","operationId":"list_companies_api_v1_companies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CompanyResponse"},"type":"array","title":"Response List Companies Api V1 Companies Get"}}}}}},"post":{"tags":["companies"],"summary":"Create Company","description":"Create a new company record.","operationId":"create_company_api_v1_companies_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}":{"get":{"tags":["companies"],"summary":"Get Company","description":"Get a single company by ID.","operationId":"get_company_api_v1_companies__company_id__get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["companies"],"summary":"Update Company","description":"Update a company record.","operationId":"update_company_api_v1_companies__company_id__put","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["companies"],"summary":"Delete Company","description":"Delete a company and all associated design data.","operationId":"delete_company_api_v1_companies__company_id__delete","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/search/{query}":{"get":{"tags":["companies"],"summary":"Search Companies","description":"Search companies by name or domain.","operationId":"search_companies_api_v1_companies_search__query__get","parameters":[{"name":"query","in":"path","required":true,"schema":{"type":"string","title":"Query"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CompanyResponse"},"title":"Response Search Companies Api V1 Companies Search  Query  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/captures":{"get":{"tags":["captures"],"summary":"List Captures","description":"List all captures (most recent first).","operationId":"list_captures_api_v1_captures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CaptureResponse"},"type":"array","title":"Response List Captures Api V1 Captures Get"}}}}}}},"/api/v1/captures/{capture_id}":{"get":{"tags":["captures"],"summary":"Get Capture","description":"Get a single capture by ID.","operationId":"get_capture_api_v1_captures__capture_id__get","parameters":[{"name":"capture_id","in":"path","required":true,"schema":{"type":"integer","title":"Capture Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/captures/company/{company_id}":{"post":{"tags":["captures"],"summary":"Capture Company","description":"Trigger a design capture for a company.","operationId":"capture_company_api_v1_captures_company__company_id__post","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptureCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design":{"get":{"tags":["design"],"summary":"Get Design Tokens","description":"Get ALL design tokens for a company in one response.","operationId":"get_design_tokens_api_v1_companies__company_id__design_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignTokensResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/colors":{"get":{"tags":["design"],"summary":"Get Colors","operationId":"get_colors_api_v1_companies__company_id__design_colors_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ColorPaletteResponse"},"title":"Response Get Colors Api V1 Companies  Company Id  Design Colors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/typography":{"get":{"tags":["design"],"summary":"Get Typography","operationId":"get_typography_api_v1_companies__company_id__design_typography_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TypographyResponse"},"title":"Response Get Typography Api V1 Companies  Company Id  Design Typography Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/spacing":{"get":{"tags":["design"],"summary":"Get Spacing","operationId":"get_spacing_api_v1_companies__company_id__design_spacing_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SpacingResponse"},"title":"Response Get Spacing Api V1 Companies  Company Id  Design Spacing Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/borders":{"get":{"tags":["design"],"summary":"Get Borders","operationId":"get_borders_api_v1_companies__company_id__design_borders_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BorderShadowResponse"},"title":"Response Get Borders Api V1 Companies  Company Id  Design Borders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/gradients":{"get":{"tags":["design"],"summary":"Get Gradients","operationId":"get_gradients_api_v1_companies__company_id__design_gradients_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GradientResponse"},"title":"Response Get Gradients Api V1 Companies  Company Id  Design Gradients Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/assets":{"get":{"tags":["design"],"summary":"Get Assets","operationId":"get_assets_api_v1_companies__company_id__design_assets_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BrandAssetResponse"},"title":"Response Get Assets Api V1 Companies  Company Id  Design Assets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/components":{"get":{"tags":["design"],"summary":"Get Components","operationId":"get_components_api_v1_companies__company_id__design_components_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ComponentStyleResponse"},"title":"Response Get Components Api V1 Companies  Company Id  Design Components Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/breakpoints":{"get":{"tags":["design"],"summary":"Get Breakpoints","operationId":"get_breakpoints_api_v1_companies__company_id__design_breakpoints_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BreakpointResponse"},"title":"Response Get Breakpoints Api V1 Companies  Company Id  Design Breakpoints Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/css":{"get":{"tags":["design"],"summary":"Generate Css","description":"Generate CSS custom properties from the design tokens.","operationId":"generate_css_api_v1_companies__company_id__design_css_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Generate Css Api V1 Companies  Company Id  Design Css Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/design/preview":{"get":{"tags":["design"],"summary":"Design Preview","description":"Render a visual preview page of all design tokens for a company.","operationId":"design_preview_api_v1_companies__company_id__design_preview_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/companies/{company_id}/assets/{asset_id}/download":{"get":{"tags":["assets"],"summary":"Download Asset","description":"Download a brand asset (image) by ID.","operationId":"download_asset_api_v1_companies__company_id__assets__asset_id__download_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"integer","title":"Company Id"}},{"name":"asset_id","in":"path","required":true,"schema":{"type":"integer","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api":{"get":{"summary":"Api Root","description":"API root — returns available endpoints.","operationId":"api_root_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp.md":{"get":{"summary":"Mcp Docs","description":"Serve MCP.md documentation.","operationId":"mcp_docs_mcp_md_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api.md":{"get":{"summary":"Api Docs","description":"Serve API.md documentation.","operationId":"api_docs_api_md_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Serve the web UI.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","description":"Health check endpoint.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BorderShadowResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"element":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Element"},"border_radius":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border Radius"},"box_shadow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Box Shadow"},"border":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Border"}},"type":"object","required":["id","company_id"],"title":"BorderShadowResponse"},"BrandAssetResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"asset_type":{"type":"string","title":"Asset Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"local_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Local Path"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","company_id","asset_type"],"title":"BrandAssetResponse"},"BreakpointResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"media_query":{"type":"string","title":"Media Query"},"breakpoint_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Breakpoint Px"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","company_id","media_query"],"title":"BreakpointResponse"},"CaptureCreate":{"properties":{"url":{"type":"string","maxLength":1024,"minLength":1,"title":"Url"}},"type":"object","required":["url"],"title":"CaptureCreate"},"CaptureResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"url":{"type":"string","title":"Url"},"status":{"type":"string","title":"Status"},"full_css":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Css"},"html_snapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Snapshot"},"metadata_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata Json"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","company_id","url","status","created_at"],"title":"CaptureResponse"},"ColorPaletteResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"hex":{"type":"string","title":"Hex"},"rgb":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rgb"},"css_var":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Css Var"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"usage_count":{"type":"integer","title":"Usage Count"},"luminance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Luminance"}},"type":"object","required":["id","company_id","hex","usage_count"],"title":"ColorPaletteResponse"},"CompanyCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name"],"title":"CompanyCreate"},"CompanyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","created_at","updated_at"],"title":"CompanyResponse"},"CompanyUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"CompanyUpdate"},"ComponentStyleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"component_name":{"type":"string","title":"Component Name"},"css_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Css Text"},"html_example":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Example"},"screenshot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Path"}},"type":"object","required":["id","company_id","component_name"],"title":"ComponentStyleResponse"},"DesignTokensResponse":{"properties":{"company":{"$ref":"#/components/schemas/CompanyResponse"},"colors":{"items":{"$ref":"#/components/schemas/ColorPaletteResponse"},"type":"array","title":"Colors","default":[]},"typography":{"items":{"$ref":"#/components/schemas/TypographyResponse"},"type":"array","title":"Typography","default":[]},"spacing":{"items":{"$ref":"#/components/schemas/SpacingResponse"},"type":"array","title":"Spacing","default":[]},"border_shadows":{"items":{"$ref":"#/components/schemas/BorderShadowResponse"},"type":"array","title":"Border Shadows","default":[]},"gradients":{"items":{"$ref":"#/components/schemas/GradientResponse"},"type":"array","title":"Gradients","default":[]},"assets":{"items":{"$ref":"#/components/schemas/BrandAssetResponse"},"type":"array","title":"Assets","default":[]},"components":{"items":{"$ref":"#/components/schemas/ComponentStyleResponse"},"type":"array","title":"Components","default":[]},"breakpoints":{"items":{"$ref":"#/components/schemas/BreakpointResponse"},"type":"array","title":"Breakpoints","default":[]}},"type":"object","required":["company"],"title":"DesignTokensResponse","description":"Complete design token export for a company."},"GradientResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"css_value":{"type":"string","title":"Css Value"},"gradient_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gradient Type"},"angle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Angle"}},"type":"object","required":["id","company_id","css_value"],"title":"GradientResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SpacingResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"element":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Element"},"property":{"type":"string","title":"Property"},"value_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value Px"},"value_rem":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value Rem"},"css_var":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Css Var"}},"type":"object","required":["id","company_id","property"],"title":"SpacingResponse"},"TypographyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"company_id":{"type":"integer","title":"Company Id"},"font_family":{"type":"string","title":"Font Family"},"font_weight":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Weight"},"font_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Size"},"line_height":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line Height"},"letter_spacing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Spacing"},"text_transform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Transform"},"usage_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Tag"},"fallback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback"},"is_heading":{"type":"integer","title":"Is Heading"}},"type":"object","required":["id","company_id","font_family","is_heading"],"title":"TypographyResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}