{"openapi":"3.1.0","info":{"title":"Meta Council","version":"0.3.0"},"paths":{"/api/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Me","operationId":"me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/referral":{"get":{"tags":["auth"],"summary":"Get Referral Info","description":"Return the current user's referral code, link, and stats.","operationId":"get_referral_info_api_auth_referral_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/referral/check-conversions":{"post":{"tags":["auth"],"summary":"Check Referral Conversions","description":"Check if any referred users have upgraded to Pro and grant rewards.","operationId":"check_referral_conversions_api_auth_referral_check_conversions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/verify-email":{"get":{"tags":["auth"],"summary":"Verify Email","description":"Verify a user's email address via the token sent during registration.","operationId":"verify_email_api_auth_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/resend-verification":{"post":{"tags":["auth"],"summary":"Resend Verification","description":"Resend the email verification link.","operationId":"resend_verification_api_auth_resend_verification_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/forgot-password":{"post":{"tags":["auth"],"summary":"Forgot Password","description":"Generate a password reset token.\n\nAlways returns success to prevent email enumeration.\nSince email sending is not configured yet, the reset URL is returned\ndirectly in the response (same pattern as email verification).","operationId":"forgot_password_api_auth_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/reset-password":{"post":{"tags":["auth"],"summary":"Reset Password","description":"Reset a user's password using a valid reset token.","operationId":"reset_password_api_auth_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/change-password":{"put":{"tags":["auth"],"summary":"Change Password","description":"Change the current user's password.\n\nRequires the existing password for verification and enforces strength\nrequirements on the new password.","operationId":"change_password_api_auth_change_password_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/delete-account":{"delete":{"tags":["auth"],"summary":"Delete Account","description":"Soft-delete the current user's account.\n\nRequires password confirmation. Sets is_active=False rather than\nremoving the row so that foreign-key data is preserved.","operationId":"delete_account_api_auth_delete_account_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAccountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/profile":{"put":{"tags":["auth"],"summary":"Update Profile","description":"Update the current user's display name.","operationId":"update_profile_api_auth_profile_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/redeem-promo":{"post":{"tags":["auth"],"summary":"Redeem Promo","description":"Redeem a promo code for a tier upgrade.","operationId":"redeem_promo_api_auth_redeem_promo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/tier":{"get":{"tags":["auth"],"summary":"Get Tier Info","operationId":"get_tier_info_api_auth_tier_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/councils/":{"get":{"tags":["councils"],"summary":"List Councils","operationId":"list_councils_api_councils__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["councils"],"summary":"Create Council","operationId":"create_council_api_councils__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouncilCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/councils/{council_id}":{"get":{"tags":["councils"],"summary":"Get Council","operationId":"get_council_api_councils__council_id__get","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["councils"],"summary":"Update Council","operationId":"update_council_api_councils__council_id__put","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouncilUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["councils"],"summary":"Delete Council","operationId":"delete_council_api_councils__council_id__delete","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/councils/{council_id}/agents":{"post":{"tags":["councils"],"summary":"Add Agent To Council","operationId":"add_agent_to_council_api_councils__council_id__agents_post","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouncilAgentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/councils/{council_id}/agents/{agent_id}":{"delete":{"tags":["councils"],"summary":"Remove Agent From Council","operationId":"remove_agent_from_council_api_councils__council_id__agents__agent_id__delete","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/my-agents/":{"get":{"tags":["user-agents"],"summary":"List My Agents","description":"List all agents the current user has customized.","operationId":"list_my_agents_api_my_agents__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/my-agents/{template_slug}":{"post":{"tags":["user-agents"],"summary":"Customize Agent","description":"Create or update a user's customization of an agent template.","operationId":"customize_agent_api_my_agents__template_slug__post","parameters":[{"name":"template_slug","in":"path","required":true,"schema":{"type":"string","title":"Template Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCustomizeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["user-agents"],"summary":"Remove Customization","description":"Remove user's customization, reverting to template defaults.","operationId":"remove_customization_api_my_agents__template_slug__delete","parameters":[{"name":"template_slug","in":"path","required":true,"schema":{"type":"string","title":"Template Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/upload":{"post":{"tags":["council-run"],"summary":"Upload File For Query","description":"Upload a file to include as context in a council query.\n\nSupports: PDF, DOCX, XLSX, CSV, and text-based formats (.txt, .md, .json,\n.html, .xml, .log, .py, .js, .yaml, .yml, .toml, .ini, .cfg, .conf, .sql,\n.sh, .bat). Returns extracted text content (max 15,000 chars).","operationId":"upload_file_for_query_api_council_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_for_query_api_council_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/model-specs":{"get":{"tags":["council-run"],"summary":"Get Model Specs","description":"Return context window specs for all supported models.","operationId":"get_model_specs_api_council_model_specs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/council/platform-status":{"get":{"tags":["council-run"],"summary":"Platform Status","description":"Return current platform default model and fallback status.","operationId":"platform_status_api_council_platform_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/council/run":{"post":{"tags":["council-run"],"summary":"Run Council","operationId":"run_council_api_council_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web__routers__council_run__CouncilRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/recommend-panel":{"post":{"tags":["council-run"],"summary":"Recommend Panel Endpoint","description":"Recommend the best panel for a given query based on content analysis.","operationId":"recommend_panel_endpoint_api_council_recommend_panel_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web__routers__council_run__CouncilRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/sessions/{session_id}":{"get":{"tags":["council-run"],"summary":"Get Session","operationId":"get_session_api_council_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/sessions/{session_id}/adopt":{"post":{"tags":["council-run"],"summary":"Adopt Session","description":"Adopt an anonymous in-memory session into the authenticated user's history.\n\nCalled after a user signs up or logs in, if they had a session running while anonymous.","operationId":"adopt_session_api_council_sessions__session_id__adopt_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/council/usage":{"get":{"tags":["council-run"],"summary":"Get Usage","description":"Get current rate limit usage for the authenticated user.","operationId":"get_usage_api_council_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/council/sessions":{"get":{"tags":["council-run"],"summary":"List Sessions","operationId":"list_sessions_api_council_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/settings/":{"get":{"tags":["settings"],"summary":"Get Settings","description":"Get user settings. API keys are masked.","operationId":"get_settings_api_settings__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["settings"],"summary":"Update Settings","description":"Update user settings and API credentials.","operationId":"update_settings_api_settings__put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/settings/keys/{provider}":{"delete":{"tags":["settings"],"summary":"Clear Api Key","description":"Clear a stored API key for the given provider.\n\nValid providers: anthropic, openai, google, mistral, custom.","operationId":"clear_api_key_api_settings_keys__provider__delete","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/settings/usage-summary":{"get":{"tags":["settings"],"summary":"Usage Summary","description":"Return aggregate usage statistics for the current user's account.","operationId":"usage_summary_api_settings_usage_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/settings/test-key":{"post":{"tags":["settings"],"summary":"Test Api Key","description":"Make a minimal API call to verify the given key works for a provider.","operationId":"test_api_key_api_settings_test_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/my-strategies/":{"get":{"tags":["synthesis-strategies"],"summary":"List Strategies","operationId":"list_strategies_api_my_strategies__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["synthesis-strategies"],"summary":"Create Strategy","operationId":"create_strategy_api_my_strategies__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrategyCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/my-strategies/{strategy_id}":{"get":{"tags":["synthesis-strategies"],"summary":"Get Strategy","operationId":"get_strategy_api_my_strategies__strategy_id__get","parameters":[{"name":"strategy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Strategy Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["synthesis-strategies"],"summary":"Update Strategy","operationId":"update_strategy_api_my_strategies__strategy_id__put","parameters":[{"name":"strategy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Strategy Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrategyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["synthesis-strategies"],"summary":"Delete Strategy","operationId":"delete_strategy_api_my_strategies__strategy_id__delete","parameters":[{"name":"strategy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Strategy Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents":{"get":{"tags":["marketplace"],"summary":"Browse Agents","description":"Browse public marketplace agents.","operationId":"browse_agents_api_marketplace_agents_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"","title":"Category"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"popular","title":"Sort"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/councils":{"get":{"tags":["marketplace"],"summary":"Browse Councils","description":"Browse public marketplace councils.","operationId":"browse_councils_api_marketplace_councils_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"popular","title":"Sort"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents/{agent_id}":{"get":{"tags":["marketplace"],"summary":"Get Marketplace Agent","description":"Get a single marketplace agent listing.","operationId":"get_marketplace_agent_api_marketplace_agents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents/{agent_id}/list":{"post":{"tags":["marketplace"],"summary":"List Agent","description":"List one of your agents on the marketplace.","operationId":"list_agent_api_marketplace_agents__agent_id__list_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents/{agent_id}/delist":{"post":{"tags":["marketplace"],"summary":"Delist Agent","description":"Remove your agent from the marketplace.","operationId":"delist_agent_api_marketplace_agents__agent_id__delist_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents/{agent_id}/acquire":{"post":{"tags":["marketplace"],"summary":"Acquire Agent","description":"Acquire a marketplace agent (fork it into your collection).","operationId":"acquire_agent_api_marketplace_agents__agent_id__acquire_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/councils/{council_id}":{"get":{"tags":["marketplace"],"summary":"Get Marketplace Council","description":"Get a single marketplace council listing.","operationId":"get_marketplace_council_api_marketplace_councils__council_id__get","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/councils/{council_id}/acquire":{"post":{"tags":["marketplace"],"summary":"Acquire Council","description":"Acquire a marketplace council (fork it into your collection).","operationId":"acquire_council_api_marketplace_councils__council_id__acquire_post","parameters":[{"name":"council_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Council Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/agents/{agent_id}/review":{"post":{"tags":["marketplace"],"summary":"Review Agent","description":"Leave a review on a marketplace agent.","operationId":"review_agent_api_marketplace_agents__agent_id__review_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/categories":{"get":{"tags":["marketplace"],"summary":"List Categories","operationId":"list_categories_api_marketplace_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/create-checkout":{"post":{"tags":["billing"],"summary":"Create Checkout Session","description":"Create a Stripe Checkout session for Pro subscription.","operationId":"create_checkout_session_api_billing_create_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/create-portal":{"post":{"tags":["billing"],"summary":"Create Portal Session","description":"Create a Stripe Customer Portal session for managing subscription.","operationId":"create_portal_session_api_billing_create_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/webhook":{"post":{"tags":["billing"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events for subscription lifecycle.","operationId":"stripe_webhook_api_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/status":{"get":{"tags":["billing"],"summary":"Billing Status","description":"Get the user's billing/subscription status.","operationId":"billing_status_api_billing_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/config-status":{"get":{"tags":["billing"],"summary":"Billing Config Status","description":"Public endpoint: check if Stripe billing is configured.\n\nFrontend uses this to decide whether to show 'Upgrade' buttons or\n'Contact sales' messaging.","operationId":"billing_config_status_api_billing_config_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/keys":{"get":{"tags":["developer-api"],"summary":"List Api Keys","description":"List the user's API keys (prefix only, never the full key).","operationId":"list_api_keys_api_v1_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiKeyInfo"},"type":"array","title":"Response List Api Keys Api V1 Keys Get"}}}}}},"post":{"tags":["developer-api"],"summary":"Create Api Key","description":"Generate a new API key. The raw key is returned once and never again.","operationId":"create_api_key_api_v1_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/{key_id}":{"delete":{"tags":["developer-api"],"summary":"Revoke Api Key","description":"Revoke an API key (soft delete).","operationId":"revoke_api_key_api_v1_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/query":{"post":{"tags":["developer-api"],"summary":"Submit Query Sync","description":"Submit a query synchronously. Returns the full synthesis result.\n\nFor long-running queries, prefer /query/async instead.\nThis endpoint currently returns a placeholder since the full council\npipeline integration depends on the council_run infrastructure.","operationId":"submit_query_sync_api_v1_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/query/async":{"post":{"tags":["developer-api"],"summary":"Submit Query Async","description":"Submit a query asynchronously. Returns a job_id to poll for results.","operationId":"submit_query_async_api_v1_query_async_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/query/{job_id}":{"get":{"tags":["developer-api"],"summary":"Get Query Result","description":"Check the status / get results of an async query.","operationId":"get_query_result_api_v1_query__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents":{"get":{"tags":["developer-api"],"summary":"List Agents Api","description":"List all available agents (built-in + public marketplace).","operationId":"list_agents_api_api_v1_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/panels":{"get":{"tags":["developer-api"],"summary":"List Panels Api","description":"List all available panels.","operationId":"list_panels_api_api_v1_panels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/councils/run":{"post":{"tags":["developer-api"],"summary":"Run Council Api","description":"Run a council query asynchronously via API key.\n\nLaunches the full council pipeline (same as the web UI) and returns\na session_id that you can poll via GET /api/v1/councils/sessions/{id}.\n\n**Authentication**: ``Authorization: Bearer mc_...`` or ``X-API-Key: mc_...``\n\n**Request body**:\n- ``query`` (required): The question to deliberate on.\n- ``panel`` (optional, default ``\"default\"``): Panel slug to use.\n- ``model`` (optional): Override the model for all agents this run.\n\n**Response**: ``{\"session_id\": \"abc123\", \"status\": \"running\"}``","operationId":"run_council_api_api_v1_councils_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/web__routers__developer_api__CouncilRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouncilRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/councils/sessions/{session_id}":{"get":{"tags":["developer-api"],"summary":"Get Council Session","description":"Poll for council session results.\n\nReturns the current status and, when complete, the full synthesis\nand individual agent results.\n\n**Authentication**: ``Authorization: Bearer mc_...`` or ``X-API-Key: mc_...``\n\n**Response fields**:\n- ``status``: One of ``\"running\"``, ``\"synthesizing\"``, ``\"completed\"``, ``\"failed\"``\n- ``synthesis``: The synthesis result object (present when completed)\n- ``agents``: Individual agent results (present when completed)","operationId":"get_council_session_api_v1_councils_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/settings":{"get":{"tags":["developer-api"],"summary":"Get Settings Api","description":"Get current user settings including model preference and tool API keys.\n\nThe available_tools list is dynamically generated from the tool registry.","operationId":"get_settings_api_api_v1_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["developer-api"],"summary":"Update Settings Api","description":"Update user settings: model preference, provider API keys, and/or tool API keys.","operationId":"update_settings_api_api_v1_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{slug}":{"get":{"tags":["developer-api"],"summary":"Get Agent Detail","description":"Get detailed info about a specific agent including its tools and configuration.","operationId":"get_agent_detail_api_v1_agents__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/outreach/campaigns":{"get":{"tags":["developer-api"],"summary":"List Campaigns Api","description":"List outreach campaigns owned by API key holder.","operationId":"list_campaigns_api_api_v1_outreach_campaigns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/outreach/leads":{"get":{"tags":["developer-api"],"summary":"List Leads Api","description":"List outreach leads owned by API key holder.","operationId":"list_leads_api_api_v1_outreach_leads_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/outreach/leads/{lead_id}/email":{"put":{"tags":["developer-api"],"summary":"Edit Lead Email Api","description":"Edit a lead's email subject/body via API key. Must own the lead.","operationId":"edit_lead_email_api_api_v1_outreach_leads__lead_id__email_put","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/outreach/analytics":{"get":{"tags":["developer-api"],"summary":"Outreach Analytics Api","description":"Outreach analytics scoped to API key holder's leads.","operationId":"outreach_analytics_api_api_v1_outreach_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/outreach/email-received":{"post":{"tags":["developer-api"],"summary":"Outreach Email Received","description":"Called by Cloudflare Email Worker when a reply is received.\n\nMatches the sender email to an outreach lead and updates its status.","operationId":"outreach_email_received_api_v1_outreach_email_received_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics/pageview":{"post":{"tags":["analytics"],"summary":"Record Pageview","description":"Record a pageview. IP is hashed for privacy.","operationId":"record_pageview_api_analytics_pageview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageViewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/summary":{"get":{"tags":["analytics"],"summary":"Analytics Summary","description":"Admin summary: total views, unique visitors, top pages, views per day (last 7 days).","operationId":"analytics_summary_api_analytics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics/dashboard":{"get":{"tags":["analytics"],"summary":"Analytics Dashboard","description":"Admin dashboard: aggregate usage stats for the site operator.","operationId":"analytics_dashboard_api_analytics_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workflows/templates":{"get":{"tags":["workflows"],"summary":"List Workflows","description":"List all available workflow templates.","operationId":"list_workflows_api_workflows_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowListItem"},"type":"array","title":"Response List Workflows Api Workflows Templates Get"}}}}}},"post":{"tags":["workflows"],"summary":"Create Workflow Template","description":"Save a new custom workflow template as a YAML file.","operationId":"create_workflow_template_api_workflows_templates_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateSaveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Workflow Template Api Workflows Templates Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/parse-goal":{"post":{"tags":["workflows"],"summary":"Parse Goal","description":"Parse a natural language goal into a structured workflow plan with read-back.","operationId":"parse_goal_api_workflows_parse_goal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoalParseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoalParseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/templates/{name}":{"get":{"tags":["workflows"],"summary":"Get Workflow Template","description":"Get details about a specific workflow template.","operationId":"get_workflow_template_api_workflows_templates__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Workflow Template Api Workflows Templates  Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/templates/{slug}":{"put":{"tags":["workflows"],"summary":"Update Workflow Template","description":"Update an existing custom workflow template.","operationId":"update_workflow_template_api_workflows_templates__slug__put","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateSaveRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Workflow Template Api Workflows Templates  Slug  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["workflows"],"summary":"Delete Workflow Template","description":"Delete a workflow template. Only custom templates may be deleted.","operationId":"delete_workflow_template_api_workflows_templates__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Delete Workflow Template Api Workflows Templates  Slug  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/start":{"post":{"tags":["workflows"],"summary":"Start Workflow","description":"Start a new workflow.\n\nCreates the session, launches a background task to execute steps\nsequentially, and returns immediately with ``status: \"running\"``.\nThe client should poll ``GET /sessions/{session_id}`` for progress.","operationId":"start_workflow_api_workflows_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowStartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Start Workflow Api Workflows Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/sessions":{"get":{"tags":["workflows"],"summary":"List Workflow Sessions","description":"List all active workflow sessions (most recent first).","operationId":"list_workflow_sessions_api_workflows_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Workflow Sessions Api Workflows Sessions Get"}}}}}}},"/api/workflows/sessions/{session_id}":{"get":{"tags":["workflows"],"summary":"Get Workflow Session","description":"Get the current state of a workflow session.","operationId":"get_workflow_session_api_workflows_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Workflow Session Api Workflows Sessions  Session Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/sessions/{session_id}/advance":{"post":{"tags":["workflows"],"summary":"Advance Workflow","description":"Advance a workflow past a checkpoint.\n\nActions:\n- \"approve\": Accept the current step output and run the next step.\n- \"reject\": Discard the current step output and re-run it.\n\nSets the checkpoint decision on the session dict so the background\nexecution task picks it up.  Waits briefly (up to 3s) for the\nbackground task to acknowledge and change status before returning.","operationId":"advance_workflow_api_workflows_sessions__session_id__advance_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Advance Workflow Api Workflows Sessions  Session Id  Advance Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/upload":{"post":{"tags":["workflows"],"summary":"Upload Workflow Files","description":"Upload files for use in a workflow. Returns extracted text content.\n\nSupports: .txt, .csv, .json, .md, .log, .xml, .html\nEach file capped at 50KB of text output.","operationId":"upload_workflow_files_api_workflows_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_workflow_files_api_workflows_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/schedules":{"get":{"tags":["workflows"],"summary":"List Schedules","description":"List all schedules for the authenticated user.","operationId":"list_schedules_api_workflows_schedules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["workflows"],"summary":"Create Schedule","description":"Create a recurring workflow schedule. Pro/Enterprise only.","operationId":"create_schedule_api_workflows_schedules_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/schedules/{schedule_id}":{"put":{"tags":["workflows"],"summary":"Update Schedule","description":"Update an existing workflow schedule. Only the owner can update.","operationId":"update_schedule_api_workflows_schedules__schedule_id__put","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["workflows"],"summary":"Delete Schedule","description":"Delete a workflow schedule. Only the owner can delete.","operationId":"delete_schedule_api_workflows_schedules__schedule_id__delete","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/templates/{slug}/publish":{"post":{"tags":["workflows"],"summary":"Publish Workflow","description":"Publish a custom workflow to the public template gallery.\n\nOnly the creator can publish. Makes the workflow visible to all users\nin the template browser. Pro/Enterprise only.","operationId":"publish_workflow_api_workflows_templates__slug__publish_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/templates/{slug}/unpublish":{"post":{"tags":["workflows"],"summary":"Unpublish Workflow","description":"Remove a workflow from the public gallery.","operationId":"unpublish_workflow_api_workflows_templates__slug__unpublish_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/marketplace":{"get":{"tags":["workflows"],"summary":"List Marketplace Workflows","description":"List all published workflows available in the marketplace.","operationId":"list_marketplace_workflows_api_workflows_marketplace_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/integrations/google/connect":{"get":{"tags":["integrations"],"summary":"Google Connect","description":"Redirect user to Google OAuth consent screen.","operationId":"google_connect_api_integrations_google_connect_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/integrations/google/callback":{"get":{"tags":["integrations"],"summary":"Google Callback","description":"Handle Google OAuth callback — exchange code for tokens.","operationId":"google_callback_api_integrations_google_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/integrations/google/status":{"get":{"tags":["integrations"],"summary":"Google Status","description":"Check if Google is connected.","operationId":"google_status_api_integrations_google_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/integrations/google/disconnect":{"post":{"tags":["integrations"],"summary":"Google Disconnect","description":"Disconnect Google integration.","operationId":"google_disconnect_api_integrations_google_disconnect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/teams/":{"get":{"tags":["teams"],"summary":"List My Teams","description":"List teams the current user belongs to.","operationId":"list_my_teams_api_teams__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["teams"],"summary":"Create Team","description":"Create a new team. The creator becomes the owner.","operationId":"create_team_api_teams__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/teams/{team_slug}/members":{"get":{"tags":["teams"],"summary":"List Team Members","description":"List members of a team. Must be a member to view.","operationId":"list_team_members_api_teams__team_slug__members_get","parameters":[{"name":"team_slug","in":"path","required":true,"schema":{"type":"string","title":"Team Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/teams/{team_slug}/invite":{"post":{"tags":["teams"],"summary":"Invite To Team","description":"Invite a user to a team by email. Must be owner or admin.","operationId":"invite_to_team_api_teams__team_slug__invite_post","parameters":[{"name":"team_slug","in":"path","required":true,"schema":{"type":"string","title":"Team Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamInviteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/teams/{team_slug}/members/{user_id}":{"delete":{"tags":["teams"],"summary":"Remove From Team","description":"Remove a member from a team. Owners can remove anyone, members can leave.","operationId":"remove_from_team_api_teams__team_slug__members__user_id__delete","parameters":[{"name":"team_slug","in":"path","required":true,"schema":{"type":"string","title":"Team Slug"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/leads":{"get":{"tags":["outreach"],"summary":"List Leads","description":"List outreach leads with filtering, scoped to current user.","operationId":"list_leads_api_outreach_leads_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"}},{"name":"campaign_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},{"name":"unassigned","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Unassigned"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["outreach"],"summary":"Create Lead","description":"Create a single outreach lead owned by the current user.","operationId":"create_lead_api_outreach_leads_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/leads/import":{"post":{"tags":["outreach"],"summary":"Import Leads Csv","description":"Import leads from a CSV file, owned by the current user.","operationId":"import_leads_csv_api_outreach_leads_import_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_leads_csv_api_outreach_leads_import_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/leads/{lead_id}":{"put":{"tags":["outreach"],"summary":"Update Lead","description":"Update a lead's status, response, pitch, etc. Must be owned by user.","operationId":"update_lead_api_outreach_leads__lead_id__put","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["outreach"],"summary":"Delete Lead","description":"Delete a lead. Must be owned by user.","operationId":"delete_lead_api_outreach_leads__lead_id__delete","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/analytics":{"get":{"tags":["outreach"],"summary":"Outreach Analytics","description":"Get outreach analytics scoped to current user's leads.","operationId":"outreach_analytics_api_outreach_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/pitches":{"get":{"tags":["outreach"],"summary":"List Pitches","description":"List all available pitch variants for A/B testing.","operationId":"list_pitches_api_outreach_pitches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/campaigns":{"get":{"tags":["outreach"],"summary":"List Campaigns","description":"List campaigns owned by the current user.","operationId":"list_campaigns_api_outreach_campaigns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["outreach"],"summary":"Create Campaign","description":"Create an outreach campaign owned by the current user.","operationId":"create_campaign_api_outreach_campaigns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/campaigns/{campaign_id}":{"put":{"tags":["outreach"],"summary":"Update Campaign","description":"Update a campaign. Must be owned by user.","operationId":"update_campaign_api_outreach_campaigns__campaign_id__put","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["outreach"],"summary":"Delete Campaign","description":"Delete a campaign owned by user (unassigns leads, doesn't delete them).","operationId":"delete_campaign_api_outreach_campaigns__campaign_id__delete","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/campaigns/{campaign_id}/assign":{"post":{"tags":["outreach"],"summary":"Assign Leads To Campaign","description":"Assign user's unassigned leads to a campaign.","operationId":"assign_leads_to_campaign_api_outreach_campaigns__campaign_id__assign_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"}},{"name":"pitch_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pitch Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/campaigns/{campaign_id}/assign-ids":{"post":{"tags":["outreach"],"summary":"Assign Lead Ids To Campaign","description":"Assign specific leads by ID to a campaign. Must own both.","operationId":"assign_lead_ids_to_campaign_api_outreach_campaigns__campaign_id__assign_ids_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignLeadIdsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/leads/facets":{"get":{"tags":["outreach"],"summary":"Get Lead Facets","description":"Return filter options scoped to user's leads.","operationId":"get_lead_facets_api_outreach_leads_facets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/campaigns/{campaign_id}/stats":{"get":{"tags":["outreach"],"summary":"Campaign Stats","description":"Get pipeline stats for a campaign owned by user.","operationId":"campaign_stats_api_outreach_campaigns__campaign_id__stats_get","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/outreach/leads/{lead_id}/email":{"put":{"tags":["outreach"],"summary":"Edit Lead Email","description":"Edit a lead's email subject and/or body. Must be owned by user.","operationId":"edit_lead_email_api_outreach_leads__lead_id__email_put","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"string","title":"Lead Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp":{"post":{"tags":["mcp"],"summary":"Mcp Endpoint","description":"MCP HTTP Streamable transport endpoint.\n\nHandles all MCP JSON-RPC 2.0 messages:\n- initialize\n- tools/list\n- tools/call\n\nAuthentication via ``Authorization: Bearer mc_...`` or ``X-API-Key: mc_...``\nRead-only tools (list_panels, list_agents) work without authentication.","operationId":"mcp_endpoint_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"XML sitemap for search engine indexing.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"Markdown summary of Meta Council for AI models (llms.txt convention).","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/auth":{"post":{"summary":"Admin Auth","description":"Verify admin password. Password stored in ADMIN_PASSWORD env var, never in client code.","operationId":"admin_auth_api_admin_auth_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health":{"get":{"summary":"Health Check","description":"Health check endpoint for monitoring. No auth required.","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/panels/{slug}":{"get":{"summary":"Seo Panel Page","description":"Server-rendered SEO landing page for a panel.","operationId":"seo_panel_page_panels__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflows/{slug}":{"get":{"summary":"Seo Workflow Page","description":"Server-rendered SEO landing page for a workflow.","operationId":"seo_workflow_page_workflows__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/faq":{"get":{"summary":"Faq Page","description":"FAQ page with JSON-LD FAQPage schema markup for Google rich results.","operationId":"faq_page_faq_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog/share":{"get":{"summary":"Blog Share Dashboard","description":"Dashboard with one-click social share links for all blog posts.","operationId":"blog_share_dashboard_blog_share_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog":{"get":{"summary":"Blog Index","description":"Blog index page listing all posts.","operationId":"blog_index_blog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog/rss.xml":{"get":{"summary":"Blog Rss","description":"RSS feed for the blog.","operationId":"blog_rss_blog_rss_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog/{slug}":{"get":{"summary":"Blog Post","description":"Render a single blog post.","operationId":"blog_post_blog__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/s/{session_id}":{"get":{"summary":"Session Permalink","description":"Clean permalink: /s/abc123 serves the same page as /?session=abc123.","operationId":"session_permalink_s__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/agents":{"get":{"summary":"List Agents","description":"List all agents with their frontmatter metadata (template library).\n\nSorted by generalizability: most broadly useful agents first.","operationId":"list_agents_api_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Agent","description":"Create a new agent template (file-based, admin only).","operationId":"create_agent_api_agents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/{slug}":{"get":{"summary":"Get Agent","description":"Get agent details. System prompts are hidden for built-in templates.","operationId":"get_agent_api_agents__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update Agent","description":"Update an agent's profile and/or template (file-based, admin only).","operationId":"update_agent_api_agents__slug__put","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfileUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Agent","description":"Delete an agent template (file-based, admin only).","operationId":"delete_agent_api_agents__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/{slug}/profile-image":{"post":{"summary":"Upload Profile Image","description":"Upload a profile image for an agent.","operationId":"upload_profile_image_api_agents__slug__profile_image_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_profile_image_api_agents__slug__profile_image_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/panels":{"get":{"summary":"List Panels Api","operationId":"list_panels_api_api_panels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Panel","operationId":"create_panel_api_panels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PanelCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/panels/{slug}":{"get":{"summary":"Get Panel","operationId":"get_panel_api_panels__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update Panel","operationId":"update_panel_api_panels__slug__put","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Panel","operationId":"delete_panel_api_panels__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/synthesis-strategy":{"get":{"summary":"Get Synthesis Strategy","operationId":"get_synthesis_strategy_api_synthesis_strategy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Update Synthesis Strategy","description":"Update the default synthesis strategy (file-based, admin only).\nUser-specific strategies are stored via /api/my-synthesis-strategy.","operationId":"update_synthesis_strategy_api_synthesis_strategy_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SynthesisStrategyUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/feedback":{"post":{"summary":"Submit Feedback","description":"Submit thumbs up/down feedback on an agent response or synthesis.","operationId":"submit_feedback_api_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/history":{"get":{"summary":"Get History","description":"Get history — logged-in users see only their own sessions.","operationId":"get_history_api_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Clear All History","description":"Soft-delete all history for the current user. Rows are kept for analytics.","operationId":"clear_all_history_api_history_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/history/{session_id}":{"get":{"summary":"Get History Item","description":"Get a specific session — respects privacy.","operationId":"get_history_item_api_history__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete History Item","description":"Soft-delete a single history item. Row is kept for analytics.","operationId":"delete_history_item_api_history__session_id__delete","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/history/{session_id}/print":{"get":{"summary":"Get History Print","description":"Return a standalone, print-friendly HTML page for a council session.","operationId":"get_history_print_api_history__session_id__print_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/history/{session_id}/slides":{"get":{"summary":"Get History Slides","description":"Return a self-contained slide deck HTML page for a council session.","operationId":"get_history_slides_api_history__session_id__slides_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/history/{session_id}/privacy":{"put":{"summary":"Toggle Session Privacy","description":"Toggle session privacy. Pro users can make sessions private.","operationId":"toggle_session_privacy_api_history__session_id__privacy_put","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyToggle"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/saved-queries":{"get":{"summary":"List Saved Queries","description":"Return the current user's saved query templates.","operationId":"list_saved_queries_api_saved_queries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Saved Query","description":"Save a new query template for re-use.","operationId":"create_saved_query_api_saved_queries_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQueryCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/saved-queries/{query_id}":{"delete":{"summary":"Delete Saved Query","description":"Delete a saved query template.","operationId":"delete_saved_query_api_saved_queries__query_id__delete","parameters":[{"name":"query_id","in":"path","required":true,"schema":{"type":"string","title":"Query Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/gallery":{"get":{"summary":"Get Public Gallery","description":"Get recent public completed sessions for the gallery page.","operationId":"get_public_gallery_api_gallery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/internal/dashboard":{"get":{"summary":"Internal Dashboard","description":"Secret dashboard showing all user queries. Password protected via header.","operationId":"internal_dashboard_api_internal_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/newsletter/subscribe":{"post":{"summary":"Newsletter Subscribe","operationId":"newsletter_subscribe_api_newsletter_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterSubscribeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/newsletter/unsubscribe":{"get":{"summary":"Newsletter Unsubscribe","description":"One-click unsubscribe (GET for email client compatibility).","operationId":"newsletter_unsubscribe_api_newsletter_unsubscribe_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/newsletter/broadcast":{"post":{"summary":"Newsletter Broadcast","description":"Send a newsletter email to all active subscribers. Admin-only.","operationId":"newsletter_broadcast_api_newsletter_broadcast_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterBroadcastRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/waitlist":{"post":{"summary":"Join Waitlist","description":"Join the mobile app waitlist.","operationId":"join_waitlist_api_waitlist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/waitlist/count":{"get":{"summary":"Waitlist Count","operationId":"waitlist_count_api_waitlist_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/knowledge-base/upload":{"post":{"summary":"Upload Document","description":"Upload a document to the knowledge base for semantic search by agents.\n\nPro/Enterprise only. Documents are chunked, embedded, and stored in Qdrant.\nAgents can then search them via the knowledge_base_search tool.","operationId":"upload_document_api_knowledge_base_upload_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pricing":{"get":{"summary":"Get Pricing","description":"Return current pricing for all supported models.","operationId":"get_pricing_api_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/models":{"get":{"summary":"List Models","operationId":"list_models_api_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tiers":{"get":{"summary":"List Tiers","description":"Public tier comparison for pricing page.","operationId":"list_tiers_api_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AgentCreateRequest":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"description":{"type":"string","title":"Description"},"default_model":{"type":"string","title":"Default Model","default":"claude-sonnet-4-6"},"default_weight":{"type":"number","title":"Default Weight","default":1.0},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"domain":{"type":"string","title":"Domain","default":""},"template_body":{"type":"string","title":"Template Body","default":""}},"type":"object","required":["slug","name","role","description"],"title":"AgentCreateRequest"},"AgentCustomizeRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"template_body_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Body Override"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","title":"AgentCustomizeRequest"},"AgentOverride":{"properties":{"template":{"type":"string","title":"Template"},"weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight"}},"type":"object","required":["template"],"title":"AgentOverride"},"AgentProfileUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"default_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Model"},"default_weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Default Weight"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"template_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Body"}},"type":"object","title":"AgentProfileUpdate"},"ApiKeyInfo":{"properties":{"id":{"type":"string","title":"Id"},"prefix":{"type":"string","title":"Prefix"},"name":{"type":"string","title":"Name"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"total_queries":{"type":"integer","title":"Total Queries"},"total_tokens":{"type":"integer","title":"Total Tokens"}},"type":"object","required":["id","prefix","name","is_active","total_queries","total_tokens"],"title":"ApiKeyInfo"},"AssignLeadIdsRequest":{"properties":{"lead_ids":{"items":{"type":"string"},"type":"array","title":"Lead Ids"}},"type":"object","required":["lead_ids"],"title":"AssignLeadIdsRequest"},"Body_import_leads_csv_api_outreach_leads_import_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_import_leads_csv_api_outreach_leads_import_post"},"Body_upload_file_for_query_api_council_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_file_for_query_api_council_upload_post"},"Body_upload_profile_image_api_agents__slug__profile_image_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_profile_image_api_agents__slug__profile_image_post"},"Body_upload_workflow_files_api_workflows_upload_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_upload_workflow_files_api_workflows_upload_post"},"CampaignCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"target_segment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Segment"},"target_audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audience"}},"type":"object","required":["name"],"title":"CampaignCreateRequest"},"CampaignUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"target_segment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Segment"},"target_audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Audience"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"CampaignUpdateRequest"},"ChangePasswordRequest":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"ChangePasswordRequest"},"CouncilAgentInput":{"properties":{"template_slug":{"type":"string","title":"Template Slug"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"weight":{"type":"number","title":"Weight","default":1.0},"required":{"type":"boolean","title":"Required","default":false},"sort_order":{"type":"integer","title":"Sort Order","default":0}},"type":"object","required":["template_slug"],"title":"CouncilAgentInput"},"CouncilCreateRequest":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"weighting_mode":{"type":"string","title":"Weighting Mode","default":"weighted"},"shared_context":{"type":"string","title":"Shared Context","default":""},"synthesis_model":{"type":"string","title":"Synthesis Model","default":"claude-opus-4-6"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"agents":{"items":{"$ref":"#/components/schemas/CouncilAgentInput"},"type":"array","title":"Agents","default":[]}},"type":"object","required":["slug","name"],"title":"CouncilCreateRequest"},"CouncilRunResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["session_id","status"],"title":"CouncilRunResponse"},"CouncilUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"weighting_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Weighting Mode"},"shared_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shared Context"},"synthesis_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Synthesis Model"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","title":"CouncilUpdateRequest"},"CreateApiKeyRequest":{"properties":{"name":{"type":"string","title":"Name","default":"Default"}},"type":"object","title":"CreateApiKeyRequest"},"CreateApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"key":{"type":"string","title":"Key"},"prefix":{"type":"string","title":"Prefix"},"name":{"type":"string","title":"Name"},"message":{"type":"string","title":"Message"}},"type":"object","required":["id","key","prefix","name","message"],"title":"CreateApiKeyResponse"},"DeleteAccountRequest":{"properties":{"password":{"type":"string","title":"Password"}},"type":"object","required":["password"],"title":"DeleteAccountRequest"},"DocumentUploadRequest":{"properties":{"title":{"type":"string","title":"Title"},"content":{"type":"string","title":"Content"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags","default":[]}},"type":"object","required":["title","content"],"title":"DocumentUploadRequest"},"EmailEditRequest":{"properties":{"subject_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Line"},"email_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Body"}},"type":"object","title":"EmailEditRequest"},"FeedbackRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"target_type":{"type":"string","title":"Target Type"},"target_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Name"},"rating":{"type":"integer","title":"Rating"}},"type":"object","required":["session_id","target_type","rating"],"title":"FeedbackRequest"},"ForgotPasswordRequest":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordRequest"},"GoalExampleItem":{"properties":{"query":{"type":"string","title":"Query"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["query"],"title":"GoalExampleItem"},"GoalParseRequest":{"properties":{"goal":{"type":"string","title":"Goal"}},"type":"object","required":["goal"],"title":"GoalParseRequest"},"GoalParseResponse":{"properties":{"workflow_slug":{"type":"string","title":"Workflow Slug"},"workflow_name":{"type":"string","title":"Workflow Name"},"query":{"type":"string","title":"Query"},"schedule":{"anyOf":[{"$ref":"#/components/schemas/GoalSchedule"},{"type":"null"}]},"readback":{"type":"string","title":"Readback"},"confidence":{"type":"number","title":"Confidence"},"examples":{"items":{"$ref":"#/components/schemas/GoalExampleItem"},"type":"array","title":"Examples","default":[]},"validation":{"anyOf":[{"$ref":"#/components/schemas/GoalValidation"},{"type":"null"}]}},"type":"object","required":["workflow_slug","workflow_name","query","readback","confidence"],"title":"GoalParseResponse"},"GoalSchedule":{"properties":{"frequency":{"type":"string","title":"Frequency","default":"weekly"},"day_of_week":{"type":"integer","title":"Day Of Week","default":1},"hour":{"type":"integer","title":"Hour","default":9},"timezone":{"type":"string","title":"Timezone","default":"America/Los_Angeles"}},"type":"object","title":"GoalSchedule"},"GoalValidation":{"properties":{"ready":{"type":"boolean","title":"Ready"},"missing":{"items":{"$ref":"#/components/schemas/ValidationMissing"},"type":"array","title":"Missing","default":[]}},"type":"object","required":["ready"],"title":"GoalValidation"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LeadCreateRequest":{"properties":{"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"contact_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Title"},"email":{"type":"string","title":"Email"},"inbox_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbox Type"},"segment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["email"],"title":"LeadCreateRequest"},"LeadUpdateRequest":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"response_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Type"},"response_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Text"},"pitch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pitch Id"},"subject_line":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Line"},"email_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Body"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"sent_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sent At"},"responded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Responded At"}},"type":"object","title":"LeadUpdateRequest"},"ListAgentRequest":{"properties":{"price_cents":{"type":"integer","title":"Price Cents","default":0},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","title":"ListAgentRequest"},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"NewsletterBroadcastRequest":{"properties":{"blog_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blog Slug"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"html_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Body"},"text_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Body"},"admin_password":{"type":"string","title":"Admin Password","default":""}},"type":"object","title":"NewsletterBroadcastRequest"},"NewsletterSubscribeRequest":{"properties":{"email":{"type":"string","title":"Email"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","default":"blog"}},"type":"object","required":["email"],"title":"NewsletterSubscribeRequest"},"PageViewRequest":{"properties":{"path":{"type":"string","title":"Path"},"referrer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referrer"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}},"type":"object","required":["path"],"title":"PageViewRequest"},"PanelCreateRequest":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"weighting_mode":{"type":"string","title":"Weighting Mode","default":"weighted"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"shared_context":{"type":"string","title":"Shared Context","default":""},"synthesis_model":{"type":"string","title":"Synthesis Model","default":"claude-opus-4-6"},"agents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Agents","default":[]}},"type":"object","required":["slug","name","description"],"title":"PanelCreateRequest"},"PrivacyToggle":{"properties":{"is_private":{"type":"boolean","title":"Is Private"}},"type":"object","required":["is_private"],"title":"PrivacyToggle"},"PromoRequest":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"PromoRequest"},"QueryRequest":{"properties":{"query":{"type":"string","title":"Query"},"panel":{"type":"string","title":"Panel","default":"default"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["query"],"title":"QueryRequest"},"RegisterRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","default":""},"referral_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Code"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"ResetPasswordRequest":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["token","new_password"],"title":"ResetPasswordRequest"},"ReviewRequest":{"properties":{"rating":{"type":"integer","title":"Rating"},"comment":{"type":"string","title":"Comment","default":""}},"type":"object","required":["rating"],"title":"ReviewRequest"},"SavedQueryCreate":{"properties":{"title":{"type":"string","title":"Title"},"query":{"type":"string","title":"Query"},"panel_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Panel Slug"}},"type":"object","required":["title","query"],"title":"SavedQueryCreate"},"ScheduleCreateRequest":{"properties":{"workflow_slug":{"type":"string","title":"Workflow Slug"},"query":{"type":"string","title":"Query"},"frequency":{"type":"string","title":"Frequency","default":"weekly"},"day_of_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Day Of Week","default":1},"hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hour","default":9},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","default":"America/Los_Angeles"}},"type":"object","required":["workflow_slug","query"],"title":"ScheduleCreateRequest"},"ScheduleUpdateRequest":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"day_of_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Day Of Week"},"hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hour"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"ScheduleUpdateRequest"},"SettingsUpdate":{"properties":{"anthropic_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anthropic Api Key"},"openai_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openai Api Key"},"google_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Api Key"},"mistral_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mistral Api Key"},"deepseek_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deepseek Api Key"},"grok_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grok Api Key"},"nvidia_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nvidia Api Key"},"groq_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groq Api Key"},"together_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Together Api Key"},"perplexity_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Perplexity Api Key"},"custom_llm_base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Llm Base Url"},"custom_llm_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Llm Api Key"},"preferred_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Model"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"default_private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Default Private"},"tool_api_keys":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Api Keys"}},"type":"object","title":"SettingsUpdate"},"SettingsUpdateRequest":{"properties":{"preferred_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Model"},"tool_api_keys":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Tool Api Keys"},"anthropic_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anthropic Api Key"},"openai_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openai Api Key"},"google_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Api Key"},"mistral_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mistral Api Key"},"deepseek_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deepseek Api Key"},"grok_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grok Api Key"}},"type":"object","title":"SettingsUpdateRequest"},"StrategyCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"content":{"type":"string","title":"Content"},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","required":["name","content"],"title":"StrategyCreate"},"StrategyUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"}},"type":"object","title":"StrategyUpdate"},"SynthesisStrategyUpdate":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"SynthesisStrategyUpdate"},"TeamCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","required":["name"],"title":"TeamCreateRequest"},"TeamInviteRequest":{"properties":{"email":{"type":"string","title":"Email"},"role":{"type":"string","title":"Role","default":"member"}},"type":"object","required":["email"],"title":"TeamInviteRequest"},"TemplateSaveRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"domain":{"type":"string","title":"Domain","default":"general"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"steps":{"items":{"$ref":"#/components/schemas/TemplateStepInput"},"type":"array","title":"Steps"}},"type":"object","required":["name","steps"],"title":"TemplateSaveRequest"},"TemplateStepInput":{"properties":{"name":{"type":"string","title":"Name"},"agent_template":{"type":"string","title":"Agent Template"},"role":{"type":"string","title":"Role","default":""},"instruction":{"type":"string","title":"Instruction","default":""},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"checkpoint":{"type":"boolean","title":"Checkpoint","default":true},"depends_on":{"items":{"type":"string"},"type":"array","title":"Depends On","default":[]}},"type":"object","required":["name","agent_template"],"title":"TemplateStepInput"},"TestKeyRequest":{"properties":{"provider":{"type":"string","title":"Provider"},"key":{"type":"string","title":"Key"}},"type":"object","required":["provider","key"],"title":"TestKeyRequest"},"UpdateProfileRequest":{"properties":{"display_name":{"type":"string","title":"Display Name"}},"type":"object","required":["display_name"],"title":"UpdateProfileRequest"},"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"},"ValidationMissing":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"setup_hint":{"type":"string","title":"Setup Hint"}},"type":"object","required":["name","description","setup_hint"],"title":"ValidationMissing"},"WaitlistRequest":{"properties":{"email":{"type":"string","title":"Email"},"platform":{"type":"string","title":"Platform","default":"both"}},"type":"object","required":["email"],"title":"WaitlistRequest"},"WorkflowAdvanceRequest":{"properties":{"action":{"type":"string","title":"Action","default":"approve"},"human_notes":{"type":"string","title":"Human Notes","default":""}},"type":"object","title":"WorkflowAdvanceRequest"},"WorkflowListItem":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"domain":{"type":"string","title":"Domain"},"steps":{"type":"integer","title":"Steps"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"zero_setup":{"type":"boolean","title":"Zero Setup","default":false}},"type":"object","required":["slug","name","description","domain","steps","tags"],"title":"WorkflowListItem"},"WorkflowStartRequest":{"properties":{"workflow":{"type":"string","title":"Workflow"},"query":{"type":"string","title":"Query"}},"type":"object","required":["workflow","query"],"title":"WorkflowStartRequest"},"web__routers__council_run__CouncilRunRequest":{"properties":{"query":{"type":"string","title":"Query"},"panel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Panel","default":"default"},"council_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Council Id"},"model_override":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Override"},"is_private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Private"},"custom_agents":{"anyOf":[{"items":{"$ref":"#/components/schemas/AgentOverride"},"type":"array"},{"type":"null"}],"title":"Custom Agents"}},"type":"object","required":["query"],"title":"CouncilRunRequest"},"web__routers__developer_api__CouncilRunRequest":{"properties":{"query":{"type":"string","title":"Query"},"panel":{"type":"string","title":"Panel","default":"default"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["query"],"title":"CouncilRunRequest","description":"Request body for POST /api/v1/councils/run."}}}}