{"openapi":"3.1.0","info":{"title":"Slope API","description":"Backend for Slope — autonomous growth operations platform.","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/me":{"get":{"tags":["auth"],"summary":"Me","description":"Returns identity claims + the user's org memberships (with role and basic org metadata).\n\nFirst-time callers may not yet have a user row in Mongo (post-confirmation Lambda\nfires async). In that case we return claims with empty memberships; the app retries.","operationId":"me_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/organizations":{"get":{"tags":["organizations"],"summary":"List Orgs","description":"List all organizations the calling user is a member of.","operationId":"list_orgs_organizations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/organizations/{org_id}":{"get":{"tags":["organizations"],"summary":"Get Org","description":"Get a single organization. Requires membership.","operationId":"get_org_organizations__org_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/workspaces":{"get":{"tags":["workspaces"],"summary":"List Workspaces","operationId":"list_workspaces_organizations__org_id__workspaces_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/workspaces/{workspace_id}":{"get":{"tags":["workspaces"],"summary":"Get Workspace","operationId":"get_workspace_organizations__org_id__workspaces__workspace_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects":{"get":{"tags":["projects"],"summary":"List Projects","operationId":"list_projects_organizations__org_id__projects_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["projects"],"summary":"Create Project","operationId":"create_project_organizations__org_id__projects_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}":{"get":{"tags":["projects"],"summary":"Get Project","operationId":"get_project_organizations__org_id__projects__project_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["projects"],"summary":"Patch Project","operationId":"patch_project_organizations__org_id__projects__project_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["projects"],"summary":"Archive Project","operationId":"archive_project_organizations__org_id__projects__project_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/sync-now":{"post":{"tags":["projects"],"summary":"Sync Now","description":"On-demand fan-out: enqueues whatever the daily sync orchestrator would for\nthis single project (URL discovery, GSC sync, GA4 sync). Useful when a user\nhas just connected an integration and doesn't want to wait for 03:00 UTC.\n\nAny-member is allowed — read-only data fetches with no destructive effects.","operationId":"sync_now_organizations__org_id__projects__project_id__sync_now_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/rule-thresholds":{"get":{"tags":["projects"],"summary":"Get Rule Thresholds","operationId":"get_rule_thresholds_organizations__org_id__projects__project_id__rule_thresholds_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/rule-thresholds/{rule}":{"put":{"tags":["projects"],"summary":"Set Rule Thresholds","operationId":"set_rule_thresholds_organizations__org_id__projects__project_id__rule_thresholds__rule__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string","title":"Rule"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Overrides"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["projects"],"summary":"Reset Rule Thresholds","operationId":"reset_rule_thresholds_organizations__org_id__projects__project_id__rule_thresholds__rule__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"rule","in":"path","required":true,"schema":{"type":"string","title":"Rule"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/pages":{"get":{"tags":["pages"],"summary":"List Project Pages","operationId":"list_project_pages_organizations__org_id__projects__project_id__pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"path_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path Prefix"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/stats":{"get":{"tags":["pages"],"summary":"Project Stats","description":"Counts pages by status + last 10 jobs. Used by the project detail UI.","operationId":"project_stats_organizations__org_id__projects__project_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/clusters":{"get":{"tags":["clusters"],"summary":"List Clusters","operationId":"list_clusters_organizations__org_id__projects__project_id__clusters_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/clusters/{cluster_id}":{"get":{"tags":["clusters"],"summary":"Get Cluster","operationId":"get_cluster_organizations__org_id__projects__project_id__clusters__cluster_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"cluster_id","in":"path","required":true,"schema":{"type":"string","title":"Cluster Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/clusters/{cluster_id}/pages":{"get":{"tags":["clusters"],"summary":"List Cluster Pages","operationId":"list_cluster_pages_organizations__org_id__projects__project_id__clusters__cluster_id__pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"cluster_id","in":"path","required":true,"schema":{"type":"string","title":"Cluster Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/integrations":{"get":{"tags":["integrations"],"summary":"List Project Integrations","operationId":"list_project_integrations_organizations__org_id__projects__project_id__integrations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/integrations/{integration_id}":{"delete":{"tags":["integrations"],"summary":"Disconnect Integration","operationId":"disconnect_integration_organizations__org_id__projects__project_id__integrations__integration_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/google/connect-url":{"get":{"tags":["integrations"],"summary":"Google Connect Url","description":"Issues a Google consent URL the app should redirect to.\n\nThe state param carries org_id + project_id + return path + a CSRF nonce,\nsigned with our INTERNAL_SHARED_SECRET so we can verify it after Google's\nredirect without server-side state.","operationId":"google_connect_url_integrations_google_connect_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"org_id","in":"query","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"return_path","in":"query","required":false,"schema":{"type":"string","default":"/integrations","title":"Return Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/google/callback":{"get":{"tags":["integrations"],"summary":"Google Callback","description":"OAuth callback. Google redirects user here after consent.\n\nSteps:\n  1. If `error` set (user denied), redirect back with error param.\n  2. Validate state (HMAC + expiry).\n  3. Exchange code for tokens.\n  4. Fetch userinfo to identify the connected Google account.\n  5. List GSC sites + GA4 properties; auto-match each to project.domain.\n  6. Upsert two integrations rows (gsc + ga4) sharing the same credentials.\n  7. Enqueue initial sync jobs (Sprint 14b).\n  8. Redirect back to the app's return_path.","operationId":"google_callback_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"}}}}}}},"/organizations/{org_id}/opportunities":{"get":{"tags":["opportunities"],"summary":"List Org Opportunities","operationId":"list_org_opportunities_organizations__org_id__opportunities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/opportunities/{opportunity_id}":{"get":{"tags":["opportunities"],"summary":"Get Opportunity","operationId":"get_opportunity_organizations__org_id__opportunities__opportunity_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["opportunities"],"summary":"Patch Opportunity","operationId":"patch_opportunity_organizations__org_id__opportunities__opportunity_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/opportunities/bulk":{"post":{"tags":["opportunities"],"summary":"Bulk Action","description":"Apply a single action to many opportunities in one call.\nactions:\n  - \"approve\"      → status = approved\n  - \"ignore\"       → status = ignored (with optional ignored_reason)\n  - \"reset_to_new\" → status = new (un-ignore / re-open)\n\nReturns counts of {updated, not_found}.","operationId":"bulk_action_organizations__org_id__opportunities_bulk_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkOpportunityAction"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/opportunities":{"get":{"tags":["opportunities"],"summary":"List Project Opportunities","operationId":"list_project_opportunities_organizations__org_id__projects__project_id__opportunities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/opportunities/stats":{"get":{"tags":["opportunities"],"summary":"Project Opportunity Stats","operationId":"project_opportunity_stats_organizations__org_id__projects__project_id__opportunities_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/github/install-url":{"get":{"tags":["github"],"summary":"Github Install Url","operationId":"github_install_url_integrations_github_install_url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"org_id","in":"query","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/github/callback":{"get":{"tags":["github"],"summary":"Github Callback","description":"GitHub redirects here after the user installs the App.\nStores the installation as an integration scoped to (org, project).","operationId":"github_callback_integrations_github_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"installation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Installation Id"}},{"name":"setup_action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Setup Action"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/github/repos":{"get":{"tags":["github"],"summary":"List Github Repos","operationId":"list_github_repos_organizations__org_id__projects__project_id__github_repos_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/opportunities/{opportunity_id}/create-issue":{"post":{"tags":["github"],"summary":"Create Github Issue","operationId":"create_github_issue_organizations__org_id__opportunities__opportunity_id__create_issue_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIssueBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/github":{"post":{"tags":["github"],"summary":"Github Webhook","description":"Handles `issues` events. Signature verified via webhook_secret.\nCurrently we care about issue close → flip the task to closed.","operationId":"github_webhook_webhooks_github_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/organizations/{org_id}/tasks":{"get":{"tags":["github"],"summary":"List Tasks","operationId":"list_tasks_organizations__org_id__tasks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/billing":{"get":{"tags":["billing"],"summary":"Billing Overview","operationId":"billing_overview_organizations__org_id__billing_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/billing/checkout-session":{"post":{"tags":["billing"],"summary":"Create Checkout Session","operationId":"create_checkout_session_organizations__org_id__billing_checkout_session_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/billing/portal-session":{"post":{"tags":["billing"],"summary":"Create Portal Session","operationId":"create_portal_session_organizations__org_id__billing_portal_session_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/stripe":{"post":{"tags":["billing"],"summary":"Stripe Webhook","operationId":"stripe_webhook_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/prompts":{"get":{"tags":["ai-visibility"],"summary":"List Prompts","operationId":"list_prompts_organizations__org_id__projects__project_id__ai_visibility_prompts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ai-visibility"],"summary":"Add Prompt","operationId":"add_prompt_organizations__org_id__projects__project_id__ai_visibility_prompts_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPromptBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/prompts/{prompt_id}":{"delete":{"tags":["ai-visibility"],"summary":"Archive Prompt","operationId":"archive_prompt_organizations__org_id__projects__project_id__ai_visibility_prompts__prompt_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"prompt_id","in":"path","required":true,"schema":{"type":"string","title":"Prompt Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/generate-prompts":{"post":{"tags":["ai-visibility"],"summary":"Generate Prompts","description":"LLM-generates a starter prompt set seeded by domain + brand + competitors + top GSC queries.","operationId":"generate_prompts_organizations__org_id__projects__project_id__ai_visibility_generate_prompts_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/probe":{"post":{"tags":["ai-visibility"],"summary":"Trigger Probe","description":"Manually enqueue an ai_visibility_probe job.","operationId":"trigger_probe_organizations__org_id__projects__project_id__ai_visibility_probe_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/stats":{"get":{"tags":["ai-visibility"],"summary":"Stats","operationId":"stats_organizations__org_id__projects__project_id__ai_visibility_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/trend":{"get":{"tags":["ai-visibility"],"summary":"Trend","description":"Returns daily visibility rate over the last N days (default 28).\nShape: {\"points\": [{\"date\": \"2026-05-01\", \"runs\": 12, \"with_brand\": 4, \"pct\": 33.3}, ...]}","operationId":"trend_organizations__org_id__projects__project_id__ai_visibility_trend_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/ai-visibility/runs":{"get":{"tags":["ai-visibility"],"summary":"List Runs","operationId":"list_runs_organizations__org_id__projects__project_id__ai_visibility_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"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"}}}}}}},"/organizations/{org_id}/invitations":{"post":{"tags":["invitations"],"summary":"Create Invitation","operationId":"create_invitation_organizations__org_id__invitations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["invitations"],"summary":"List Invitations","operationId":"list_invitations_organizations__org_id__invitations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/invitations/{invitation_id}":{"delete":{"tags":["invitations"],"summary":"Revoke Invitation","operationId":"revoke_invitation_organizations__org_id__invitations__invitation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"invitation_id","in":"path","required":true,"schema":{"type":"string","title":"Invitation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invitations/{token}/preview":{"get":{"tags":["invitations"],"summary":"Preview Invitation","description":"Public — no auth. Lets the accept page show 'Accept invite to <org>' before login.","operationId":"preview_invitation_invitations__token__preview_get","parameters":[{"name":"token","in":"path","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"}}}}}}},"/invitations/{token}/accept":{"post":{"tags":["invitations"],"summary":"Accept Invitation","operationId":"accept_invitation_invitations__token__accept_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"path","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"}}}}}}},"/organizations/{org_id}/members":{"get":{"tags":["members"],"summary":"List Members","description":"Lists all members of the org with their basic identity info.","operationId":"list_members_organizations__org_id__members_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/members/{target_user_id}":{"patch":{"tags":["members"],"summary":"Update Member Role","operationId":"update_member_role_organizations__org_id__members__target_user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"target_user_id","in":"path","required":true,"schema":{"type":"string","title":"Target User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberRoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["members"],"summary":"Remove Member","operationId":"remove_member_organizations__org_id__members__target_user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"target_user_id","in":"path","required":true,"schema":{"type":"string","title":"Target User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/members/transfer-ownership":{"post":{"tags":["members"],"summary":"Transfer Ownership","operationId":"transfer_ownership_organizations__org_id__members_transfer_ownership_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferOwnershipBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/notification-prefs":{"get":{"tags":["notifications"],"summary":"Get My Prefs","operationId":"get_my_prefs_organizations__org_id__notification_prefs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["notifications"],"summary":"Patch My Prefs","operationId":"patch_my_prefs_organizations__org_id__notification_prefs_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationPrefPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/audit-log":{"get":{"tags":["audit-log"],"summary":"List Audit Log","operationId":"list_audit_log_organizations__org_id__audit_log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"actor_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor User Id"}},{"name":"action_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Prefix"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Before"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/organizations/{org_id}/research/signals":{"get":{"tags":["research"],"summary":"List Signals","operationId":"list_signals_organizations__org_id__research_signals_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"min_score","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Min Score"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/organizations/{org_id}/research/sync":{"post":{"tags":["research"],"summary":"Trigger Sync","operationId":"trigger_sync_organizations__org_id__research_sync_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/research/ideas":{"get":{"tags":["research"],"summary":"List Ideas","operationId":"list_ideas_organizations__org_id__research_ideas_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}},"post":{"tags":["research"],"summary":"Create Idea","operationId":"create_idea_organizations__org_id__research_ideas_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIdeaBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/research/ideas/{idea_id}":{"patch":{"tags":["research"],"summary":"Patch Idea","operationId":"patch_idea_organizations__org_id__research_ideas__idea_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"idea_id","in":"path","required":true,"schema":{"type":"string","title":"Idea Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchIdeaBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["research"],"summary":"Delete Idea","operationId":"delete_idea_organizations__org_id__research_ideas__idea_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"idea_id","in":"path","required":true,"schema":{"type":"string","title":"Idea Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/research/ideas/{idea_id}/convert-to-project":{"post":{"tags":["research"],"summary":"Convert Idea To Project","description":"Materializes a research idea into a working Slope project:\n  - Creates a new project at body.domain with name = body.project_name or idea.title\n  - Copies idea.keywords onto the project's competitor_domains seed list (best-effort)\n  - Marks the idea status='converted' + back-links project_id","operationId":"convert_idea_to_project_organizations__org_id__research_ideas__idea_id__convert_to_project_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"idea_id","in":"path","required":true,"schema":{"type":"string","title":"Idea Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertIdeaBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ingest/v1/events":{"post":{"tags":["telemetry"],"summary":"Ingest Events","description":"Public endpoint. Body must be a JSON `IngestBatch`. The full request body is\nsigned by the project's telemetry_secret via HMAC-SHA256.\n\nReturns 401 if signature invalid, 404 if project_id unknown, 202 on accepted.","operationId":"ingest_events_ingest_v1_events_post","parameters":[{"name":"x-slope-signature","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Slope-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/stats":{"get":{"tags":["telemetry"],"summary":"Stats","operationId":"stats_organizations__org_id__projects__project_id__telemetry_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/top-pages":{"get":{"tags":["telemetry"],"summary":"Top Pages","operationId":"top_pages_organizations__org_id__projects__project_id__telemetry_top_pages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":28,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/rotate-secret":{"post":{"tags":["telemetry"],"summary":"Rotate Secret","description":"Rotate the project's telemetry secret. Returns the new secret ONCE — caller\nmust store it. Old secret is immediately invalid.","operationId":"rotate_secret_organizations__org_id__projects__project_id__telemetry_rotate_secret_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/funnels":{"get":{"tags":["telemetry"],"summary":"List Funnels","operationId":"list_funnels_organizations__org_id__projects__project_id__telemetry_funnels_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["telemetry"],"summary":"Create Funnel","operationId":"create_funnel_organizations__org_id__projects__project_id__telemetry_funnels_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFunnelBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/funnels/{funnel_id}/compute":{"get":{"tags":["telemetry"],"summary":"Compute Funnel","operationId":"compute_funnel_organizations__org_id__projects__project_id__telemetry_funnels__funnel_id__compute_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"funnel_id","in":"path","required":true,"schema":{"type":"string","title":"Funnel Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/telemetry/funnels/{funnel_id}":{"delete":{"tags":["telemetry"],"summary":"Delete Funnel","operationId":"delete_funnel_organizations__org_id__projects__project_id__telemetry_funnels__funnel_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"funnel_id","in":"path","required":true,"schema":{"type":"string","title":"Funnel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/content":{"get":{"tags":["content"],"summary":"List Pieces","operationId":"list_pieces_organizations__org_id__projects__project_id__content_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}},"post":{"tags":["content"],"summary":"Create Piece","operationId":"create_piece_organizations__org_id__projects__project_id__content_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePieceBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/content/{piece_id}":{"patch":{"tags":["content"],"summary":"Patch Piece","operationId":"patch_piece_organizations__org_id__projects__project_id__content__piece_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"piece_id","in":"path","required":true,"schema":{"type":"string","title":"Piece Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchPieceBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["content"],"summary":"Delete Piece","operationId":"delete_piece_organizations__org_id__projects__project_id__content__piece_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"piece_id","in":"path","required":true,"schema":{"type":"string","title":"Piece Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/content/suggest":{"post":{"tags":["content"],"summary":"Suggest Drafts","description":"LLM-generates `n` draft content pieces from project signals.\nReturns the drafts but does NOT persist them — the UI lets the user pick.","operationId":"suggest_drafts_organizations__org_id__projects__project_id__content_suggest_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":10,"default":5,"title":"N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/content/run-publisher":{"post":{"tags":["content"],"summary":"Trigger Publisher","description":"Manually fire the content publisher worker — useful for testing scheduled pieces.","operationId":"trigger_publisher_organizations__org_id__projects__project_id__content_run_publisher_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/backlinks/latest":{"get":{"tags":["backlinks"],"summary":"Latest Snapshot","operationId":"latest_snapshot_organizations__org_id__projects__project_id__backlinks_latest_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/backlinks/history":{"get":{"tags":["backlinks"],"summary":"History","operationId":"history_organizations__org_id__projects__project_id__backlinks_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/backlinks/changes":{"get":{"tags":["backlinks"],"summary":"Changes","description":"New + lost referring domains comparing latest snapshot vs latest snapshot\nthat's `days` days older. Returns {new: [...], lost: [...]}.","operationId":"changes_organizations__org_id__projects__project_id__backlinks_changes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/backlinks/sync-now":{"post":{"tags":["backlinks"],"summary":"Sync Now","operationId":"sync_now_organizations__org_id__projects__project_id__backlinks_sync_now_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/competitor-serp/queries":{"get":{"tags":["competitor-serp"],"summary":"List Tracked Queries","description":"List queries tracked in the last N days + latest your_position per query.","operationId":"list_tracked_queries_organizations__org_id__projects__project_id__competitor_serp_queries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/competitor-serp/query":{"get":{"tags":["competitor-serp"],"summary":"Query Detail","description":"All snapshots for a single query in the window — for trend rendering.","operationId":"query_detail_organizations__org_id__projects__project_id__competitor_serp_query_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/competitor-serp/sync-now":{"post":{"tags":["competitor-serp"],"summary":"Sync Now","operationId":"sync_now_organizations__org_id__projects__project_id__competitor_serp_sync_now_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/custom-rules":{"get":{"tags":["custom-rules"],"summary":"List Rules","operationId":"list_rules_organizations__org_id__projects__project_id__custom_rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["custom-rules"],"summary":"Create Rule","operationId":"create_rule_organizations__org_id__projects__project_id__custom_rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRuleBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/projects/{project_id}/custom-rules/{rule_id}":{"patch":{"tags":["custom-rules"],"summary":"Patch Rule","operationId":"patch_rule_organizations__org_id__projects__project_id__custom_rules__rule_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchRuleBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["custom-rules"],"summary":"Delete Rule","operationId":"delete_rule_organizations__org_id__projects__project_id__custom_rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/agency/overview":{"get":{"tags":["agency"],"summary":"Overview","description":"Per-project KPI rollup: total opportunities, open vs completed, last-sync, health.","operationId":"overview_organizations__org_id__agency_overview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/agency/opportunities":{"get":{"tags":["agency"],"summary":"Cross Client Opportunities","description":"Flat opportunity feed across all client projects, sorted by priority.","operationId":"cross_client_opportunities_organizations__org_id__agency_opportunities_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/organizations/{org_id}/agency/ai-visibility":{"get":{"tags":["agency"],"summary":"Cross Client Ai Visibility","description":"Per-project AI visibility rate side-by-side.","operationId":"cross_client_ai_visibility_organizations__org_id__agency_ai_visibility_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"default":28,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/{org_id}/integrations/slack":{"post":{"tags":["integrations"],"summary":"Connect Slack","description":"Connect a Slack incoming webhook. Optionally fires a test message to confirm.","operationId":"connect_slack_organizations__org_id__integrations_slack_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackConnectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["integrations"],"summary":"Get Slack Integration","operationId":"get_slack_integration_organizations__org_id__integrations_slack_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["integrations"],"summary":"Disconnect Slack","operationId":"disconnect_slack_organizations__org_id__integrations_slack_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/post-signup":{"post":{"tags":["internal"],"summary":"Post Signup","description":"Called by the Cognito post-confirmation Lambda trigger.\nBody: {\"cognito_sub\": \"...\", \"email\": \"...\", \"name\": \"...\"}\n\nCreates the user + their first organization + a Personal workspace + owner membership.\nIdempotent — safe to retry if Cognito redelivers.","operationId":"post_signup_internal_post_signup_post","parameters":[{"name":"X-Slope-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Slope-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddPromptBody":{"properties":{"prompt":{"type":"string","title":"Prompt"},"intent":{"type":"string","title":"Intent","default":"informational"}},"type":"object","required":["prompt"],"title":"AddPromptBody"},"BulkOpportunityAction":{"properties":{"opportunity_ids":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Opportunity Ids"},"action":{"type":"string","title":"Action"},"ignored_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ignored Reason"}},"type":"object","required":["opportunity_ids","action"],"title":"BulkOpportunityAction"},"CheckoutBody":{"properties":{"plan":{"type":"string","title":"Plan"}},"type":"object","required":["plan"],"title":"CheckoutBody"},"ConvertIdeaBody":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"title":"Domain"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"language":{"type":"string","title":"Language","default":"en"},"country":{"type":"string","title":"Country","default":"US"}},"type":"object","required":["domain"],"title":"ConvertIdeaBody"},"CreateFunnelBody":{"properties":{"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name"},"steps":{"items":{"$ref":"#/components/schemas/FunnelStep"},"type":"array","maxItems":10,"minItems":2,"title":"Steps"}},"type":"object","required":["name","steps"],"title":"CreateFunnelBody"},"CreateIdeaBody":{"properties":{"title":{"type":"string","maxLength":200,"minLength":3,"title":"Title"},"description":{"type":"string","title":"Description","default":""},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"source_signal_ids":{"items":{"type":"string"},"type":"array","title":"Source Signal Ids"},"estimated_monthly_volume":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Monthly Volume"},"estimated_difficulty":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Estimated Difficulty"},"monetization_score":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Monetization Score"},"trend_score":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Trend Score"}},"type":"object","required":["title"],"title":"CreateIdeaBody"},"CreateIssueBody":{"properties":{"repo_full_name":{"type":"string","title":"Repo Full Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"}},"type":"object","required":["repo_full_name"],"title":"CreateIssueBody"},"CreatePieceBody":{"properties":{"title":{"type":"string","maxLength":200,"minLength":3,"title":"Title"},"body":{"type":"string","maxLength":10000,"minLength":1,"title":"Body"},"platforms":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Platforms"},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"}},"type":"object","required":["title","body","platforms"],"title":"CreatePieceBody"},"CreateRuleBody":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"description":{"type":"string","title":"Description","default":""},"conditions":{"items":{"$ref":"#/components/schemas/RuleCondition"},"type":"array","maxItems":10,"minItems":1,"title":"Conditions"},"action_template":{"type":"string","maxLength":2000,"minLength":1,"title":"Action Template"},"priority":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Priority","default":50}},"type":"object","required":["name","conditions","action_template"],"title":"CreateRuleBody"},"FunnelStep":{"properties":{"event_type":{"type":"string","title":"Event Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"props_match":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Props Match"}},"type":"object","required":["event_type"],"title":"FunnelStep"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvitationCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"role":{"type":"string","enum":["owner","admin","member"],"title":"Role","default":"member"}},"type":"object","required":["email"],"title":"InvitationCreate"},"MemberRoleUpdate":{"properties":{"role":{"type":"string","enum":["owner","admin","member"],"title":"Role"}},"type":"object","required":["role"],"title":"MemberRoleUpdate"},"NotificationPrefPatch":{"properties":{"weekly_digest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Weekly Digest"},"quota_warnings":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Quota Warnings"},"task_impact_summary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Task Impact Summary"}},"type":"object","title":"NotificationPrefPatch","description":"PATCH body — every field optional."},"PatchIdeaBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"estimated_monthly_volume":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Monthly Volume"},"estimated_difficulty":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Estimated Difficulty"},"monetization_score":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Monetization Score"},"trend_score":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Trend Score"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"PatchIdeaBody"},"PatchPieceBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Platforms"},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"PatchPieceBody"},"PatchRuleBody":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"conditions":{"anyOf":[{"items":{"$ref":"#/components/schemas/RuleCondition"},"type":"array"},{"type":"null"}],"title":"Conditions"},"action_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Template"},"priority":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"PatchRuleBody"},"ProjectCreate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"domain":{"type":"string","title":"Domain"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","default":"en"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","default":"US"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["domain"],"title":"ProjectCreate","description":"POST body."},"ProjectPatch":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"competitor_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Competitor Domains"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","title":"ProjectPatch"},"RuleCondition":{"properties":{"field":{"type":"string","title":"Field"},"op":{"type":"string","title":"Op"},"value":{"title":"Value"},"arg":{"anyOf":[{},{"type":"null"}],"title":"Arg"}},"type":"object","required":["field","op","value"],"title":"RuleCondition"},"SlackConnectBody":{"properties":{"webhook_url":{"type":"string","maxLength":500,"minLength":20,"title":"Webhook Url"},"test_message":{"type":"boolean","title":"Test Message","default":true}},"type":"object","required":["webhook_url"],"title":"SlackConnectBody"},"StatusPatch":{"properties":{"status":{"type":"string","title":"Status"},"ignored_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ignored Reason"}},"type":"object","required":["status"],"title":"StatusPatch"},"SyncBody":{"properties":{"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"subreddits":{"items":{"type":"string"},"type":"array","title":"Subreddits"}},"type":"object","title":"SyncBody"},"TransferOwnershipBody":{"properties":{"new_owner_user_id":{"type":"string","title":"New Owner User Id"}},"type":"object","required":["new_owner_user_id"],"title":"TransferOwnershipBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}