{ "openapi": "3.1.0", "info": { "title": "VoyantIO API", "description": "\n## Brand Context Intelligence Platform\n\nVoyantIO provides AI-powered brand context management for GTM teams.\n\n### Core Capabilities\n\n- **Context Streams** - Centralized brand knowledge that any AI tool can use\n- **Telemetry** - Visitor tracking with IP geolocation and company enrichment\n- **Signals** - Social listening across 10+ platforms: GitHub, Reddit, HackerNews, LinkedIn, Twitter/X, Discord, ProductHunt, YouTube, G2, Slack, and government sources\n- **Target Graph** - Account and contact intelligence with engagement tracking\n- **RAG** - Retrieval-augmented content generation with brand awareness\n\n### Authentication\n\nMost endpoints require a Bearer token from Clerk authentication.\nPublic endpoints (telemetry ingestion, well-known files) are clearly marked.\n\n### Rate Limits\n\n- Telemetry ingestion: 100 req/min per IP\n- API endpoints: 1000 req/min per org\n", "version": "1.0.0" }, "paths": { "/api/crawl/engines": { "get": { "tags": [ "crawler" ], "summary": "List Crawler Engines", "description": "List available crawler engines and their status.\n\nReturns engines with availability status based on configured credentials.", "operationId": "list_crawler_engines_api_crawl_engines_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crawl/estimate": { "post": { "tags": [ "crawler" ], "summary": "Estimate Crawl Scope", "description": "Estimate number of URLs by checking sitemap.xml.", "operationId": "estimate_crawl_scope_api_crawl_estimate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlEstimateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crawl/start": { "post": { "tags": [ "crawler" ], "summary": "Start Crawl", "description": "Start a new crawl job using Celery.\n\nThe crawl runs in a Celery worker and can be monitored via the status endpoint.", "operationId": "start_crawl_api_crawl_start_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crawl/status/{crawl_id}": { "get": { "tags": [ "crawler" ], "summary": "Get Crawl Status", "description": "Get status of a crawl job.", "operationId": "get_crawl_status_api_crawl_status__crawl_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/summary/{crawl_id}": { "get": { "tags": [ "crawler" ], "summary": "Get Crawl Summary", "description": "Get summary of a completed crawl job.", "operationId": "get_crawl_summary_api_crawl_summary__crawl_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlSummary" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/jobs": { "get": { "tags": [ "crawler" ], "summary": "List Crawl Jobs", "description": "List all crawl jobs for organization.", "operationId": "list_crawl_jobs_api_crawl_jobs_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "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" } } } } } } }, "/api/crawl/{crawl_id}/cancel": { "post": { "tags": [ "crawler" ], "summary": "Cancel Crawl", "description": "Cancel a running crawl job.", "operationId": "cancel_crawl_api_crawl__crawl_id__cancel_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/stream/{crawl_id}": { "get": { "tags": [ "crawler" ], "summary": "Stream Crawl Events", "description": "Stream crawl progress and newly captured content via SSE.", "operationId": "stream_crawl_events_api_crawl_stream__crawl_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/contents": { "get": { "tags": [ "crawler" ], "summary": "List Crawl Contents", "description": "Return captured content rows for a crawl to support polling UI updates.", "operationId": "list_crawl_contents_api_crawl__crawl_id__contents_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } }, { "name": "since", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Return items extracted after this ISO timestamp", "title": "Since" }, "description": "Return items extracted after this ISO timestamp" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "default": 200, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/debug/health": { "get": { "tags": [ "crawler" ], "summary": "Debug Health", "description": "Debug endpoint to check crawler and Celery health.", "operationId": "debug_health_api_crawl_debug_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/crawl/import-authoritative": { "post": { "tags": [ "crawler" ], "summary": "Import Authoritative Content", "description": "Import llms.txt or context.txt as authoritative context content.\n\nThis content gets the highest priority in RAG retrieval because it represents\nthe official, curated information that a site wants AI systems to use.", "operationId": "import_authoritative_content_api_crawl_import_authoritative_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportAuthoritativeContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crawl/cleanup/all": { "delete": { "tags": [ "crawler" ], "summary": "Cleanup All Crawl Data", "description": "Delete ALL crawl data for the organization.\n\nThis removes all contents, content_chunks, and crawl_jobs for the org.\nUse confirm=true to execute.\n\nExample: DELETE /api/crawler/cleanup/all?confirm=true", "operationId": "cleanup_all_crawl_data_api_crawl_cleanup_all_delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "confirm", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Must be true to confirm deletion", "default": false, "title": "Confirm" }, "description": "Must be true to confirm deletion" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/cleanup/external-content": { "delete": { "tags": [ "crawler" ], "summary": "Cleanup External Content", "description": "Delete content that was incorrectly crawled from external domains.\n\nThis endpoint removes content matching a URL pattern from the organization's data.\nUse this to clean up content that was crawled due to domain filtering bugs.\n\nExample: DELETE /api/crawler/cleanup/external-content?domain_pattern=grafana.com", "operationId": "cleanup_external_content_api_crawl_cleanup_external_content_delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "domain_pattern", "in": "query", "required": true, "schema": { "type": "string", "description": "URL pattern to match (e.g., 'grafana.com')", "title": "Domain Pattern" }, "description": "URL pattern to match (e.g., 'grafana.com')" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/process-rag": { "post": { "tags": [ "rag" ], "summary": "Process Rag", "description": "Process crawled content for RAG: chunk text and generate embeddings.\n\nThis endpoint:\n1. Retrieves crawled content from the contents table\n2. Chunks the text based on configuration\n3. Generates embeddings for each chunk\n4. Saves chunks to content_chunks table\n5. Returns quality metrics", "operationId": "process_rag_api_crawl__crawl_id__process_rag_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RAGProcessRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RAGProcessResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/rag-status": { "get": { "tags": [ "rag" ], "summary": "Get Rag Status", "description": "Get status of RAG processing for a crawl.", "operationId": "get_rag_status_api_crawl__crawl_id__rag_status_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/rag-chunks": { "delete": { "tags": [ "rag" ], "summary": "Delete Rag Chunks", "description": "Delete all RAG chunks for a crawl to allow reprocessing.", "operationId": "delete_rag_chunks_api_crawl__crawl_id__rag_chunks_delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/stats/{org_id}": { "get": { "tags": [ "rag" ], "summary": "Get Rag Stats", "description": "Get aggregate RAG statistics for the dashboard.", "operationId": "get_rag_stats_api_crawl_stats__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" } } } } } } }, "/api/signals/stats": { "get": { "tags": [ "signals" ], "summary": "Get Signal Stats", "description": "Return counts of signals for the current org (optionally per platform).", "operationId": "get_signal_stats_api_signals_stats_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform (github, reddit, linkedin)", "title": "Platform" }, "description": "Filter by platform (github, reddit, linkedin)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/top-by-engagement": { "get": { "tags": [ "signals" ], "summary": "Get Top Signals By Engagement", "description": "Get top signals by engagement grouped by platform.\nUsed by Content Strategist Community tab.", "operationId": "get_top_signals_by_engagement_api_signals_top_by_engagement_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit_per_platform", "in": "query", "required": false, "schema": { "type": "integer", "default": 5, "title": "Limit Per Platform" } }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "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" } } } } } } }, "/api/signals/trends": { "get": { "tags": [ "signals" ], "summary": "Get Signal Trends", "description": "Get signal counts by date and platform for trend charts.\nReturns data grouped by date for the last N days.\nIncludes keywords per day and company mention highlights.", "operationId": "get_signal_trends_api_signals_trends_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } }, { "name": "company_keywords", "in": "query", "required": false, "schema": { "type": "string", "title": "Company Keywords" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/configured-sources": { "get": { "tags": [ "signals" ], "summary": "Get Configured Sources", "description": "Get configured signal sources with their keywords, grouped by platform.\nReturns the keywords that users have configured for monitoring.\nUsed by Content Strategist to show what's being tracked.", "operationId": "get_configured_sources_api_signals_configured_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "type": "string", "title": "Platform" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/competitor-trends": { "get": { "tags": [ "signals" ], "summary": "Get Competitor Trends", "description": "Get competitor mention trends over time.\nShows how often competitors are mentioned in community signals vs your company.", "operationId": "get_competitor_trends_api_signals_competitor_trends_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } }, { "name": "competitors", "in": "query", "required": false, "schema": { "type": "string", "title": "Competitors" } }, { "name": "company_keywords", "in": "query", "required": false, "schema": { "type": "string", "title": "Company Keywords" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/publishing-comparison": { "get": { "tags": [ "signals" ], "summary": "Get Publishing Comparison", "description": "Compare publishing activity between your company and competitors.\n\nNOTE: For competitors, we track their actual publishing (blog posts, releases, docs).\nFor your company, we show community engagement signals (mentions, discussions about you).\nThese are different metrics but shown together for competitive context.", "operationId": "get_publishing_comparison_api_signals_publishing_comparison_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/count": { "get": { "tags": [ "signals" ], "summary": "Get Signal Count", "description": "Return a simple signal count for the current organization.", "operationId": "get_signal_count_api_signals_count_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform", "title": "Platform" }, "description": "Filter by platform" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/github/monthly": { "get": { "tags": [ "signals" ], "summary": "Get Github Monthly Signal Count", "description": "Count GitHub signals discovered in the last 30 days.", "operationId": "get_github_monthly_signal_count_api_signals_github_monthly_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/profile/{username}": { "get": { "tags": [ "signals" ], "summary": "Get Github Profile", "description": "Get GitHub profile data for a specific user to test social link extraction", "operationId": "get_github_profile_api_signals_profile__username__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string", "title": "Username" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/alerts": { "get": { "tags": [ "signals" ], "summary": "Get System Alerts", "description": "Get active system alerts for the organization", "operationId": "get_system_alerts_api_signals_alerts_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/alerts/{alert_id}/resolve": { "post": { "tags": [ "signals" ], "summary": "Resolve System Alert", "description": "Mark a system alert as resolved", "operationId": "resolve_system_alert_api_signals_alerts__alert_id__resolve_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "alert_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Alert Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/discover": { "post": { "tags": [ "signals" ], "summary": "Discover Signals", "description": "Discover GitHub signals (stars, issues, discussions, PRs)\n\nParameters:\n- sources: list of repositories to monitor\n- time_filter: 'hour', 'day', 'week', 'month', '3months', '6months', 'year'\n- max_items_per_source: number of items per repository (default 20, max 200 for deep discovery)\n- discovery_mode: 'standard' or 'deep' (deep fetches more historical data)\n- signal_types: list of types to discover: ['stars', 'issues', 'discussions', 'prs'] (default: all)", "operationId": "discover_signals_api_signals_discover_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/list": { "get": { "tags": [ "signals" ], "summary": "List Signals", "description": "List discovered signals", "operationId": "list_signals_api_signals_list_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform (github, reddit, linkedin)", "title": "Platform" }, "description": "Filter by platform (github, reddit, linkedin)" }, { "name": "signal_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by signal type", "title": "Signal Type" }, "description": "Filter by signal type" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/search": { "get": { "tags": [ "signals" ], "summary": "Search Signals", "description": "Search signals by query string (matches title and content).\nUsed by competitor dashboard to find signals mentioning competitors.\n\nSupports smart filtering via competitor_id to exclude false positives.", "operationId": "search_signals_api_signals_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "description": "Search query for competitor name", "title": "Query" }, "description": "Search query for competitor name" }, { "name": "competitor_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Competitor ID to load search config", "title": "Competitor Id" }, "description": "Competitor ID to load search config" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } }, { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform", "title": "Platform" }, "description": "Filter by platform" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/sources": { "get": { "tags": [ "signals" ], "summary": "List Signal Sources", "description": "List signal sources", "operationId": "list_signal_sources_api_signals_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "signals" ], "summary": "Add Signal Source", "description": "Add a new signal source (GitHub, Reddit, YouTube, etc.)", "operationId": "add_signal_source_api_signals_sources_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/sources/{source_id}": { "delete": { "tags": [ "signals" ], "summary": "Delete Signal Source", "description": "Delete a signal source", "operationId": "delete_signal_source_api_signals_sources__source_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/health": { "get": { "tags": [ "signals" ], "summary": "Health Check", "description": "Health check endpoint", "operationId": "health_check_api_signals_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/baseline-discovery": { "post": { "tags": [ "signals" ], "summary": "Baseline Discovery", "description": "Establish a baseline of signals to understand current engagement landscape\n\nThis discovers a broader set of signals to establish who's currently\ninterested in your technology stack, providing context for ongoing monitoring.", "operationId": "baseline_discovery_api_signals_baseline_discovery_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/clear": { "delete": { "tags": [ "signals" ], "summary": "Clear All Signals", "description": "Clear all signals for the organization", "operationId": "clear_all_signals_api_signals_clear_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/sources/bulk": { "post": { "tags": [ "signals" ], "summary": "Bulk Add Signal Sources", "description": "Bulk add signal sources from a seed configuration\n\nRequest body:\n{\n \"sources\": [\n {\"repo\": \"owner/repo\", \"category\": \"multi_agent_ai\", \"description\": \"...\"},\n ...\n ],\n \"replace_existing\": false // If true, removes existing sources first\n}", "operationId": "bulk_add_signal_sources_api_signals_sources_bulk_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/sources/presets": { "get": { "tags": [ "signals" ], "summary": "Get Source Presets", "description": "Get available preset signal source configurations", "operationId": "get_source_presets_api_signals_sources_presets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/sources/load-preset/{preset_name}": { "post": { "tags": [ "signals" ], "summary": "Load Source Preset", "description": "Load a preset signal source configuration\n\nParameters:\n- preset_name: Name of the preset (e.g., \"vantiq\")\n- categories: Optional list of categories to load (default: all)", "operationId": "load_source_preset_api_signals_sources_load_preset__preset_name__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "preset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Preset Name" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/discover-topics": { "post": { "tags": [ "signals" ], "summary": "Discover By Topics", "description": "Discover signals from GitHub topics\n\nThis searches for repositories tagged with specific topics and\nidentifies active contributors as potential leads.\n\nRequest body:\n{\n \"topics\": [\"multi-agent\", \"event-driven-architecture\", \"iot-platform\"],\n \"max_repos_per_topic\": 10,\n \"max_contributors_per_repo\": 5\n}", "operationId": "discover_by_topics_api_signals_discover_topics_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/generate-topics": { "post": { "tags": [ "signals" ], "summary": "Generate Topic Suggestions", "description": "Generate GitHub topic suggestions based on company/product context using AI.\n\nRequest body:\n{\n \"company_name\": \"Redpanda\",\n \"product_description\": \"Kafka-compatible streaming data platform\",\n \"target_audience\": \"Data engineers, platform teams\",\n \"competitors\": [\"Apache Kafka\", \"Pulsar\"],\n \"use_cases\": [\"Real-time analytics\", \"Event streaming\"]\n}\n\nReturns categorized topic suggestions that can be added as signal sources.", "operationId": "generate_topic_suggestions_api_signals_generate_topics_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/": { "get": { "tags": [ "context-streams" ], "summary": "List Signals", "description": "List signals with filtering and sorting", "operationId": "list_signals_api_context_streams__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform", "title": "Platform" }, "description": "Filter by platform" }, { "name": "signal_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by signal type", "title": "Signal Type" }, "description": "Filter by signal type" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status" }, "description": "Filter by status" }, { "name": "min_relevance", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Minimum relevance score", "title": "Min Relevance" }, "description": "Minimum relevance score" }, { "name": "source_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by source", "title": "Source Id" }, "description": "Filter by source" }, { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "description": "How many days back to look", "default": 7, "title": "Days Back" }, "description": "How many days back to look" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort by: discovered_at, priority_score, relevance_score", "default": "discovered_at", "title": "Sort By" }, "description": "Sort by: discovered_at, priority_score, relevance_score" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/sources": { "get": { "tags": [ "context-streams" ], "summary": "List Signal Sources", "description": "List all signal sources", "operationId": "list_signal_sources_api_context_streams_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by platform", "title": "Platform" }, "description": "Filter by platform" }, { "name": "is_active", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Filter by active status", "title": "Is Active" }, "description": "Filter by active status" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "context-streams" ], "summary": "Create Signal Source", "description": "Create a new signal source", "operationId": "create_signal_source_api_context_streams_sources_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Source Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/sources/{source_id}": { "patch": { "tags": [ "context-streams" ], "summary": "Update Signal Source", "description": "Update a signal source", "operationId": "update_signal_source_api_context_streams_sources__source_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Updates" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/{signal_id}/engage": { "post": { "tags": [ "context-streams" ], "summary": "Engage With Signal", "description": "Record engagement with a signal", "operationId": "engage_with_signal_api_context_streams__signal_id__engage_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "signal_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Signal Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Engagement Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/stats": { "get": { "tags": [ "context-streams" ], "summary": "Get Signal Stats", "description": "Get signal statistics", "operationId": "get_signal_stats_api_context_streams_stats_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/trending-topics": { "get": { "tags": [ "context-streams" ], "summary": "Get Trending Topics", "description": "Get trending topics from signals", "operationId": "get_trending_topics_api_context_streams_trending_topics_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of days to analyze", "default": 7, "title": "Days" }, "description": "Number of days to analyze" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of topics to return", "default": 20, "title": "Limit" }, "description": "Number of topics to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/stream/subscribe": { "get": { "tags": [ "stream" ], "summary": "Stream Context Signals", "description": "Subscribe to a real-time stream of context signals.\nUses Server-Sent Events (SSE).", "operationId": "stream_context_signals_api_stream_subscribe_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "channels", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by channels/platforms", "title": "Channels" }, "description": "Filter by channels/platforms" }, { "name": "min_relevance", "in": "query", "required": false, "schema": { "type": "number", "description": "Minimum relevance score", "default": 0.0, "title": "Min Relevance" }, "description": "Minimum relevance score" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/governance/validate": { "post": { "tags": [ "governance" ], "summary": "Validate Content", "description": "Validate a draft response against the organization's governance policies.\nThis acts as the 'Firewall' for Agent Inference.", "operationId": "validate_content_api_governance_validate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/governance/policy/active": { "get": { "tags": [ "governance" ], "summary": "Get Active Policy", "description": "Get the currently active governance policy (merged from context.txt + Gypsum).\nDefined by Strategy, not just 'Tone'.", "operationId": "get_active_policy_api_governance_policy_active_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/attribution/track": { "post": { "summary": "Track Event", "description": "Receive tracking events from websites and match to signals", "operationId": "track_event_api_attribution_track_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackingEvent" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/generate": { "post": { "summary": "Generate Attribution Link", "description": "Generate an attribution link for a signal", "operationId": "generate_attribution_link_api_attribution_generate_post", "parameters": [ { "name": "signal_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Signal Id" } }, { "name": "base_url", "in": "query", "required": true, "schema": { "type": "string", "title": "Base Url" } }, { "name": "param_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "ref", "title": "Param Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/funnel/{signal_id}": { "get": { "summary": "Get Attribution Funnel", "description": "Get the complete attribution funnel for a signal", "operationId": "get_attribution_funnel_api_attribution_funnel__signal_id__get", "parameters": [ { "name": "signal_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Signal Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/report": { "get": { "summary": "Get Attribution Report", "description": "Get attribution report for all signals", "operationId": "get_attribution_report_api_attribution_report_get", "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/prompts/generate": { "post": { "tags": [ "Intelligent Prompt Generation" ], "summary": "Generate Intelligent Prompts", "description": "Generate intelligent default prompts based on crawled content AND Gypsum persona data.\n\nThis endpoint analyzes your organization's crawled content, combines it with Gypsum\npersona insights and messaging frameworks to generate highly targeted, personalized\nprompts that speak directly to your target audience.\n\nNEW: Funnel-aware prompt generation! Specify a funnel_stage to get prompts optimized for:\n- TOFU (Top of Funnel): Awareness-stage content, educational and broad\n- MOFU (Middle of Funnel): Consideration-stage content, solution-focused\n- BOFU (Bottom of Funnel): Decision-stage content, product-specific and ROI-focused", "operationId": "generate_intelligent_prompts_api_prompts_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptGenerationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptGenerationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/prompts/sample": { "get": { "tags": [ "Intelligent Prompt Generation" ], "summary": "Get Sample Prompts", "description": "Get sample prompts showing Gypsum persona integration capabilities.\n\nOptionally specify a funnel_stage to see how prompts are tailored for different stages:\n- tofu: Awareness-stage educational content\n- mofu: Consideration-stage solution-focused content \n- bofu: Decision-stage implementation and ROI content", "operationId": "get_sample_prompts_api_prompts_sample_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "business_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Business Type" } }, { "name": "persona_role", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Role" } }, { "name": "funnel_stage", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/FunnelStage" }, { "type": "null" } ], "title": "Funnel Stage" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptGenerationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/prompts/health": { "get": { "tags": [ "Intelligent Prompt Generation" ], "summary": "Prompt Generation Health", "description": "Health check for enhanced prompt generation service", "operationId": "prompt_generation_health_api_prompts_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/pdfs/upload": { "post": { "tags": [ "PDFs" ], "summary": "Upload Pdf", "description": "Upload a PDF file. Processing is now separate and optional.\n\n- **file**: PDF file to upload (max 10MB)\n- **process_immediately**: Whether to queue processing immediately (default: False)\n- Returns upload status and optionally task information", "operationId": "upload_pdf_api_pdfs_upload_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_pdf_api_pdfs_upload_post" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "options": { "tags": [ "PDFs" ], "summary": "Upload Pdf Options", "description": "Handle OPTIONS preflight request for PDF upload", "operationId": "upload_pdf_options_api_pdfs_upload_options", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/pdfs/{pdf_id}/process": { "post": { "tags": [ "PDFs" ], "summary": "Process Pdf", "description": "Start processing a PDF that has been uploaded.\n\n- **pdf_id**: ID of the PDF to process\n- Returns task information for tracking progress", "operationId": "process_pdf_api_pdfs__pdf_id__process_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/{pdf_id}/status": { "get": { "tags": [ "PDFs" ], "summary": "Get Pdf Status", "description": "Get the processing status of a PDF, including real-time task progress.\n\n- **pdf_id**: ID of the PDF\n- Returns detailed status including task progress", "operationId": "get_pdf_status_api_pdfs__pdf_id__status_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/{pdf_id}/cancel": { "post": { "tags": [ "PDFs" ], "summary": "Cancel Pdf Processing", "description": "Cancel PDF processing if it's in progress.\n\n- **pdf_id**: ID of the PDF to cancel\n- Returns 204 if successful, 404 if not found", "operationId": "cancel_pdf_processing_api_pdfs__pdf_id__cancel_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/{pdf_id}/retry": { "post": { "tags": [ "PDFs" ], "summary": "Retry Pdf Processing", "description": "Retry processing a failed PDF.\n\n- **pdf_id**: ID of the PDF to retry\n- Returns new task information", "operationId": "retry_pdf_processing_api_pdfs__pdf_id__retry_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs": { "get": { "tags": [ "PDFs" ], "summary": "List Pdfs Root", "description": "List uploaded PDFs for the organization.\n\n- **status**: Filter by processing status (pending, processing, completed, failed)\n- **limit**: Maximum number of results (1-100)\n- **offset**: Offset for pagination\n- Returns list of PDFs with usage statistics", "operationId": "list_pdfs_root_api_pdfs_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "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" } } } } } } }, "/api/pdfs/{pdf_id}": { "delete": { "tags": [ "PDFs" ], "summary": "Delete Pdf", "description": "Delete a PDF and all associated data.\n\n- **pdf_id**: ID of the PDF to delete\n- Removes the PDF, its chunks, and updates usage tracking", "operationId": "delete_pdf_api_pdfs__pdf_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/{pdf_id}/chunks": { "get": { "tags": [ "PDFs" ], "summary": "Get Pdf Chunks", "description": "Get chunks for a specific PDF.\n\n- **pdf_id**: ID of the PDF\n- **page_number**: Optional filter by page number\n- Returns list of text chunks with metadata", "operationId": "get_pdf_chunks_api_pdfs__pdf_id__chunks_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } }, { "name": "page_number", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer", "minimum": 1 }, { "type": "null" } ], "title": "Page Number" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/{pdf_id}/analyze": { "post": { "tags": [ "PDFs" ], "summary": "Analyze Pdf", "description": "Generate AI analysis for a PDF.\n\n- **pdf_id**: ID of the PDF to analyze\n- **analysis_type**: Type of analysis ('summary', 'keywords', 'topics')\n- Returns analysis result with confidence score", "operationId": "analyze_pdf_api_pdfs__pdf_id__analyze_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pdf_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Pdf Id" } } ], "requestBody": { "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_analyze_pdf_api_pdfs__pdf_id__analyze_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/generate-content": { "post": { "tags": [ "PDFs" ], "summary": "Generate Content With Pdfs", "description": "Generate content using RAG with PDF context support.\n\n- **query**: Question or topic for content generation\n- **platform**: Target platform (twitter, instagram, etc.)\n- **tone**: Desired tone (professional, casual, etc.)\n- **pdf_ids**: Optional comma-separated list of PDF IDs to include in context\n- **domain**: Optional domain filter for web content\n- **content_type**: Optional content type filter\n- **top_k**: Number of chunks to retrieve (1-20)\n- Returns generated content with PDF and web source attribution", "operationId": "generate_content_with_pdfs_api_pdfs_generate_content_post", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_generate_content_with_pdfs_api_pdfs_generate_content_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneratedContent" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pdfs/health": { "get": { "tags": [ "PDFs" ], "summary": "Pdf Health Check", "description": "Health check for PDF functionality.\nVerifies that required dependencies are available.", "operationId": "pdf_health_check_api_pdfs_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/pdfs/test": { "get": { "tags": [ "PDFs" ], "summary": "Pdf Test Endpoint", "description": "Simple test endpoint to verify PDF router is working.", "operationId": "pdf_test_endpoint_api_pdfs_test_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/pdfs/{path}": { "options": { "tags": [ "PDFs" ], "summary": "Pdf Options Handler", "description": "Handle OPTIONS preflight requests for all PDF endpoints", "operationId": "pdf_options_handler_api_pdfs__path__options", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pdfs/usage": { "get": { "tags": [ "PDFs" ], "summary": "Get Pdf Usage", "description": "Get PDF usage statistics for the organization.\n\nReturns current usage against limits for the organization.", "operationId": "get_pdf_usage_api_pdfs_usage_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/google-drive/authorize": { "post": { "tags": [ "google-auth" ], "summary": "Get Authorization Url", "description": "Get Google OAuth2 authorization URL for user", "operationId": "get_authorization_url_api_auth_google_drive_authorize_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/google-drive/callback": { "post": { "tags": [ "google-auth" ], "summary": "Oauth Callback", "description": "Handle OAuth2 callback and store tokens", "operationId": "oauth_callback_api_auth_google_drive_callback_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__google_auth__CallbackRequest" } } }, "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/google-drive/disconnect": { "post": { "tags": [ "google-auth" ], "summary": "Disconnect Google Drive", "description": "Disconnect user's Google Drive", "operationId": "disconnect_google_drive_api_auth_google_drive_disconnect_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/notion/authorize": { "post": { "tags": [ "notion-auth" ], "summary": "Authorize Notion", "description": "Start Notion OAuth flow", "operationId": "authorize_notion_api_auth_notion_authorize_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/notion/callback": { "post": { "tags": [ "notion-auth" ], "summary": "Notion Callback", "description": "Handle Notion OAuth callback", "operationId": "notion_callback_api_auth_notion_callback_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__notion_integration__CallbackRequest" } } }, "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/notion/disconnect": { "post": { "tags": [ "notion-auth" ], "summary": "Disconnect Notion", "description": "Disconnect Notion workspace", "operationId": "disconnect_notion_api_auth_notion_disconnect_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/notion/status": { "get": { "tags": [ "notion" ], "summary": "Get Notion Status", "description": "Get Notion connection status", "operationId": "get_notion_status_api_notion_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/notion/config": { "put": { "tags": [ "notion" ], "summary": "Update Notion Config", "description": "Update Notion sync configuration", "operationId": "update_notion_config_api_notion_config_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotionConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/notion/sync": { "post": { "tags": [ "notion" ], "summary": "Sync Notion", "description": "Manually trigger Notion sync", "operationId": "sync_notion_api_notion_sync_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/webflow/connect": { "post": { "tags": [ "webflow-auth" ], "summary": "Connect Webflow", "description": "Connect a Webflow account using a Site API Token.\n\nCustomer generates token at: Webflow \u2192 Site Settings \u2192 Apps & Integrations \u2192 Generate API Token", "operationId": "connect_webflow_api_auth_webflow_connect_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/webflow/disconnect": { "post": { "tags": [ "webflow-auth" ], "summary": "Disconnect Webflow", "description": "Disconnect Webflow integration", "operationId": "disconnect_webflow_api_auth_webflow_disconnect_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/status": { "get": { "tags": [ "webflow" ], "summary": "Get Webflow Status", "description": "Get Webflow connection status", "operationId": "get_webflow_status_api_webflow_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/config": { "put": { "tags": [ "webflow" ], "summary": "Update Webflow Config", "description": "Update Webflow configuration (selected sites)", "operationId": "update_webflow_config_api_webflow_config_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebflowConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/sites": { "get": { "tags": [ "webflow" ], "summary": "List Webflow Sites", "description": "List all accessible Webflow sites", "operationId": "list_webflow_sites_api_webflow_sites_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/sites/{site_id}/collections": { "get": { "tags": [ "webflow" ], "summary": "List Site Collections", "description": "List CMS collections for a specific site", "operationId": "list_site_collections_api_webflow_sites__site_id__collections_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "site_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Site Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/webflow/collections/{collection_id}/items": { "get": { "tags": [ "Webflow" ], "summary": "List Items", "operationId": "list_items_api_webflow_collections__collection_id__items_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Collection Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Items Api Webflow Collections Collection Id Items Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Webflow" ], "summary": "Create Item", "operationId": "create_item_api_webflow_collections__collection_id__items_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Collection Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebflowItemCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Create Item Api Webflow Collections Collection Id Items Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/auth/hubspot/authorize": { "post": { "tags": [ "hubspot-auth" ], "summary": "Get Authorization Url", "description": "Get HubSpot OAuth authorization URL.\n\nState is stored server-side - the URL only contains a random token\nthat maps back to the authenticated user's org.", "operationId": "get_authorization_url_api_auth_hubspot_authorize_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/auth/hubspot/callback": { "post": { "tags": [ "hubspot-auth" ], "summary": "Oauth Callback", "description": "Handle OAuth callback and store tokens.\n\nValidates state token server-side to prevent CSRF/tampering.", "operationId": "oauth_callback_api_auth_hubspot_callback_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__hubspot_auth__CallbackRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/status": { "get": { "tags": [ "hubspot" ], "summary": "Get Hubspot Status", "description": "Check HubSpot integration status.\nReturns whether credentials are configured and connection is working.\n\nChecks both org-level settings (from CRM Integration) and env var.", "operationId": "get_hubspot_status_api_hubspot_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/hubspot/refresh": { "post": { "tags": [ "hubspot" ], "summary": "Refresh Token", "description": "Refresh the HubSpot access token.", "operationId": "refresh_token_api_hubspot_refresh_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/hubspot/disconnect": { "post": { "tags": [ "hubspot" ], "summary": "Disconnect Hubspot", "description": "Disconnect HubSpot integration.", "operationId": "disconnect_hubspot_api_hubspot_disconnect_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content/drive-status": { "get": { "tags": [ "content-export" ], "summary": "Get Drive Status", "description": "Get Google Drive connection status", "operationId": "get_drive_status_api_content_drive_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content/drive-health": { "get": { "tags": [ "content-export" ], "summary": "Check Google Drive Health", "description": "Check Google Drive API connection health", "operationId": "check_google_drive_health_api_content_drive_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content/drive-config": { "put": { "tags": [ "content-export" ], "summary": "Update Drive Config", "description": "Update Google Drive configuration", "operationId": "update_drive_config_api_content_drive_config_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DriveConfigRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content/export-to-drive": { "post": { "tags": [ "content-export" ], "summary": "Export Content To Google Drive", "description": "Export content to Google Drive", "operationId": "export_content_to_google_drive_api_content_export_to_drive_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportToGoogleDriveRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content/exports": { "get": { "tags": [ "content-export" ], "summary": "Get User Exports", "description": "Get list of user's exports", "operationId": "get_user_exports_api_content_exports_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "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" } } } } } } }, "/api/content/search": { "post": { "tags": [ "content-search" ], "summary": "Search Content", "description": "Basic content search for the UI. Currently uses the simple content summary.", "operationId": "search_content_api_content_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentSearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/voice-training/": { "post": { "tags": [ "Voice Training" ], "summary": "Add Training Data", "description": "Add new content for voice training", "operationId": "add_training_data_api_voice_training__post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingDataCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingDataResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Voice Training" ], "summary": "List Training Data", "description": "List all voice training data", "operationId": "list_training_data_api_voice_training__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrainingDataResponse" }, "title": "Response List Training Data Api Voice Training Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/voice-training/{training_id}": { "delete": { "tags": [ "Voice Training" ], "summary": "Delete Training Data", "description": "Delete voice training data", "operationId": "delete_training_data_api_voice_training__training_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "training_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Training Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/voice-training/analytics": { "get": { "tags": [ "Voice Training" ], "summary": "Get Voice Analytics", "description": "Get voice training analytics", "operationId": "get_voice_analytics_api_voice_training_analytics_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceAnalytics" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/voice-training/personas/{persona_id}": { "get": { "tags": [ "Voice Training" ], "summary": "Get Persona Training Data", "description": "Get all training data for a specific persona", "operationId": "get_persona_training_data_api_voice_training_personas__persona_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/voice-training/health": { "get": { "tags": [ "Voice Training" ], "summary": "Voice Training Health", "description": "Health check for voice training service", "operationId": "voice_training_health_api_voice_training_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/export/document": { "post": { "tags": [ "export" ], "summary": "Export Document", "description": "Export document to Google Drive", "operationId": "export_document_export_document_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__export__ExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/export/history": { "get": { "tags": [ "export" ], "summary": "Get Export History", "description": "Get export history for user", "operationId": "get_export_history_export_history_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/templates/": { "post": { "summary": "Create Template", "description": "Create a new marketing template", "operationId": "create_template_templates__post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "List Templates", "description": "List templates with optional filtering", "operationId": "list_templates_templates__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "platform", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform" } }, { "name": "tone", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tone" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purpose" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "default": 0, "title": "Offset" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateResponse" }, "title": "Response List Templates Templates Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/templates/search": { "post": { "summary": "Search Templates", "description": "Search templates with filters", "operationId": "search_templates_templates_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateSearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TemplateResponse" }, "type": "array", "title": "Response Search Templates Templates Search Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/templates/{template_id}": { "get": { "summary": "Get Template", "description": "Get a specific template", "operationId": "get_template_templates__template_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "summary": "Update Template", "description": "Update a template", "operationId": "update_template_templates__template_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Delete Template", "description": "Delete a template", "operationId": "delete_template_templates__template_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "template_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Template Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/templates/health": { "get": { "summary": "Templates Health", "description": "Health check for templates API - explicitly no auth required", "operationId": "templates_health_templates_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/templates/test-auth": { "get": { "summary": "Test Templates Auth", "description": "Test authentication for templates API", "operationId": "test_templates_auth_templates_test_auth_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-modulators": { "get": { "tags": [ "context-modulators" ], "summary": "List Modulators", "operationId": "list_modulators_api_context_modulators_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Response List Modulators Api Context Modulators Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "context-modulators" ], "summary": "Create Modulator", "operationId": "create_modulator_api_context_modulators_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModulatorCreate" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Create Modulator Api Context Modulators Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-modulators/{modulator_id}": { "get": { "tags": [ "context-modulators" ], "summary": "Get Modulator", "operationId": "get_modulator_api_context_modulators__modulator_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "modulator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Modulator Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Modulator Api Context Modulators Modulator Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "context-modulators" ], "summary": "Update Modulator", "operationId": "update_modulator_api_context_modulators__modulator_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "modulator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Modulator Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModulatorUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Update Modulator Api Context Modulators Modulator Id Patch" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "context-modulators" ], "summary": "Delete Modulator", "operationId": "delete_modulator_api_context_modulators__modulator_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "modulator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Modulator Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-modulators/canonical/streams": { "get": { "tags": [ "context-modulators" ], "summary": "List Canonical Streams", "description": "Return explicit canonical context streams for ontology/UI.", "operationId": "list_canonical_streams_api_context_modulators_canonical_streams_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Canonical Streams Api Context Modulators Canonical Streams Get" } } } } } } }, "/api/context-modulators/canonical/modulators": { "get": { "tags": [ "context-modulators" ], "summary": "List Canonical Modulators", "description": "Return explicit canonical modulators (epistemic shapers).", "operationId": "list_canonical_modulators_api_context_modulators_canonical_modulators_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Canonical Modulators Api Context Modulators Canonical Modulators Get" } } } } } } }, "/api/context-modulators/{modulator_id}/ontology": { "get": { "tags": [ "context-modulators" ], "summary": "Export Modulator Ontology", "description": "Export a single modulator and its linked streams/targets as JSON-LD for ontology ingestion.", "operationId": "export_modulator_ontology_api_context_modulators__modulator_id__ontology_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "modulator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Modulator Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Export Modulator Ontology Api Context Modulators Modulator Id Ontology Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-modulators/{modulator_id}/context": { "get": { "tags": [ "context-modulators" ], "summary": "Get Modulator Context", "description": "Return a structured bundle with core_context + modulated_context derived from RAG.\n- Retrieves evidence from vector embeddings (search_chunks)\n- Generates a shaped summary via LLM (generate_content)\n- Emits JSON-LD so ontology services can ingest the context view", "operationId": "get_modulator_context_api_context_modulators__modulator_id__context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "modulator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Modulator Id" } }, { "name": "target_node_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Ontology node to modulate (e.g., persona:head_of_product_marketing)", "title": "Target Node Id" }, "description": "Ontology node to modulate (e.g., persona:head_of_product_marketing)" }, { "name": "funnel_stage", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Funnel stage shaping hint", "title": "Funnel Stage" }, "description": "Funnel stage shaping hint" }, { "name": "risk_tolerance", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Risk tolerance shaping hint", "title": "Risk Tolerance" }, "description": "Risk tolerance shaping hint" }, { "name": "regulatory_sensitivity", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Regulatory sensitivity shaping hint", "title": "Regulatory Sensitivity" }, "description": "Regulatory sensitivity shaping hint" }, { "name": "stream_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Canonical stream id (e.g., CompanyIdentityStream)", "title": "Stream Type" }, "description": "Canonical stream id (e.g., CompanyIdentityStream)" }, { "name": "max_chunks", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "description": "How many RAG evidence chunks to return", "default": 5, "title": "Max Chunks" }, "description": "How many RAG evidence chunks to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Modulator Context Api Context Modulators Modulator Id Context Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/brand-standards/rules": { "get": { "tags": [ "brand-standards" ], "summary": "List Terminology Rules", "description": "List all terminology rules for the organization", "operationId": "list_terminology_rules_api_brand_standards_rules_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" } }, { "name": "is_active", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TerminologyRule" }, "title": "Response List Terminology Rules Api Brand Standards Rules Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "brand-standards" ], "summary": "Create Terminology Rule", "description": "Create a new terminology rule", "operationId": "create_terminology_rule_api_brand_standards_rules_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminologyRuleCreate" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminologyRule" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/brand-standards/rules/{rule_id}": { "get": { "tags": [ "brand-standards" ], "summary": "Get Terminology Rule", "description": "Get a specific terminology rule", "operationId": "get_terminology_rule_api_brand_standards_rules__rule_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "rule_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Rule Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminologyRule" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "brand-standards" ], "summary": "Update Terminology Rule", "description": "Update a terminology rule", "operationId": "update_terminology_rule_api_brand_standards_rules__rule_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "rule_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Rule Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminologyRuleUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminologyRule" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "brand-standards" ], "summary": "Delete Terminology Rule", "description": "Delete a terminology rule", "operationId": "delete_terminology_rule_api_brand_standards_rules__rule_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "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" } } } } } } }, "/api/brand-standards/validate": { "post": { "tags": [ "brand-standards" ], "summary": "Validate Content", "description": "Validate content against terminology rules.\nReturns violations and optionally auto-corrected text.", "operationId": "validate_content_api_brand_standards_validate_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content", "in": "query", "required": true, "schema": { "type": "string", "title": "Content" } }, { "name": "auto_correct", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Auto Correct" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/brand-standards/export": { "get": { "tags": [ "brand-standards" ], "summary": "Export Rules For Prompt", "description": "Export rules in a format suitable for system prompt injection.", "operationId": "export_rules_for_prompt_api_brand_standards_export_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RulesExport" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/brand-standards/rules/bulk": { "post": { "tags": [ "brand-standards" ], "summary": "Bulk Create Rules", "description": "Create multiple terminology rules at once", "operationId": "bulk_create_rules_api_brand_standards_rules_bulk_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TerminologyRuleCreate" }, "type": "array", "title": "Rules" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TerminologyRule" }, "type": "array", "title": "Response Bulk Create Rules Api Brand Standards Rules Bulk Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-versions/versions/{content_type}/{content_key}": { "get": { "tags": [ "content-versions" ], "summary": "Get Version History", "description": "Get version history for a specific content piece", "operationId": "get_version_history_api_content_versions_versions__content_type___content_key__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Type" } }, { "name": "content_key", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Key" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ContentVersion" }, "title": "Response Get Version History Api Content Versions Versions Content Type Content Key Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-versions/versions/{content_type}/{content_key}/current": { "get": { "tags": [ "content-versions" ], "summary": "Get Current Version", "description": "Get the current (latest) version of a content piece", "operationId": "get_current_version_api_content_versions_versions__content_type___content_key__current_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Type" } }, { "name": "content_key", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Key" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ContentVersion" }, { "type": "null" } ], "title": "Response Get Current Version Api Content Versions Versions Content Type Content Key Current Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-versions/versions": { "post": { "tags": [ "content-versions" ], "summary": "Create Version", "description": "Create a new version of content (automatically handles version numbering)", "operationId": "create_version_api_content_versions_versions_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentVersionCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentVersion" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-versions/versions/{version_id}/rollback": { "post": { "tags": [ "content-versions" ], "summary": "Rollback To Version", "description": "Rollback to a previous version (creates a new version with the old content)", "operationId": "rollback_to_version_api_content_versions_versions__version_id__rollback_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "version_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Version Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentVersion" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-versions/training-sessions": { "post": { "tags": [ "content-versions" ], "summary": "Create Training Session", "description": "Start a new training session", "operationId": "create_training_session_api_content_versions_training_sessions_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingSessionCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingSession" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "content-versions" ], "summary": "List Training Sessions", "description": "List training sessions for the org", "operationId": "list_training_sessions_api_content_versions_training_sessions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" } }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TrainingSession" }, "title": "Response List Training Sessions Api Content Versions Training Sessions Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-versions/training-sessions/{session_id}": { "patch": { "tags": [ "content-versions" ], "summary": "Update Training Session", "description": "Update a training session (add conversation, mark complete, etc.)", "operationId": "update_training_session_api_content_versions_training_sessions__session_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Session Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingSessionUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingSession" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-versions/all-current": { "get": { "tags": [ "content-versions" ], "summary": "Get All Current Versions", "description": "Get all current versions, optionally filtered by content type.\nReturns nested dict: {content_type: {content_key: version}}", "operationId": "get_all_current_versions_api_content_versions_all_current_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ContentVersion" } }, "title": "Response Get All Current Versions Api Content Versions All Current Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cncf-landscape/normalize": { "post": { "tags": [ "cncf-landscape" ], "summary": "Normalize Landscape", "operationId": "normalize_landscape_api_cncf_landscape_normalize_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LandscapeNormalizeRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Normalize Landscape Api Cncf Landscape Normalize Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cncf-landscape/health": { "get": { "tags": [ "cncf-landscape" ], "summary": "Health", "operationId": "health_api_cncf_landscape_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Health Api Cncf Landscape Health Get" } } } } } } }, "/api/reddit-lite/health": { "get": { "tags": [ "reddit-lite-signals" ], "summary": "Reddit Health", "description": "Check Reddit integration health", "operationId": "reddit_health_api_reddit_lite_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/reddit-lite/signals/discover": { "post": { "tags": [ "reddit-lite-signals" ], "summary": "Discover Reddit Signals", "description": "Discover Reddit signals by searching subreddits for keywords\nSimilar to GitHub discovery but for Reddit content", "operationId": "discover_reddit_signals_api_reddit_lite_signals_discover_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/reddit-lite/signals/discover-stream": { "post": { "tags": [ "reddit-lite-signals" ], "summary": "Discover Reddit Signals Stream", "operationId": "discover_reddit_signals_stream_api_reddit_lite_signals_discover_stream_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/reddit-lite/signals": { "get": { "tags": [ "reddit-lite-signals" ], "summary": "List Reddit Signals", "description": "List Reddit signals with filtering options", "operationId": "list_reddit_signals_api_reddit_lite_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "subreddit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Subreddit" } }, { "name": "keyword", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Keyword" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "reddit-lite-signals" ], "summary": "Delete All Reddit Signals", "description": "Delete all Reddit signals for the organization", "operationId": "delete_all_reddit_signals_api_reddit_lite_signals_delete", "security": [ { "HTTPBearer": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/reddit-lite/signals/summarize": { "post": { "tags": [ "reddit-lite-signals" ], "summary": "Summarize Reddit Signals", "description": "Generate AI summaries for Reddit signals (on demand).", "operationId": "summarize_reddit_signals_api_reddit_lite_signals_summarize_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/reddit-lite/users/{username}/follow": { "post": { "tags": [ "reddit-lite-signals" ], "summary": "Follow Reddit User", "description": "Follow a Reddit user (requires authenticated Reddit account)", "operationId": "follow_reddit_user_api_reddit_lite_users__username__follow_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string", "title": "Username" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/reddit-lite/sources": { "get": { "tags": [ "reddit-lite-signals" ], "summary": "Get Reddit Sources", "description": "Get configured Reddit sources for this organization", "operationId": "get_reddit_sources_api_reddit_lite_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/reddit-lite/mentions": { "get": { "tags": [ "reddit-lite-signals" ], "summary": "Get Competitor Reddit Mentions", "description": "Search Reddit for mentions of a competitor.\nUsed by the competitor dashboard to find Reddit discussions.\nSimilar to YouTube mentions endpoint.", "operationId": "get_competitor_reddit_mentions_api_reddit_lite_mentions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "description": "Competitor name to search for", "title": "Query" }, "description": "Competitor name to search for" }, { "name": "competitor_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Competitor ID for smart filtering", "title": "Competitor Id" }, "description": "Competitor ID for smart filtering" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/linkedin-signals/discover-stream": { "post": { "summary": "Discover Linkedin Signals Stream", "description": "Discover LinkedIn signals using Playwright-based browser automation.\nRedirects to Playwright implementation which bypasses authwall issues.", "operationId": "discover_linkedin_signals_stream_api_linkedin_signals_discover_stream_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/discover": { "post": { "summary": "Discover Linkedin Signals", "description": "Discover LinkedIn signals using built-in agent with user's session", "operationId": "discover_linkedin_signals_api_linkedin_signals_discover_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/": { "get": { "summary": "Get Linkedin Signals", "description": "Get stored LinkedIn signals/prospects from database", "operationId": "get_linkedin_signals_api_linkedin_signals__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "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/linkedin-signals/import-stream": { "post": { "summary": "Import Linkedin Signals Stream", "description": "Import LinkedIn posts/profiles and stream them into the signals database.", "operationId": "import_linkedin_signals_stream_api_linkedin_signals_import_stream_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/stats": { "get": { "summary": "Get Linkedin Stats", "description": "Get LinkedIn signals statistics", "operationId": "get_linkedin_stats_api_linkedin_signals_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/generate-response": { "post": { "summary": "Generate Linkedin Response", "description": "Generate AI response for LinkedIn prospect engagement", "operationId": "generate_linkedin_response_api_linkedin_signals_generate_response_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "signal_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Signal Id" } }, { "name": "tone", "in": "query", "required": false, "schema": { "type": "string", "default": "professional", "title": "Tone" } }, { "name": "response_type", "in": "query", "required": false, "schema": { "type": "string", "default": "linkedin_message", "title": "Response Type" } }, { "name": "include_context", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Context" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/linkedin-signals/session": { "post": { "summary": "Capture Linkedin Session", "description": "Capture LinkedIn session from browser extension or manual input\nStores session for future use", "operationId": "capture_linkedin_session_api_linkedin_signals_session_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Session Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/session-status": { "get": { "summary": "Check Linkedin Session", "description": "Check if user has a valid LinkedIn session configured", "operationId": "check_linkedin_session_api_linkedin_signals_session_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/enrichment-settings": { "get": { "summary": "Get Linkedin Enrichment Settings", "operationId": "get_linkedin_enrichment_settings_api_linkedin_signals_enrichment_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "summary": "Save Linkedin Enrichment Settings", "operationId": "save_linkedin_enrichment_settings_api_linkedin_signals_enrichment_settings_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Payload" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/discover-decision-makers": { "post": { "summary": "Discover Decision Makers From Target Graph", "description": "Discover decision-makers on LinkedIn at companies from Target Graph\nReturns all results at once (for backward compatibility)", "operationId": "discover_decision_makers_from_target_graph_api_linkedin_signals_discover_decision_makers_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/map-organization-step": { "post": { "summary": "Map Organization Step", "description": "Map one organization at a time for progressive UI updates\n\nRequest:\n- company_id: Target Graph organization ID to map\n- company_name: Company name\n- roles_to_find: List of role types ['decision_maker', 'team_lead', 'individual_contributor']\n- max_profiles: Max profiles to return per company", "operationId": "map_organization_step_api_linkedin_signals_map_organization_step_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-signals/test-agent": { "post": { "summary": "Test Linkedin Agent Connection", "description": "Test connection to LinkedIn agent and trigger a small discovery", "operationId": "test_linkedin_agent_connection_api_linkedin_signals_test_agent_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/capture-session": { "post": { "summary": "Capture Session", "description": "Capture LinkedIn session data from Chrome extension.", "operationId": "capture_session_capture_session_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionCaptureRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/test-search": { "post": { "summary": "Test Search", "description": "Test LinkedIn search functionality using captured session.\nThis is a placeholder - you'll need to implement actual LinkedIn API integration.", "operationId": "test_search_test_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/session-status": { "get": { "summary": "Get Session Status", "description": "Check if we have an active LinkedIn session.", "operationId": "get_session_status_session_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/get-session": { "get": { "summary": "Get Session", "description": "Get the stored LinkedIn session data for use by other endpoints.", "operationId": "get_session_get_session_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/discord/health": { "get": { "tags": [ "signals-discord" ], "summary": "Discord Health", "description": "Check Discord integration health", "operationId": "discord_health_api_signals_discord_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/discord/sources": { "get": { "tags": [ "signals-discord" ], "summary": "Get Discord Sources", "description": "Get configured Discord sources (servers to monitor) for this org", "operationId": "get_discord_sources_api_signals_discord_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "signals-discord" ], "summary": "Add Discord Source", "description": "Add a new Discord source (server to monitor)", "operationId": "add_discord_source_api_signals_discord_sources_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/discord/sources/{source_id}": { "put": { "tags": [ "signals-discord" ], "summary": "Update Discord Source", "description": "Update a Discord source configuration", "operationId": "update_discord_source_api_signals_discord_sources__source_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "signals-discord" ], "summary": "Delete Discord Source", "description": "Delete a Discord source", "operationId": "delete_discord_source_api_signals_discord_sources__source_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/discord/discover": { "post": { "tags": [ "signals-discord" ], "summary": "Discover Discord Signals", "description": "Discover signals from configured Discord servers.\nUses the org's configured sources from signal_sources table.", "operationId": "discover_discord_signals_api_signals_discord_discover_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/discord/signals": { "get": { "tags": [ "signals-discord" ], "summary": "Get Discord Signals", "description": "Get stored Discord signals for this org.", "operationId": "get_discord_signals_api_signals_discord_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "server", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by server name", "title": "Server" }, "description": "Filter by server name" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "default": 50, "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" } } } } } } }, "/api/signals/discord/stats": { "get": { "tags": [ "signals-discord" ], "summary": "Get Discord Stats", "description": "Get statistics for Discord signal discovery.", "operationId": "get_discord_stats_api_signals_discord_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-playwright/status": { "get": { "tags": [ "linkedin-playwright" ], "summary": "Get Status", "description": "Check Playwright browser connection status", "operationId": "get_status_api_linkedin_playwright_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/linkedin-playwright/check-login": { "get": { "tags": [ "linkedin-playwright" ], "summary": "Check Linkedin Login", "description": "Check if we're logged into LinkedIn", "operationId": "check_linkedin_login_api_linkedin_playwright_check_login_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/linkedin-playwright/search-people": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Search People", "description": "Search for people on LinkedIn", "operationId": "search_people_api_linkedin_playwright_search_people_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchPeopleRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-playwright/map-organization": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Map Organization", "description": "Map people at an organization.\n\nThis is the KILLER feature: find engineering leadership at a company,\noptionally matching GitHub usernames to LinkedIn profiles.", "operationId": "map_organization_api_linkedin_playwright_map_organization_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MapOrganizationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-playwright/search-content": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Search Content", "description": "Search for content/posts on LinkedIn", "operationId": "search_content_api_linkedin_playwright_search_content_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/linkedin-playwright/profile/{profile_id}": { "get": { "tags": [ "linkedin-playwright" ], "summary": "Get Profile", "description": "Get detailed profile information", "operationId": "get_profile_api_linkedin_playwright_profile__profile_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/linkedin-playwright/leadership-metrics/{profile_id}": { "get": { "tags": [ "linkedin-playwright" ], "summary": "Get Leadership Metrics", "description": "Get leadership metrics from a LinkedIn profile for GTM Intelligence Report.\nReturns: followers, connections, posts_30d, avg_engagement", "operationId": "get_leadership_metrics_api_linkedin_playwright_leadership_metrics__profile_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "profile_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Profile Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/linkedin-playwright/disconnect": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Disconnect Browser", "description": "Disconnect from the browser", "operationId": "disconnect_browser_api_linkedin_playwright_disconnect_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/linkedin-playwright/inject-session": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Inject Linkedin Session", "description": "Inject stored LinkedIn session cookies into the browser.\n\nThis loads cookies from .linkedin_sessions.json and injects them\ninto the Playwright browser context, enabling LinkedIn access\nwithout manual login.", "operationId": "inject_linkedin_session_api_linkedin_playwright_inject_session_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/linkedin-playwright/discover": { "post": { "tags": [ "linkedin-playwright" ], "summary": "Discover Signals Streaming", "description": "Discover LinkedIn signals using Playwright (streaming).\n\nThis replaces the old requests-based discovery that kept hitting authwall.\nRequires Chrome to be running with remote debugging and logged into LinkedIn.", "operationId": "discover_signals_streaming_api_linkedin_playwright_discover_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverSignalsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/companies": { "get": { "summary": "List Companies", "description": "Get all companies detected from GitHub signals", "operationId": "list_companies_api_companies_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/companies/{company_id}": { "get": { "summary": "Get Company Details", "description": "Get detailed information about a specific company", "operationId": "get_company_details_api_companies__company_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Company Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/companies/analyze": { "post": { "summary": "Analyze Github Signals For Companies", "description": "Analyze GitHub signals to detect companies and tech stacks", "operationId": "analyze_github_signals_for_companies_api_companies_analyze_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "force_refresh", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Force Refresh" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/companies/tech-stack/summary": { "get": { "summary": "Get Tech Stack Summary", "description": "Get a summary of tech stacks across all companies", "operationId": "get_tech_stack_summary_api_companies_tech_stack_summary_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/companies/{company_id}/interests": { "get": { "summary": "Get Company Interests", "description": "Get detailed analysis of a company's interests based on starred repositories", "operationId": "get_company_interests_api_companies__company_id__interests_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Company Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/companies/search": { "get": { "summary": "Search Companies", "description": "Search companies by name, tech stack, or other criteria", "operationId": "search_companies_api_companies_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "title": "Query" } }, { "name": "tech_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tech Filter" } }, { "name": "min_team_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Team Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/companies/health": { "get": { "summary": "Companies Health Check", "description": "Health check for company detection features", "operationId": "companies_health_check_api_companies_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/health": { "get": { "tags": [ "messaging-framework" ], "summary": "Gypsum Health", "description": "Check Gypsum API health and connection status.", "operationId": "gypsum_health_api_messaging_framework_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/messaging-framework/connection-status": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Connection Status", "description": "Get Gypsum connection status for the frontend.", "operationId": "get_connection_status_api_messaging_framework_connection_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/full-context": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Full Context", "description": "Get all context needed for content generation.\nPulls from ALL Context Streams for the organization.\nThis is the single endpoint the frontend should use.", "operationId": "get_full_context_api_messaging_framework_full_context_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/personas": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Personas", "description": "Get all personas for the current organization from Gypsum API.", "operationId": "get_personas_api_messaging_framework_personas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Response Get Personas Api Messaging Framework Personas Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "messaging-framework" ], "summary": "Create Persona", "description": "Create a new persona via Gypsum API.\nTODO: Implement persona creation via Gypsum API.", "operationId": "create_persona_api_messaging_framework_personas_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Persona Data" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Create Persona Api Messaging Framework Personas Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/personas/{persona_id}": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Persona", "description": "Get a specific persona by ID from Gypsum API.", "operationId": "get_persona_api_messaging_framework_personas__persona_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Persona Api Messaging Framework Personas Persona Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "messaging-framework" ], "summary": "Update Persona", "description": "Update a persona via Gypsum API.\nTODO: Implement persona updates via Gypsum API.", "operationId": "update_persona_api_messaging_framework_personas__persona_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Persona Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Update Persona Api Messaging Framework Personas Persona Id Put" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "messaging-framework" ], "summary": "Delete Persona", "description": "Delete a persona via Gypsum API.\nTODO: Implement persona deletion via Gypsum API.", "operationId": "delete_persona_api_messaging_framework_personas__persona_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" }, "title": "Response Delete Persona Api Messaging Framework Personas Persona Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/products": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Products", "description": "Get all products for the current organization from Gypsum API.", "operationId": "get_products_api_messaging_framework_products_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Products Api Messaging Framework Products Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/products/{product_id}": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Product", "description": "Get a specific product by ID from Gypsum API.", "operationId": "get_product_api_messaging_framework_products__product_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Product Api Messaging Framework Products Product Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/use-cases": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Use Cases", "description": "Get all use cases for the current organization from Gypsum API.", "operationId": "get_use_cases_api_messaging_framework_use_cases_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Use Cases Api Messaging Framework Use Cases Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/use-cases/{use_case_id}": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Use Case", "description": "Get a specific use case by ID from Gypsum API.", "operationId": "get_use_case_api_messaging_framework_use_cases__use_case_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "use_case_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Use Case Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Use Case Api Messaging Framework Use Cases Use Case Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/industries": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Industries", "description": "Get all industries for the current organization from Gypsum API.", "operationId": "get_industries_api_messaging_framework_industries_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Industries Api Messaging Framework Industries Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/industries/{industry_id}": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Industry", "description": "Get a specific industry by ID from Gypsum API.", "operationId": "get_industry_api_messaging_framework_industries__industry_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "industry_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Industry Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Industry Api Messaging Framework Industries Industry Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/messaging": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Messaging", "description": "Get messaging framework for the current organization from Gypsum API.", "operationId": "get_messaging_api_messaging_framework_messaging_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Messaging Api Messaging Framework Messaging Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/positioning": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Positioning", "description": "Get positioning framework for the current organization from Gypsum API.", "operationId": "get_positioning_api_messaging_framework_positioning_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Positioning Api Messaging Framework Positioning Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/testimonials": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Testimonials", "description": "Get testimonials for the current organization from Gypsum API.", "operationId": "get_testimonials_api_messaging_framework_testimonials_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Testimonials Api Messaging Framework Testimonials Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/testimonials/featured": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Featured Testimonials", "description": "Get featured testimonials for the current organization from Gypsum API.", "operationId": "get_featured_testimonials_api_messaging_framework_testimonials_featured_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Response Get Featured Testimonials Api Messaging Framework Testimonials Featured Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/messaging-framework/testimonials/{testimonial_id}": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Testimonial", "description": "Get a specific testimonial by ID from Gypsum API.", "operationId": "get_testimonial_api_messaging_framework_testimonials__testimonial_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "testimonial_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Testimonial Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Testimonial Api Messaging Framework Testimonials Testimonial Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/campaigns/{campaign_id}/context": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Campaign Context", "description": "Get campaign context from Gypsum API for content generation.", "operationId": "get_campaign_context_api_messaging_framework_campaigns__campaign_id__context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "campaign_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Campaign Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Campaign Context Api Messaging Framework Campaigns Campaign Id Context Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/messaging-framework/marketing-context": { "get": { "tags": [ "messaging-framework" ], "summary": "Get Complete Marketing Context", "description": "Get complete marketing context (all data) for the current organization from Gypsum API.\nThis is the most efficient way to get all Gypsum data in one call.", "operationId": "get_complete_marketing_context_api_messaging_framework_marketing_context_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Complete Marketing Context Api Messaging Framework Marketing Context Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/dashboard/summary": { "get": { "tags": [ "dashboard" ], "summary": "Get Dashboard Summary", "description": "Get high-level dashboard summary statistics.\nThis is the main dashboard view.", "operationId": "get_dashboard_summary_api_dashboard_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of days to look back", "default": 30, "title": "Days Back" }, "description": "Number of days to look back" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/active-companies": { "get": { "tags": [ "dashboard" ], "summary": "Get Active Companies", "description": "Get the most active companies based on recent signals.\nSimple view showing companies with the most activity.", "operationId": "get_active_companies_api_dashboard_active_companies_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of days to look back", "default": 7, "title": "Days Back" }, "description": "Number of days to look back" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of companies to return", "default": 10, "title": "Limit" }, "description": "Number of companies to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/recent-activity": { "get": { "tags": [ "dashboard" ], "summary": "Get Recent Activity", "description": "Get a feed of recent activity across all tracked entities.\nSimple timeline view of what's happening.", "operationId": "get_recent_activity_api_dashboard_recent_activity_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of activities to return", "default": 20, "title": "Limit" }, "description": "Number of activities to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/company/{company_id}": { "get": { "tags": [ "dashboard" ], "summary": "Get Company Detail", "description": "Get detailed view of a single company and its team.", "operationId": "get_company_detail_api_dashboard_company__company_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Company Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/people": { "get": { "tags": [ "dashboard" ], "summary": "Get People List", "description": "Get a list of all tracked people.", "operationId": "get_people_list_api_dashboard_people_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of people to return", "default": 20, "title": "Limit" }, "description": "Number of people to return" }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "description": "Offset for pagination", "default": 0, "title": "Offset" }, "description": "Offset for pagination" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/organizations": { "get": { "tags": [ "dashboard" ], "summary": "Get Organizations List", "description": "Get a list of all organizations with velocity metrics.", "operationId": "get_organizations_list_api_dashboard_organizations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of organizations to return", "default": 100, "title": "Limit" }, "description": "Number of organizations to return" }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "description": "Offset for pagination", "default": 0, "title": "Offset" }, "description": "Offset for pagination" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "dashboard" ], "summary": "Create Organization", "description": "Create a new organization manually.", "operationId": "create_organization_api_dashboard_organizations_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Org Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/sync-signals": { "post": { "tags": [ "dashboard" ], "summary": "Sync Signals To Target Graph", "description": "Sync recent signals into the target graph.\nThis processes raw signals and creates Person/Organization records.\nNow also detects tech stacks from signal content.", "operationId": "sync_signals_to_target_graph_api_dashboard_sync_signals_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of signals to process", "default": 100, "title": "Limit" }, "description": "Number of signals to process" }, { "name": "detect_tech", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Detect tech stacks", "default": true, "title": "Detect Tech" }, "description": "Detect tech stacks" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/agent/sync-signals": { "post": { "tags": [ "dashboard" ], "summary": "Sync Signals With Agent", "operationId": "sync_signals_with_agent_api_dashboard_agent_sync_signals_post", "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of signals to process", "default": 100, "title": "Limit" }, "description": "Number of signals to process" }, { "name": "detect_tech", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Detect tech stacks", "default": true, "title": "Detect Tech" }, "description": "Detect tech stacks" }, { "name": "X-Agent-API-Key", "in": "header", "required": true, "schema": { "type": "string", "title": "X-Agent-Api-Key" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/organizations/{org_id}/tech-stack": { "get": { "tags": [ "dashboard" ], "summary": "Get Organization Tech Stack", "description": "Get the detected tech stack for an organization.", "operationId": "get_organization_tech_stack_api_dashboard_organizations__org_id__tech_stack_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" } } } } } } }, "/api/dashboard/detect-tech-stacks": { "post": { "tags": [ "dashboard" ], "summary": "Detect All Tech Stacks", "description": "Detect tech stacks for organizations that don't have them yet.", "operationId": "detect_all_tech_stacks_api_dashboard_detect_tech_stacks_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of organizations to process", "default": 10, "title": "Limit" }, "description": "Number of organizations to process" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/people/{person_id}": { "patch": { "tags": [ "dashboard" ], "summary": "Update Person", "description": "Update a person's information, including organization assignment.", "operationId": "update_person_api_dashboard_people__person_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "person_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Person Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Update Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/dashboard/health": { "get": { "tags": [ "dashboard" ], "summary": "Dashboard Health", "description": "Health check for dashboard API", "operationId": "dashboard_health_api_dashboard_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/github-orgs/organizations": { "get": { "tags": [ "github-org-intelligence" ], "summary": "List Github Organizations", "description": "List GitHub organizations with intelligence and target counts", "operationId": "list_github_organizations_api_github_orgs_organizations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "search", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search organization names", "title": "Search" }, "description": "Search organization names" }, { "name": "min_targets", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Minimum target count", "title": "Min Targets" }, "description": "Minimum target count" }, { "name": "min_members", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Minimum member count", "title": "Min Members" }, "description": "Minimum member count" }, { "name": "topic_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by topic (e.g., 'fintech', 'kubernetes')", "title": "Topic Filter" }, "description": "Filter by topic (e.g., 'fintech', 'kubernetes')" }, { "name": "company_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by company size category", "title": "Company Size" }, "description": "Filter by company size category" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort by: target_count, member_count, followers, relevance_score", "default": "target_count", "title": "Sort By" }, "description": "Sort by: target_count, member_count, followers, relevance_score" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/github-orgs/organizations/{login}": { "get": { "tags": [ "github-org-intelligence" ], "summary": "Get Github Organization Details", "description": "Get detailed information about a specific GitHub organization", "operationId": "get_github_organization_details_api_github_orgs_organizations__login__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "login", "in": "path", "required": true, "schema": { "type": "string", "title": "Login" } }, { "name": "include_targets", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include target list", "default": true, "title": "Include Targets" }, "description": "Include target list" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/github-orgs/stats": { "get": { "tags": [ "github-org-intelligence" ], "summary": "Get Github Org Stats", "description": "Get comprehensive GitHub organization intelligence statistics", "operationId": "get_github_org_stats_api_github_orgs_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/github-orgs/refresh-intelligence": { "post": { "tags": [ "github-org-intelligence" ], "summary": "Refresh Github Org Intelligence", "description": "Refresh GitHub organization intelligence (runs in background)", "operationId": "refresh_github_org_intelligence_api_github_orgs_refresh_intelligence_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "github_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional GitHub token for higher rate limits", "title": "Github Token" }, "description": "Optional GitHub token for higher rate limits" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/github-orgs/topics": { "get": { "tags": [ "github-org-intelligence" ], "summary": "List Popular Topics", "description": "List most popular topics across tracked GitHub organizations", "operationId": "list_popular_topics_api_github_orgs_topics_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "min_org_count", "in": "query", "required": false, "schema": { "type": "integer", "description": "Minimum number of organizations using this topic", "default": 1, "title": "Min Org Count" }, "description": "Minimum number of organizations using this topic" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/github-orgs/company-sizes": { "get": { "tags": [ "github-org-intelligence" ], "summary": "Get Company Size Distribution", "description": "Get distribution of company sizes we're tracking", "operationId": "get_company_size_distribution_api_github_orgs_company_sizes_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/search": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Hybrid Search", "description": "Enhanced search endpoint using hybrid retrieval strategies.\n\nAccepts EITHER a Clerk session OR an org-scoped API key (vio_...), so\nserver-to-server callers (e.g. the agency-os strategy agents) can ground\nagainst a specific org's context. org_id is taken from the auth context \u2014\nan API key is bound to exactly one org, so retrieval stays tenant-isolated.", "operationId": "hybrid_search_api_rag_search_post", "parameters": [ { "name": "Authorization", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HybridSearchRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HybridSearchResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/rag/generate-stream": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Generate Content Stream", "description": "Stream content generation with real-time output like Jasper.\n\nReturns a streaming response where content appears word-by-word\nas it's being generated by Claude.", "operationId": "generate_content_stream_api_rag_generate_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithHybridRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/generate": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Generate With Hybrid Rag", "description": "Enhanced content generation using hybrid RAG for context retrieval.\n\nThis endpoint uses the hybrid search to gather relevant context,\nthen generates content using the retrieved information.", "operationId": "generate_with_hybrid_rag_api_rag_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithHybridRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithHybridResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/generate-with-gypsum": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Generate With Gypsum And Rag Non Stream", "description": "NON-STREAMING content generation using Gypsum + RAG.\nReturns complete content in a single response.", "operationId": "generate_with_gypsum_and_rag_non_stream_api_rag_generate_with_gypsum_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithGypsumRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithGypsumResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/strategies": { "get": { "tags": [ "Enhanced RAG" ], "summary": "Get Available Strategies", "description": "Get information about available search strategies.", "operationId": "get_available_strategies_api_rag_strategies_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/rag/stats/{org_id}": { "get": { "tags": [ "Enhanced RAG" ], "summary": "Get Rag Statistics", "description": "Get RAG statistics for an organization.\n\nReturns information about content availability, embeddings, and readiness.", "operationId": "get_rag_statistics_api_rag_stats__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" } } } } } } }, "/api/rag/debug/search": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Debug Search Strategies", "description": "Debug endpoint to test individual search strategies.\n\nReturns results from each strategy separately for comparison and debugging.", "operationId": "debug_search_strategies_api_rag_debug_search_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "description": "Search query to debug", "title": "Query" }, "description": "Search query to debug" }, { "name": "org_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Organization ID", "title": "Org Id" }, "description": "Organization ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/rag/generate-with-gypsum-stream": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Generate With Gypsum And Rag Stream", "description": "Enhanced streaming content generation using both Gypsum and RAG with real-time output.", "operationId": "generate_with_gypsum_and_rag_stream_api_rag_generate_with_gypsum_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithGypsumRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/sync-gypsum": { "post": { "tags": [ "Enhanced RAG" ], "summary": "Sync Gypsum To Rag", "description": "Sync Gypsum messaging framework data into RAG pipeline.\n\nThis creates the messaging foundation by indexing:\n- Brand messaging and positioning\n- Product information and use cases\n- Personas and testimonials\n\nThis data becomes the core knowledge base that's supplemented\nby website crawls, PDFs, and other content.", "operationId": "sync_gypsum_to_rag_api_rag_sync_gypsum_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/rag/gypsum-sync-status": { "get": { "tags": [ "Enhanced RAG" ], "summary": "Get Gypsum Sync Status", "description": "Check if Gypsum data has been synced to RAG and when.", "operationId": "get_gypsum_sync_status_api_rag_gypsum_sync_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/video-scripts/generate": { "post": { "tags": [ "Video Script Generation" ], "summary": "Generate Video Script", "description": "Generate a NextTechStack video script using VoiceForge content.\n\nThis endpoint analyzes your organization's crawled content to create\na professional B2B tech video script suitable for NextTechStack channel.", "operationId": "generate_video_script_api_video_scripts_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VideoScriptRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VideoScriptResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/video-scripts/companies": { "get": { "tags": [ "Video Script Generation" ], "summary": "Get Available Companies", "description": "Get list of companies available for video script generation.\n\nReturns companies in your VoiceForge database with sufficient content\nfor creating quality video scripts.", "operationId": "get_available_companies_api_video_scripts_companies_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/video-scripts/templates": { "get": { "tags": [ "Video Script Generation" ], "summary": "Get Script Templates", "description": "Get available video script templates.\n\nReturns the different funnel stages and styles available for video generation.", "operationId": "get_script_templates_api_video_scripts_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/video-scripts/health": { "get": { "tags": [ "Video Script Generation" ], "summary": "Video Script Health", "description": "Health check for video script generation service", "operationId": "video_script_health_api_video_scripts_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/ai-assistant/": { "post": { "tags": [ "ai-assistant" ], "summary": "Chat With Assistant", "description": "Chat with the AI assistant", "operationId": "chat_with_assistant_api_ai_assistant__post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssistantRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ai-assistant/suggestions": { "post": { "tags": [ "ai-assistant" ], "summary": "Get Suggestions", "description": "Get contextual suggestions based on current state", "operationId": "get_suggestions_api_ai_assistant_suggestions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ai-assistant/intro-prompts": { "get": { "tags": [ "ai-assistant" ], "summary": "Get Intro Prompts", "description": "Get organization-specific suggested prompts for the assistant intro screen.", "operationId": "get_intro_prompts_api_ai_assistant_intro_prompts_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ai-assistant/train": { "post": { "tags": [ "ai-assistant" ], "summary": "Train Content", "description": "Training endpoint for active learning on content.\nStreams regenerated content and extracts terminology rules from feedback.", "operationId": "train_content_api_ai_assistant_train_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ai-assistant/train/apply-rules": { "post": { "tags": [ "ai-assistant" ], "summary": "Apply Training Rules", "description": "Apply detected rules from training session to Brand Standards.\nCalled when user approves rules from the training drawer.", "operationId": "apply_training_rules_api_ai_assistant_train_apply_rules_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Rules" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/domains": { "get": { "tags": [ "domains" ], "summary": "List Domains", "description": "Return the domains that already exist in the content index for this org.", "operationId": "list_domains_api_domains_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Response List Domains Api Domains Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/well-known/context.txt": { "get": { "tags": [ "well-known" ], "summary": "Generate Context Txt", "description": "Generate a dynamic context.txt file for the user's organization.\n\nThis is the \"shadow web\" - a semantic layer for AI agents that parallels\nthe human-readable website. Includes:\n- Identity & governance\n- Knowledge graph (entities & relationships)\n- Context streams\n- Agent guidance", "operationId": "generate_context_txt_api_well_known_context_txt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/well-known/llms.txt": { "get": { "tags": [ "well-known" ], "summary": "Generate Llms Txt", "description": "Generate a dynamic llms.txt file for the user's domain.\n\nThis file instructs AI agents on:\n- How to navigate the knowledge graph\n- Available context streams and their purposes\n- Semantic relationships to understand\n- Best practices for content generation", "operationId": "generate_llms_txt_api_well_known_llms_txt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/well-known/ontology.jsonld": { "get": { "tags": [ "well-known" ], "summary": "Generate Ontology Jsonld", "description": "Generate a JSON-LD ontology file for machine parsing.\n\nThis is the fully structured, machine-readable version of the knowledge graph\nthat AI agents can parse directly for semantic understanding.", "operationId": "generate_ontology_jsonld_api_well_known_ontology_jsonld_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/well-known/trust.txt": { "get": { "tags": [ "well-known" ], "summary": "Generate Trust Txt", "description": "Generate a trust.txt file for the user's organization.\nDeclares security posture and verifiable credentials.", "operationId": "generate_trust_txt_api_well_known_trust_txt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/well-known/generate-both": { "post": { "tags": [ "well-known" ], "summary": "Generate Well Known Files", "description": "Generate both context.txt and llms.txt files with custom configuration.", "operationId": "generate_well_known_files_api_well_known_generate_both_post", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-generation/generate": { "post": { "tags": [ "Video Generation" ], "summary": "Generate Complete Video", "description": "Generate a complete NextTechStack video from script to final video.\n\nThis endpoint:\n1. Analyzes your VoiceForge content to generate a script\n2. Creates a professional video using HeyGen AI avatars\n3. Returns video ID for status tracking and download", "operationId": "generate_complete_video_api_video_generation_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VideoGenerationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VideoGenerationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/video-generation/status/{video_id}": { "get": { "tags": [ "Video Generation" ], "summary": "Get Video Status", "description": "Get the status of video generation.\n\nReturns current status, progress, and download URL when complete.", "operationId": "get_video_status_api_video_generation_status__video_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } }, { "name": "heygen_video_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Heygen Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VideoGenerationStatus" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-generation/avatars": { "get": { "tags": [ "Video Generation" ], "summary": "Get Available Avatars", "description": "Get list of available HeyGen avatars for video generation.", "operationId": "get_available_avatars_api_video_generation_avatars_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/video-generation/templates": { "get": { "tags": [ "Video Generation" ], "summary": "Get Video Templates", "description": "Get available video templates and settings.", "operationId": "get_video_templates_api_video_generation_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/video-generation/health": { "get": { "tags": [ "Video Generation" ], "summary": "Video Generation Health", "description": "Health check for video generation service", "operationId": "video_generation_health_api_video_generation_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/video-script-management/save": { "post": { "tags": [ "Video Script Management" ], "summary": "Save Video Script", "description": "Save a generated video script for review and editing.\n\nThis allows users to review AI-generated scripts before creating videos.", "operationId": "save_video_script_api_video_script_management_save_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveVideoScriptRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedVideoScriptDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/video-script-management/scripts": { "get": { "tags": [ "Video Script Management" ], "summary": "Get Saved Scripts", "description": "Get user's saved video scripts.\n\nOptionally filter by status: draft, under_review, approved, rejected", "operationId": "get_saved_scripts_api_video_script_management_scripts_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VideoScriptSummary" }, "title": "Response Get Saved Scripts Api Video Script Management Scripts Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-script-management/scripts/{script_id}": { "get": { "tags": [ "Video Script Management" ], "summary": "Get Script Detail", "description": "Get detailed view of a specific saved script.", "operationId": "get_script_detail_api_video_script_management_scripts__script_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "script_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Script Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedVideoScriptDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Video Script Management" ], "summary": "Edit Video Script", "description": "Edit a saved video script.\n\nThis resets the script status to 'draft' after editing.", "operationId": "edit_video_script_api_video_script_management_scripts__script_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "script_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Script Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditVideoScriptRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedVideoScriptDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-script-management/scripts/{script_id}/review": { "post": { "tags": [ "Video Script Management" ], "summary": "Review Video Script", "description": "Review a video script (approve, reject, or request revision).\n\nAvailable statuses: approved, rejected, needs_revision", "operationId": "review_video_script_api_video_script_management_scripts__script_id__review_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "script_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Script Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReviewVideoScriptRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SavedVideoScriptDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-script-management/scripts/{script_id}/generate-video": { "post": { "tags": [ "Video Script Management" ], "summary": "Generate Video From Script", "description": "Generate video from an approved script.\n\nThis endpoint creates a video using the saved script content.", "operationId": "generate_video_from_script_api_video_script_management_scripts__script_id__generate_video_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "script_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Script Id" } }, { "name": "avatar_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "default_presenter", "title": "Avatar Id" } }, { "name": "voice_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "professional_male", "title": "Voice Id" } }, { "name": "background_style", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "office", "title": "Background Style" } }, { "name": "template_style", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "dynamic", "title": "Template Style" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/video-script-management/health": { "get": { "tags": [ "Video Script Management" ], "summary": "Video Script Management Health", "description": "Health check for video script management service", "operationId": "video_script_management_health_api_video_script_management_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/discovery/config": { "get": { "tags": [ "unified-discovery" ], "summary": "Get Discovery Config", "description": "Get current discovery configuration", "operationId": "get_discovery_config_api_discovery_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "unified-discovery" ], "summary": "Create Or Update Discovery Config", "description": "Create or update daily discovery configuration", "operationId": "create_or_update_discovery_config_api_discovery_config_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryConfigRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "delete": { "tags": [ "unified-discovery" ], "summary": "Delete Discovery Config", "description": "Delete discovery configuration and cancel scheduled jobs", "operationId": "delete_discovery_config_api_discovery_config_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/discovery/run-now": { "post": { "tags": [ "unified-discovery" ], "summary": "Run Discovery Now", "description": "Run discovery immediately (respects 24-hour limit unless forced)", "operationId": "run_discovery_now_api_discovery_run_now_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "force", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Force" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/discovery/status": { "get": { "tags": [ "unified-discovery" ], "summary": "Get Discovery Status", "description": "Get discovery schedule status and last run info", "operationId": "get_discovery_status_api_discovery_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/discovery/history": { "get": { "tags": [ "unified-discovery" ], "summary": "Get Discovery History", "description": "Get history of discovery runs", "operationId": "get_discovery_history_api_discovery_history_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/discovery/test-digest": { "post": { "tags": [ "unified-discovery" ], "summary": "Test Digest", "description": "Send a test digest to configured channels", "operationId": "test_digest_api_discovery_test_digest_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/discovery/insights": { "get": { "tags": [ "discovery" ], "summary": "Get Discovery Insights", "description": "Get latest discovery insights, patterns, and predictions.\n\nArgs:\n limit: Maximum number of items to return per category\n days_back: Number of days to look back for insights\n db: Database session\n current_user: Current authenticated user\n\nReturns:\n Overview of discovery system with latest insights", "operationId": "get_discovery_insights_api_discovery_insights_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Limit" } }, { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "default": 7, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryOverview" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/discovery/sources": { "get": { "tags": [ "discovery" ], "summary": "Get Discovery Sources", "description": "Get all discovery sources and their current state.\n\nArgs:\n active_only: Only return active sources\n db: Database session\n current_user: Current authenticated user\n\nReturns:\n List of discovery sources with their state", "operationId": "get_discovery_sources_api_discovery_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "active_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Active Only" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DiscoveryStateResponse" }, "title": "Response Get Discovery Sources Api Discovery Sources Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/discovery/insights/{insight_id}/action": { "post": { "tags": [ "discovery" ], "summary": "Mark Insight Action Taken", "description": "Mark that action has been taken on an insight.\n\nArgs:\n insight_id: ID of the insight\n db: Database session\n current_user: Current authenticated user\n\nReturns:\n Success message", "operationId": "mark_insight_action_taken_api_discovery_insights__insight_id__action_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "insight_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Insight Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/discovery/patterns/{pattern_type}": { "get": { "tags": [ "discovery" ], "summary": "Get Patterns By Type", "description": "Get discovery patterns by type.\n\nArgs:\n pattern_type: Type of pattern (team_formation, migration, velocity_change)\n limit: Maximum number of patterns to return\n db: Database session\n current_user: Current authenticated user\n\nReturns:\n List of patterns of the specified type", "operationId": "get_patterns_by_type_api_discovery_patterns__pattern_type__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pattern_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Pattern Type" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/process": { "post": { "tags": [ "context-intelligence" ], "summary": "Process Content With Intelligence", "description": "Process content with intelligent metadata extraction and flexible chunking\n\nThis endpoint:\n- Extracts rich metadata using AI and patterns\n- Creates multiple chunk versions (standard, micro, 18-token)\n- Suggests and optionally creates context streams\n- Stores everything for retrieval", "operationId": "process_content_with_intelligence_api_context_intelligence_process_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/process/immediate": { "post": { "tags": [ "context-intelligence" ], "summary": "Process Content Immediate", "description": "Process content immediately (for smaller content)", "operationId": "process_content_immediate_api_context_intelligence_process_immediate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/streams": { "get": { "tags": [ "context-intelligence" ], "summary": "List Context Streams", "description": "List available context streams", "operationId": "list_context_streams_api_context_intelligence_streams_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "include_public", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include public streams", "default": true, "title": "Include Public" }, "description": "Include public streams" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "context-intelligence" ], "summary": "Create Context Stream", "description": "Create a new context stream", "operationId": "create_context_stream_api_context_intelligence_streams_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateStreamRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/streams/gypsum-messaging": { "post": { "tags": [ "context-intelligence" ], "summary": "Refresh Gypsum Messaging Stream", "description": "Refresh the Gypsum messaging framework context stream.\n\nOptionally pass version_metadata to track training rationale:\n{\n \"version_metadata\": {\n \"Headline\": {\"content_version_id\": \"uuid\", \"change_rationale\": \"Updated per brand guidelines\"},\n \"Persona: CTO\": {\"content_version_id\": \"uuid\", \"change_rationale\": \"Refined pain points\"}\n },\n \"change_source\": \"training\",\n \"change_rationale\": \"Bulk update after training session\"\n}", "operationId": "refresh_gypsum_messaging_stream_api_context_intelligence_streams_gypsum_messaging_post", "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/GypsumSyncRequest" }, { "type": "null" } ], "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/streams/competitor-intelligence": { "post": { "tags": [ "context-intelligence" ], "summary": "Refresh Competitor Intelligence Stream", "description": "Refresh the Competitive Intelligence context stream.\n\nThis endpoint:\n1. Ensures the Competitive Intelligence stream exists\n2. Re-ingests all active competitors into the context stream\n3. Generates embeddings for competitor chunks\n\nUse this to sync competitor data into the context system after:\n- Adding new competitors via /api/competitors\n- Running competitor scans\n- Periodic refresh", "operationId": "refresh_competitor_intelligence_stream_api_context_intelligence_streams_competitor_intelligence_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/streams/{stream_id}/touch": { "post": { "tags": [ "context-intelligence" ], "summary": "Touch Context Stream", "description": "Touch a context stream to refresh the 'last_accessed' timestamp.", "operationId": "touch_context_stream_api_context_intelligence_streams__stream_id__touch_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stream Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/streams/{stream_id}/refresh": { "post": { "tags": [ "context-intelligence" ], "summary": "Refresh Context Stream", "description": "Rebuilds the chunk/embedding data for a context stream.", "operationId": "refresh_context_stream_api_context_intelligence_streams__stream_id__refresh_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stream Id" } }, { "name": "chunk_size", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer", "minimum": 50 }, { "type": "null" } ], "description": "Override chunk size (tokens)", "title": "Chunk Size" }, "description": "Override chunk size (tokens)" }, { "name": "chunk_overlap", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ], "description": "Override chunk overlap (tokens)", "title": "Chunk Overlap" }, "description": "Override chunk overlap (tokens)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/streams/{stream_id}/purge": { "post": { "tags": [ "context-intelligence" ], "summary": "Purge Context Stream", "description": "Purge all derived content for a stream \u2014 chunks, embeddings, versions \u2014\nwhile keeping the stream so Refresh can repopulate it. Tenant-scoped.", "operationId": "purge_context_stream_api_context_intelligence_streams__stream_id__purge_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stream Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/streams/{stream_id}": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Stream Detail", "description": "Get detailed information about a specific stream including quality metrics", "operationId": "get_stream_detail_api_context_intelligence_streams__stream_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stream Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/streams/{stream_id}/context": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Stream Context", "description": "Get context chunks for a specific stream", "operationId": "get_stream_context_api_context_intelligence_streams__stream_id__context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Stream Id" } }, { "name": "query", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Additional query filter", "title": "Query" }, "description": "Additional query filter" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Maximum chunks to return", "default": 50, "title": "Limit" }, "description": "Maximum chunks to return" }, { "name": "token_limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Maximum total tokens", "default": 2000, "title": "Token Limit" }, "description": "Maximum total tokens" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/context.txt": { "get": { "tags": [ "context-intelligence" ], "summary": "Generate Context Txt", "description": "Generate context.txt file for AI agents", "operationId": "generate_context_txt_api_context_intelligence_context_txt_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "stream_ids", "in": "query", "required": true, "schema": { "type": "array", "items": { "type": "string" }, "description": "Context stream IDs", "title": "Stream Ids" }, "description": "Context stream IDs" }, { "name": "purpose", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Purpose of context", "title": "Purpose" }, "description": "Purpose of context" }, { "name": "technical_level", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Technical level", "default": "intermediate", "title": "Technical Level" }, "description": "Technical level" }, { "name": "industry", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Industry focus", "title": "Industry" }, "description": "Industry focus" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/chunks/optimize": { "post": { "tags": [ "context-intelligence" ], "summary": "Optimize Chunk", "description": "Optimize a chunk for specific token window (including 18-token challenge)", "operationId": "optimize_chunk_api_context_intelligence_chunks_optimize_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkOptimizationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/chunks/rerank": { "post": { "tags": [ "context-intelligence" ], "summary": "Rerank Chunks", "description": "Rerank chunks based on custom criteria", "operationId": "rerank_chunks_api_context_intelligence_chunks_rerank_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RerankRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/chunks/override-ranking": { "post": { "tags": [ "context-intelligence" ], "summary": "Override Chunk Ranking", "description": "Override ranking for specific chunk", "operationId": "override_chunk_ranking_api_context_intelligence_chunks_override_ranking_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RankingOverrideRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/analytics/metadata-coverage": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Metadata Coverage", "description": "Get analytics on metadata coverage across content", "operationId": "get_metadata_coverage_api_context_intelligence_analytics_metadata_coverage_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-intelligence/task/{task_id}": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Task Status", "description": "Get status of async task", "operationId": "get_task_status_api_context_intelligence_task__task_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "task_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Task Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/chunks/versions/{block_label}": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Chunk Version History", "description": "Get version history for a specific content block (e.g., 'Headline', 'Persona: CTO')", "operationId": "get_chunk_version_history_api_context_intelligence_chunks_versions__block_label__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "block_label", "in": "path", "required": true, "schema": { "type": "string", "title": "Block Label" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-intelligence/chunks/current": { "get": { "tags": [ "context-intelligence" ], "summary": "Get Current Chunks", "description": "Get all current (latest version) chunks, optionally filtered by content_type", "operationId": "get_current_chunks_api_context_intelligence_chunks_current_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/strategy/health": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "Health", "operationId": "health_api_v1_strategy_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/v1/strategy/engagements": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "List Engagements", "operationId": "list_engagements_api_v1_strategy_engagements_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "Strategy Pipeline" ], "summary": "Create Engagement", "operationId": "create_engagement_api_v1_strategy_engagements_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/v1/strategy/usage": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "Usage", "description": "Per-user + per-source token usage for the caller's org (metering/cost).", "operationId": "usage_api_v1_strategy_usage_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/strategy/org-key": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "Get Org Key", "description": "Whether this org runs on its own Anthropic key (BYOK) or the platform key.", "operationId": "get_org_key_api_v1_strategy_org_key_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "Strategy Pipeline" ], "summary": "Set Org Key", "operationId": "set_org_key_api_v1_strategy_org_key_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "delete": { "tags": [ "Strategy Pipeline" ], "summary": "Clear Org Key", "description": "Remove BYOK \u2192 fall back to the platform key.", "operationId": "clear_org_key_api_v1_strategy_org_key_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/v1/strategy/engagements/{engagement_id}": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "Get Engagement", "operationId": "get_engagement_api_v1_strategy_engagements__engagement_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "engagement_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Engagement Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/strategy/engagements/{engagement_id}/run": { "post": { "tags": [ "Strategy Pipeline" ], "summary": "Run", "operationId": "run_api_v1_strategy_engagements__engagement_id__run_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "engagement_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Engagement Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/strategy/engagements/{engagement_id}/resume": { "post": { "tags": [ "Strategy Pipeline" ], "summary": "Resume", "operationId": "resume_api_v1_strategy_engagements__engagement_id__resume_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "engagement_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Engagement Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResumeRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/v1/strategy/engagements/{engagement_id}/stream": { "get": { "tags": [ "Strategy Pipeline" ], "summary": "Stream", "description": "SSE live pulse feed \u2014 Clerk-gated + org-scoped like every other endpoint.\nThe browser can't put a Bearer on an EventSource, so studio reaches this via\nits server-side proxy, which attaches the Clerk token from the session cookie.", "operationId": "stream_api_v1_strategy_engagements__engagement_id__stream_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "engagement_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Engagement Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/organizations/{org_id}": { "get": { "tags": [ "target-graph" ], "summary": "Get Organization Detail", "description": "Get detailed information about a specific organization.", "operationId": "get_organization_detail_api_target_graph_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" } } } } } } }, "/api/target-graph/stats": { "get": { "tags": [ "target-graph" ], "summary": "Get Stats", "description": "Get target graph statistics", "operationId": "get_stats_api_target_graph_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/organizations": { "get": { "tags": [ "target-graph" ], "summary": "List Organizations", "description": "List all discovered organizations", "operationId": "list_organizations_api_target_graph_organizations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "search", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search organization names", "title": "Search" }, "description": "Search organization names" }, { "name": "min_members", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Minimum member count", "title": "Min Members" }, "description": "Minimum member count" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort by: member_count, total_signals, last_updated_at", "default": "member_count", "title": "Sort By" }, "description": "Sort by: member_count, total_signals, last_updated_at" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/people": { "get": { "tags": [ "target-graph" ], "summary": "List People", "description": "List all discovered people", "operationId": "list_people_api_target_graph_people_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "search", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search names", "title": "Search" }, "description": "Search names" }, { "name": "organization_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by organization ID", "title": "Organization Id" }, "description": "Filter by organization ID" }, { "name": "has_contact", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Has contact info", "title": "Has Contact" }, "description": "Has contact info" }, { "name": "min_signals", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Minimum signal count", "title": "Min Signals" }, "description": "Minimum signal count" }, { "name": "repository_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by repository", "title": "Repository Filter" }, "description": "Filter by repository" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort by: total_signals, last_signal_at", "default": "total_signals", "title": "Sort By" }, "description": "Sort by: total_signals, last_signal_at" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/framework-personas": { "get": { "tags": [ "target-graph" ], "summary": "Framework Personas", "description": "The brand's personas FROM the messaging framework (Gypsum), fused with the\nresolved audience: each framework persona is matched to its resolved shopper\nsegment (by name overlap) with real people count + top interests. This is the\npersona-collision view \u2014 intended persona vs. who's actually out there.", "operationId": "framework_personas_api_target_graph_framework_personas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/discover-decision-makers": { "post": { "tags": [ "target-graph" ], "summary": "Discover Decision Makers", "description": "Discover decision makers on LinkedIn for a specific organization", "operationId": "discover_decision_makers_api_target_graph_discover_decision_makers_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/high-value-targets": { "get": { "tags": [ "target-graph" ], "summary": "Get High Value Targets", "description": "Identify High Value Targets (companies/orgs with multiple developers)\nbased on signal analysis.", "operationId": "get_high_value_targets_api_target_graph_high_value_targets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/high-value-targets/summary": { "get": { "tags": [ "target-graph" ], "summary": "Get Hvt Summary", "description": "Get HVT rollup summary by CRM stage for CMO dashboard.\nReturns counts and totals by pipeline phase.", "operationId": "get_hvt_summary_api_target_graph_high_value_targets_summary_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/organizations/{target_org_id}/interactions": { "post": { "tags": [ "target-graph" ], "summary": "Log Interaction", "description": "Log an interaction with an organization (call, email, meeting, etc.)", "operationId": "log_interaction_api_target_graph_organizations__target_org_id__interactions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "target_org_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Target Org Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/organizations/{target_org_id}/hypothesis": { "put": { "tags": [ "target-graph" ], "summary": "Update Hypothesis", "description": "Update sales hypothesis for an organization (F.I.R.E. methodology)", "operationId": "update_hypothesis_api_target_graph_organizations__target_org_id__hypothesis_put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "target_org_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Target Org Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/organizations/{target_org_id}/details": { "get": { "tags": [ "target-graph" ], "summary": "Get Organization Details", "description": "Get full organization details including hypothesis and interaction history", "operationId": "get_organization_details_api_target_graph_organizations__target_org_id__details_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "target_org_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Target Org Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/clustering-modes": { "get": { "tags": [ "target-graph" ], "summary": "Get Clustering Modes", "description": "Get available clustering modes for the graph visualization.", "operationId": "get_clustering_modes_api_target_graph_clustering_modes_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/target-graph/graph-clustered": { "get": { "tags": [ "target-graph" ], "summary": "Get Clustered Graph", "description": "Get graph data with anchor nodes for clustering visualization.\n\nAnchor nodes are larger \"hub\" nodes that organizations and people cluster around.\nThis enables strategic views like:\n- Tech Stack: See all companies using Kafka together\n- CRM Stage: Visual pipeline view\n- Journey Stage: See awareness funnel\n- Industry: Vertical clustering", "operationId": "get_clustered_graph_api_target_graph_graph_clustered_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "clustering_mode", "in": "query", "required": false, "schema": { "type": "string", "description": "Clustering mode: none, tech_stack, journey_stage, industry, crm_stage, subreddit, github_repo", "default": "none", "title": "Clustering Mode" }, "description": "Clustering mode: none, tech_stack, journey_stage, industry, crm_stage, subreddit, github_repo" }, { "name": "limit_orgs", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 300, "minimum": 1, "default": 100, "title": "Limit Orgs" } }, { "name": "limit_people", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "default": 200, "title": "Limit People" } }, { "name": "include_people", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include people nodes", "default": true, "title": "Include People" }, "description": "Include people nodes" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/target-graph/load-demo-data": { "post": { "tags": [ "target-graph" ], "summary": "Load Demo Data", "description": "Load demo data to simulate CRM integration.\nCreates sample organizations, people, and signals for demonstration.", "operationId": "load_demo_data_api_target_graph_load_demo_data_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/target-graph/clear-demo-data": { "delete": { "tags": [ "target-graph" ], "summary": "Clear Demo Data", "description": "Clear demo data from the target graph.\nOnly removes data that was created by the demo loader.", "operationId": "clear_demo_data_api_target_graph_clear_demo_data_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/targetGraph/listOrganizations": { "get": { "tags": [ "targetgraph" ], "summary": "List Organizations", "description": "Get organizations in the format expected by the frontend.", "operationId": "list_organizations_api_targetGraph_listOrganizations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of organizations to return", "default": 100, "title": "Limit" }, "description": "Number of organizations to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/targetGraph/listPeople": { "get": { "tags": [ "targetgraph" ], "summary": "List People", "description": "Get people in the format expected by the frontend.", "operationId": "list_people_api_targetGraph_listPeople_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of people to return", "default": 100, "title": "Limit" }, "description": "Number of people to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/targetGraph/listRepositories": { "get": { "tags": [ "targetgraph" ], "summary": "List Repositories", "description": "Get repositories being monitored.\nFor now, return empty as we're not tracking repos separately.", "operationId": "list_repositories_api_targetGraph_listRepositories_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/targetGraph/stats": { "get": { "tags": [ "targetgraph" ], "summary": "Get Stats", "description": "Get overall statistics for the target graph.", "operationId": "get_stats_api_targetGraph_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ontology/packs": { "get": { "tags": [ "ontology" ], "summary": "List Packs", "description": "Ontology packs present in this org's brand graph (e.g. mmm).", "operationId": "list_packs_api_ontology_packs_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/ontology/graph": { "get": { "tags": [ "ontology" ], "summary": "Get Graph", "description": "The knowledge graph as {nodes, edges}. Edges carry numeric model output\n(e.g. contributes_to.incr_roas); nodes carry type + provenance.", "operationId": "get_graph_api_ontology_graph_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "ontology", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter to one ontology pack, e.g. 'mmm'", "title": "Ontology" }, "description": "Filter to one ontology pack, e.g. 'mmm'" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/ontology/audience/people": { "get": { "tags": [ "ontology" ], "summary": "Resolve Audience People", "description": "Drill an ontology audience (segment) node down to the resolved people it\nrepresents. Joins the kg segment label to a resolved-audience Organization of\nthe same name (the Semcasting/Target-Graph identity layer). Org-scoped.", "operationId": "resolve_audience_people_api_ontology_audience_people_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "label", "in": "query", "required": true, "schema": { "type": "string", "description": "Audience node label, e.g. 'In-market truck intenders'", "title": "Label" }, "description": "Audience node label, e.g. 'In-market truck intenders'" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "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/lusha-intelligence/enrich/person": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Enrich Person", "description": "Enrich a person with Lusha data and AI insights\n\nThis endpoint provides:\n- Complete contact information (email, phone, social)\n- AI-powered insights on decision authority and pain points\n- Buying signal detection\n- Personalized outreach recommendations", "operationId": "enrich_person_api_lusha_intelligence_enrich_person_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonEnrichmentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/enrich/company": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Enrich Company", "description": "Enrich a company with predictive AI intelligence\n\nFeatures:\n- Complete firmographic data\n- AI-powered account intelligence\n- Expansion opportunity identification\n- Competitive landscape analysis\n- Account scoring and prioritization", "operationId": "enrich_company_api_lusha_intelligence_enrich_company_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompanyEnrichmentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/prospect/ai-discover": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Ai Powered Prospecting", "description": "AI-powered prospecting to find and score ideal prospects\n\nFeatures:\n- Smart filtering based on ICP\n- AI scoring and ranking\n- Personalized insights for each prospect\n- Outreach prioritization\n- Prospecting strategy recommendations", "operationId": "ai_powered_prospecting_api_lusha_intelligence_prospect_ai_discover_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProspectingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/champion/track": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Track Champion Changes", "description": "Track champion changes at target accounts\n\nFeatures:\n- Detect when champions leave companies\n- Identify new champions automatically\n- Risk assessment\n- Retention strategy recommendations", "operationId": "track_champion_changes_api_lusha_intelligence_champion_track_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChampionTrackingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/enrich/bulk": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Bulk Enrichment", "description": "Bulk enrichment for multiple contacts or companies\n\nFeatures:\n- Process up to 100 records at once\n- Parallel processing for speed\n- Reduced API credit usage\n- Batch AI insights generation", "operationId": "bulk_enrichment_api_lusha_intelligence_enrich_bulk_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkEnrichmentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/insights/summary": { "get": { "tags": [ "lusha-intelligence" ], "summary": "Get Enrichment Insights", "description": "Get insights from enrichment activities\n\nReturns:\n- Enrichment statistics\n- Top buying signals detected\n- Champion movement trends\n- AI-generated recommendations", "operationId": "get_enrichment_insights_api_lusha_intelligence_insights_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "time_period", "in": "query", "required": false, "schema": { "type": "string", "description": "Time period: 1d, 7d, 30d", "default": "7d", "title": "Time Period" }, "description": "Time period: 1d, 7d, 30d" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/lusha-intelligence/usage/stats": { "get": { "tags": [ "lusha-intelligence" ], "summary": "Get Usage Statistics", "description": "Get Lusha API usage statistics", "operationId": "get_usage_statistics_api_lusha_intelligence_usage_stats_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/enrichment-queue/status": { "get": { "tags": [ "lusha-intelligence" ], "summary": "Get Enrichment Queue Status", "description": "Get the status of the automatic organization enrichment queue", "operationId": "get_enrichment_queue_status_api_lusha_intelligence_enrichment_queue_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/lusha-intelligence/enrichment-queue/process": { "post": { "tags": [ "lusha-intelligence" ], "summary": "Process Enrichment Queue", "description": "Process the organization enrichment queue.\n\nThis enriches organizations that were discovered through signals\nbut haven't been enriched yet.", "operationId": "process_enrichment_queue_api_lusha_intelligence_enrichment_queue_process_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "batch_size", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of organizations to enrich", "default": 10, "title": "Batch Size" }, "description": "Number of organizations to enrich" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crm/available": { "get": { "tags": [ "crm" ], "summary": "Get Available Crms", "description": "Get list of available CRM integrations and their requirements", "operationId": "get_available_crms_api_crm_available_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "crm" ], "summary": "Get Available Crms Post", "operationId": "get_available_crms_post_api_crm_available_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "options": { "tags": [ "crm" ], "summary": "Available Crms Options", "operationId": "available_crms_options_api_crm_available_options", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/crm/config": { "get": { "tags": [ "crm" ], "summary": "Get Crm Config", "description": "Get current CRM configuration for organization", "operationId": "get_crm_config_api_crm_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "crm" ], "summary": "Configure Crm", "description": "Configure CRM for organization", "operationId": "configure_crm_api_crm_config_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CRMConfigRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/sync/contacts": { "post": { "tags": [ "crm" ], "summary": "Sync Contacts", "description": "Sync contacts between VoiceForge and CRM", "operationId": "sync_contacts_api_crm_sync_contacts_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactSyncRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/sync/contacts/immediate": { "post": { "tags": [ "crm" ], "summary": "Sync Contacts Immediate", "description": "Sync contacts immediately (for small batches)", "operationId": "sync_contacts_immediate_api_crm_sync_contacts_immediate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactSyncRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/sync/signals": { "post": { "tags": [ "crm" ], "summary": "Sync Signals", "description": "Sync signals as CRM activities", "operationId": "sync_signals_api_crm_sync_signals_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignalSyncRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/campaigns/add-contacts": { "post": { "tags": [ "crm" ], "summary": "Add Contacts To Campaign", "description": "Add contacts to a CRM campaign/list", "operationId": "add_contacts_to_campaign_api_crm_campaigns_add_contacts_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CampaignAddRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/sync/status/{task_id}": { "get": { "tags": [ "crm" ], "summary": "Get Sync Status", "description": "Get status of a sync task", "operationId": "get_sync_status_api_crm_sync_status__task_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "task_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Task Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crm/sync-from-crm": { "post": { "tags": [ "crm" ], "summary": "Sync From Crm", "description": "Sync data FROM CRM into the Target Graph", "operationId": "sync_from_crm_api_crm_sync_from_crm_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm/test-connection": { "get": { "tags": [ "crm" ], "summary": "Test Crm Connection", "description": "Test CRM connection for current organization", "operationId": "test_crm_connection_api_crm_test_connection_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/health": { "get": { "tags": [ "Webflow" ], "summary": "Webflow Health", "operationId": "webflow_health_api_webflow_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Webflow Health Api Webflow Health Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/webflow/collections": { "get": { "tags": [ "Webflow" ], "summary": "List Collections", "operationId": "list_collections_api_webflow_collections_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "site_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Webflow site ID", "title": "Site Id" }, "description": "Webflow site ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Collections Api Webflow Collections Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/webflow/collections/{collection_id}": { "get": { "tags": [ "Webflow" ], "summary": "Get Collection", "operationId": "get_collection_api_webflow_collections__collection_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "collection_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Collection Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Collection Api Webflow Collections Collection Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/performance/overview": { "get": { "tags": [ "content-analytics" ], "summary": "Get Content Performance Overview", "description": "Get comprehensive content performance analysis combining GA data with VoiceForge content metrics.\n\nReturns:\n- Content pieces matched to GA pages\n- Engagement scores combining GA metrics + RAG usage\n- Persona affinity analysis\n- Performance tier classification", "operationId": "get_content_performance_overview_api_content_analytics_performance_overview_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/persona-engagement": { "get": { "tags": [ "content-analytics" ], "summary": "Get Persona Content Engagement", "description": "Analyze persona engagement with content using semantic matching.\n\nReturns:\n- Personas matched to relevant content\n- Engagement metrics by persona\n- Content gaps identification\n- Optimization recommendations", "operationId": "get_persona_content_engagement_api_content_analytics_persona_engagement_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" }, { "name": "persona_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific persona ID", "title": "Persona Id" }, "description": "Filter by specific persona ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/content-gaps": { "get": { "tags": [ "content-analytics" ], "summary": "Get Content Gaps Analysis", "description": "Identify content gaps across personas and topics.\n\nReturns:\n- Personas with insufficient content coverage\n- Missing topic areas\n- Priority scores for content creation\n- Impact estimates", "operationId": "get_content_gaps_analysis_api_content_analytics_content_gaps_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "threshold", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "description": "Minimum content count threshold", "default": 5, "title": "Threshold" }, "description": "Minimum content count threshold" }, { "name": "persona_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Focus on specific persona", "title": "Persona Id" }, "description": "Focus on specific persona" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/realtime-metrics": { "get": { "tags": [ "content-analytics" ], "summary": "Get Realtime Content Metrics", "description": "Get real-time content performance metrics from Google Analytics.\n\nReturns:\n- Active users on content\n- Top active content pieces\n- Real-time engagement data", "operationId": "get_realtime_content_metrics_api_content_analytics_realtime_metrics_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-analytics/optimization-insights": { "get": { "tags": [ "content-analytics" ], "summary": "Get Content Optimization Insights", "description": "Get specific optimization recommendations for content.\n\nReturns:\n- Content performance analysis\n- Specific improvement recommendations\n- Expected impact estimates\n- Implementation priorities", "operationId": "get_content_optimization_insights_api_content_analytics_optimization_insights_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get insights for specific content", "title": "Content Id" }, "description": "Get insights for specific content" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Limit number of recommendations", "default": 10, "title": "Limit" }, "description": "Limit number of recommendations" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/summary": { "get": { "tags": [ "content-analytics" ], "summary": "Get Content Analytics Summary", "description": "Get a comprehensive summary of content analytics.\nCombines all major metrics into a single dashboard-ready response.", "operationId": "get_content_analytics_summary_api_content_analytics_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/ga-sync": { "post": { "tags": [ "content-analytics" ], "summary": "Sync Ga Metrics", "description": "Stream GA metrics so the UI can show live analytics population.", "operationId": "sync_ga_metrics_api_content_analytics_ga_sync_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsSyncRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-analytics/seed-demo": { "post": { "tags": [ "content-analytics" ], "summary": "Seed Demo Content Performance", "description": "Seed demo content performance data for testing.", "operationId": "seed_demo_content_performance_api_content_analytics_seed_demo_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-analytics/traffic-trends": { "get": { "tags": [ "content-analytics" ], "summary": "Get Traffic Trends", "description": "Get daily traffic trends for total web and blog traffic.\nData comes from Google Analytics.", "operationId": "get_traffic_trends_api_content_analytics_traffic_trends_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "description": "Number of days", "default": 30, "title": "Days" }, "description": "Number of days" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/gated-content": { "get": { "tags": [ "content-analytics" ], "summary": "Get Gated Content Stats", "description": "Get gated content performance stats.\nData comes from HubSpot forms and landing pages.\nReturns views, conversions, and rates by content item and group.", "operationId": "get_gated_content_stats_api_content_analytics_gated_content_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days", "default": 30, "title": "Days" }, "description": "Number of days" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-analytics/campaigns": { "get": { "tags": [ "content-analytics" ], "summary": "Get Campaign Stats", "description": "Get email campaign performance stats with MQL generation and content attribution.\nData comes from HubSpot/email marketing platform.\nReturns campaigns with open rates, click rates, conversions, MQLs, and associated content.", "operationId": "get_campaign_stats_api_content_analytics_campaigns_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days", "default": 30, "title": "Days" }, "description": "Number of days" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/mqls": { "get": { "tags": [ "hubspot" ], "summary": "Get Mqls", "description": "Get Marketing Qualified Leads from HubSpot.\n\nReturns contacts who reached MQL lifecycle stage within the specified period.", "operationId": "get_mqls_api_hubspot_mqls_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days to look back", "default": 30, "title": "Days" }, "description": "Days to look back" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max MQLs to return", "default": 100, "title": "Limit" }, "description": "Max MQLs to return" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/mqls/summary": { "get": { "tags": [ "hubspot" ], "summary": "Get Mql Summary", "description": "Get MQL summary metrics for CMO dashboard.\n\nIncludes current count, targets, cost per MQL, and trend data.", "operationId": "get_mql_summary_api_hubspot_mqls_summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } }, { "name": "quarterly_target", "in": "query", "required": false, "schema": { "type": "integer", "description": "Quarterly MQL target", "default": 1625, "title": "Quarterly Target" }, "description": "Quarterly MQL target" }, { "name": "annual_target", "in": "query", "required": false, "schema": { "type": "integer", "description": "Annual MQL target", "default": 6500, "title": "Annual Target" }, "description": "Annual MQL target" }, { "name": "budget_spent", "in": "query", "required": false, "schema": { "type": "number", "description": "Budget spent this period", "default": 0, "title": "Budget Spent" }, "description": "Budget spent this period" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/mqls/trends": { "get": { "tags": [ "hubspot" ], "summary": "Get Mql Trends", "description": "Get MQL counts grouped by time period.\n\nUsed for trend charts showing MQL generation over time.", "operationId": "get_mql_trends_api_hubspot_mqls_trends_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 7, "default": 90, "title": "Days" } }, { "name": "group_by", "in": "query", "required": false, "schema": { "type": "string", "pattern": "^(day|week|month)$", "default": "week", "title": "Group By" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/campaigns": { "get": { "tags": [ "hubspot" ], "summary": "Get Campaigns", "description": "Get email campaign performance with MQL attribution.\n\nReturns campaigns with open rates, click rates, conversions, and MQL generation.", "operationId": "get_campaigns_api_hubspot_campaigns_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/gated-content": { "get": { "tags": [ "hubspot" ], "summary": "Get Gated Content", "description": "Get gated content (forms) performance stats.\n\nReturns views, submissions, conversion rates, and MQL generation by content.", "operationId": "get_gated_content_api_hubspot_gated_content_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/context/mqls": { "get": { "tags": [ "hubspot" ], "summary": "Get Mql Context", "description": "Generate MQL context data for RAG/AI consumption.\n\nReturns structured data about MQL performance, trends, and insights.", "operationId": "get_mql_context_api_hubspot_context_mqls_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hubspot/context/campaigns": { "get": { "tags": [ "hubspot" ], "summary": "Get Campaign Context", "description": "Generate campaign context data for RAG/AI consumption.\n\nReturns structured data about campaign performance and insights.", "operationId": "get_campaign_context_api_hubspot_context_campaigns_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crm-context/status": { "get": { "tags": [ "CRM Context Stream" ], "summary": "Get Crm Context Status", "description": "Get the status of the CRM Intelligence context stream for the current org.\n\nReturns information about:\n- Whether the stream exists\n- What context types are present (MQLs, campaigns, etc.)\n- Chunk count and last access time\n- CRM configuration status", "operationId": "get_crm_context_status_api_crm_context_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm-context/sources": { "get": { "tags": [ "CRM Context Stream" ], "summary": "Get Available Sources", "description": "Get available CRM sources and their configuration status for this org.", "operationId": "get_available_sources_api_crm_context_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crm-context/sync/hubspot": { "post": { "tags": [ "CRM Context Stream" ], "summary": "Sync Hubspot To Context", "description": "Sync HubSpot data into the CRM Intelligence context stream.\n\nThis endpoint:\n1. Fetches MQL, campaign, and gated content data from HubSpot\n2. Transforms it into context-ready format\n3. Ingests it into the CRM Intelligence stream for RAG\n\nUses org-level HubSpot credentials from Settings > CRM Integration.\nFalls back to demo data if HubSpot is not configured.", "operationId": "sync_hubspot_to_context_api_crm_context_sync_hubspot_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "description": "Days of data to sync", "default": 30, "title": "Days" }, "description": "Days of data to sync" }, { "name": "include_mqls", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Mqls" } }, { "name": "include_campaigns", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Campaigns" } }, { "name": "include_gated_content", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Include Gated Content" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crm-context/sync/demo": { "post": { "tags": [ "CRM Context Stream" ], "summary": "Sync Demo Data", "description": "Sync demo CRM data into the context stream.\n\nUseful for testing and demonstrations when no CRM is connected.", "operationId": "sync_demo_data_api_crm_context_sync_demo_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "description": "Days of data to generate", "default": 30, "title": "Days" }, "description": "Days of data to generate" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crm-context/context/{context_type}": { "get": { "tags": [ "CRM Context Stream" ], "summary": "Get Context By Type", "description": "Get specific context type content from the CRM stream.\n\nValid context_types:\n- mql_intelligence\n- campaign_performance\n- gated_content\n- pipeline_signals", "operationId": "get_context_by_type_api_crm_context_context__context_type__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "context_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Context Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/analytics/config": { "get": { "tags": [ "analytics" ], "summary": "Get Google Analytics Config", "description": "Return the GA4 configuration saved for the current org.", "operationId": "get_google_analytics_config_api_analytics_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GAConfigResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "analytics" ], "summary": "Save Google Analytics Config", "description": "Persist the GA4 property and credentials for this organization.", "operationId": "save_google_analytics_config_api_analytics_config_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GAConfigRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "boolean" }, "type": "object", "title": "Response Save Google Analytics Config Api Analytics Config Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/analytics/config/test": { "get": { "tags": [ "analytics" ], "summary": "Test Google Analytics Connection", "description": "Run a minimal GA4 query to verify this org's credentials + property ID.", "operationId": "test_google_analytics_connection_api_analytics_config_test_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/crawl/{crawl_id}/llms-txt": { "get": { "tags": [ "llm-exports" ], "summary": "Download Llms Txt", "operationId": "download_llms_txt_api_crawl__crawl_id__llms_txt_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } }, { "name": "include_paths", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated path prefixes", "title": "Include Paths" }, "description": "Comma-separated path prefixes" }, { "name": "exclude_paths", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated path prefixes", "title": "Exclude Paths" }, "description": "Comma-separated path prefixes" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/ai-export": { "post": { "tags": [ "llm-exports" ], "summary": "Export Ai Friendly Pack", "operationId": "export_ai_friendly_pack_api_crawl__crawl_id__ai_export_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AiExportRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/llms-txt/webflow": { "post": { "tags": [ "llm-exports" ], "summary": "Publish Llms To Webflow", "operationId": "publish_llms_to_webflow_api_crawl__crawl_id__llms_txt_webflow_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebflowPublishRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/crawl/{crawl_id}/ai-export/webflow": { "post": { "tags": [ "llm-exports" ], "summary": "Publish Ai Export To Webflow", "operationId": "publish_ai_export_to_webflow_api_crawl__crawl_id__ai_export_webflow_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Crawl Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebflowPublishRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/airops/status": { "get": { "tags": [ "airops" ], "summary": "Get Airops Status", "description": "Check AirOps integration status.", "operationId": "get_airops_status_api_airops_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/sync/messaging-framework": { "post": { "tags": [ "airops" ], "summary": "Sync Messaging Framework", "description": "Sync the Messaging Framework context stream to AirOps vector store.\n\nPushes personas, use cases, products, and positioning documents.", "operationId": "sync_messaging_framework_api_airops_sync_messaging_framework_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/sync/all-streams": { "post": { "tags": [ "airops" ], "summary": "Sync All Streams", "description": "Sync all context streams to AirOps vector store.\n\nPushes:\n- Messaging Framework (personas, use cases, products, positioning)\n- Competitor Intelligence\n- Social Signals", "operationId": "sync_all_streams_api_airops_sync_all_streams_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/push-chunks": { "post": { "tags": [ "airops" ], "summary": "Push Chunks To Airops", "description": "Push specific context stream chunks to AirOps.\n\nThis gives fine-grained control over what gets synced.", "operationId": "push_chunks_to_airops_api_airops_push_chunks_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushChunksRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/search": { "post": { "tags": [ "airops" ], "summary": "Search Airops", "description": "Search the AirOps vector store.\n\nReturns semantically similar documents to the query.", "operationId": "search_airops_api_airops_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/export/content-topics": { "get": { "tags": [ "airops" ], "summary": "Export Content Topics Csv", "description": "Export content topics as CSV for AirOps Grid import.", "operationId": "export_content_topics_csv_api_airops_export_content_topics_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/export/geo-prompts": { "get": { "tags": [ "airops" ], "summary": "Export Geo Prompts Csv", "description": "Export GEO prompts as CSV for AirOps Grid import.", "operationId": "export_geo_prompts_csv_api_airops_export_geo_prompts_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/airops/export/full-grid": { "get": { "tags": [ "airops" ], "summary": "Export Full Content Grid Csv", "description": "Export comprehensive content grid CSV for AirOps.\n\nCreates a Persona \u00d7 Use Case \u00d7 Product matrix with all workflow columns.", "operationId": "export_full_content_grid_csv_api_airops_export_full_grid_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/bootstrap/start": { "post": { "tags": [ "bootstrap" ], "summary": "Start Bootstrap", "description": "Start the organization bootstrap process.\n\nReturns a streaming response with progress updates.", "operationId": "start_bootstrap_api_bootstrap_start_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BootstrapRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/bootstrap/generate-element": { "post": { "tags": [ "bootstrap" ], "summary": "Generate Element", "description": "Generate a single element of the messaging framework.\n\nPowers the \"Generate with AI\" button throughout Gypsum and VoiceForge.\n\nSupports element_type:\n- product: Generate a product definition\n- persona: Generate a buyer persona\n- use_case: Generate a use case\n- positioning: Generate positioning statement\n- icp: Generate ideal customer profile", "operationId": "generate_element_api_bootstrap_generate_element_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateElementRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/bootstrap/status/{org_id}": { "get": { "tags": [ "bootstrap" ], "summary": "Get Bootstrap Status", "description": "Get the current bootstrap status for an organization.\n\nChecks what's set up and what's missing.", "operationId": "get_bootstrap_status_api_bootstrap_status__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" } } } } } } }, "/api/playbooks": { "get": { "tags": [ "playbooks" ], "summary": "List Playbooks", "description": "List all available playbooks.", "operationId": "list_playbooks_api_playbooks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Response List Playbooks Api Playbooks Get" } } } } } } }, "/api/playbooks/{slug}": { "get": { "tags": [ "playbooks" ], "summary": "Get Playbook By Slug", "description": "Get a specific playbook by slug.", "operationId": "get_playbook_by_slug_api_playbooks__slug__get", "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string", "title": "Slug" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Playbook By Slug Api Playbooks Slug Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/playbooks/{slug}/campaign-context": { "get": { "tags": [ "playbooks" ], "summary": "Get Campaign Context", "description": "Get campaign execution context for a LangGraph agent.\n\nReturns structured context that an AI agent can use to:\n- Generate personalized outreach emails\n- Prepare discovery call scripts\n- Handle objections\n- Select relevant content assets", "operationId": "get_campaign_context_api_playbooks__slug__campaign_context_get", "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string", "title": "Slug" } }, { "name": "target_company", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Target company name for personalization", "title": "Target Company" }, "description": "Target company name for personalization" }, { "name": "target_persona", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Target persona/role", "title": "Target Persona" }, "description": "Target persona/role" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Campaign Context Api Playbooks Slug Campaign Context Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/playbooks/{slug}/email-sequence": { "get": { "tags": [ "playbooks" ], "summary": "Get Email Sequence", "description": "Get email sequence templates for a playbook.", "operationId": "get_email_sequence_api_playbooks__slug__email_sequence_get", "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string", "title": "Slug" } }, { "name": "sequence_type", "in": "query", "required": false, "schema": { "type": "string", "description": "Type of sequence", "default": "cold_outreach", "title": "Sequence Type" }, "description": "Type of sequence" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Email Sequence Api Playbooks Slug Email Sequence Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/playbooks/{slug}/objection-handler": { "get": { "tags": [ "playbooks" ], "summary": "Get Objection Handler", "description": "Get objection handling guidance for a playbook.", "operationId": "get_objection_handler_api_playbooks__slug__objection_handler_get", "parameters": [ { "name": "slug", "in": "path", "required": true, "schema": { "type": "string", "title": "Slug" } }, { "name": "objection", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Specific objection to handle", "title": "Objection" }, "description": "Specific objection to handle" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Objection Handler Api Playbooks Slug Objection Handler Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/gov/keywords": { "get": { "tags": [ "government-signals" ], "summary": "Get Gov Keywords", "description": "Get signal discovery keywords DERIVED FROM PLAYBOOKS.\n\nThis is the core of \"programmable GTM\" - keywords come from:\n- Playbook technographics (buying signals)\n- Entry point use cases\n- Firmographic indicators\n- Key pains (RFP language)\n\nChange your playbooks \u2192 change your signals.", "operationId": "get_gov_keywords_api_signals_gov_keywords_get", "parameters": [ { "name": "verticals", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated vertical slugs to filter", "title": "Verticals" }, "description": "Comma-separated vertical slugs to filter" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/gov/discover/sam": { "post": { "tags": [ "government-signals" ], "summary": "Discover Sam Gov Signals", "description": "Discover federal contract signals from USASpending.gov\n\nKeywords are DERIVED FROM PLAYBOOKS - not hardcoded.\nThis implements \"programmable GTM\":\n- Playbook defines ICP, use cases, buying signals\n- Those become search keywords\n- Signals match your actual GTM strategy\n\nContract awards via USASpending.gov (NO API KEY REQUIRED).\nRFP opportunities via SAM.gov (requires SAM.gov profile API key).", "operationId": "discover_sam_gov_signals_api_signals_gov_discover_sam_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GovDiscoveryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/gov/discover/ferc": { "post": { "tags": [ "government-signals" ], "summary": "Discover Ferc Signals", "description": "Discover signals from FERC eLibrary\n\nSearches regulatory filings related to grid modernization,\nSCADA upgrades, and utility real-time systems.\n\nGood for energy/utilities vertical targeting.", "operationId": "discover_ferc_signals_api_signals_gov_discover_ferc_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GovDiscoveryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/gov/discover/all": { "post": { "tags": [ "government-signals" ], "summary": "Discover All Gov Signals", "description": "Discover signals from all government sources\n\nRuns SAM.gov and FERC discovery in parallel for comprehensive coverage.", "operationId": "discover_all_gov_signals_api_signals_gov_discover_all_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GovDiscoveryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/signals/gov/status": { "get": { "tags": [ "government-signals" ], "summary": "Get Gov Signals Status", "description": "Check status of government signal sources", "operationId": "get_gov_signals_status_api_signals_gov_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/gov/health": { "get": { "tags": [ "government-signals" ], "summary": "Health Check", "description": "Health check for government signals API", "operationId": "health_check_api_signals_gov_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/gov/buyer-algorithm": { "get": { "tags": [ "government-signals" ], "summary": "Get Buyer Algorithm", "description": "Get the GTM Buyer Algorithm configuration.\n\nThis algorithm defines:\n- Buyer models by vertical (direct vs partner)\n- Signal interpretation rules\n- Signal value scoring\n- Recommended actions per signal type\n\nUse this to understand HOW to interpret discovered signals.", "operationId": "get_buyer_algorithm_api_signals_gov_buyer_algorithm_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/signals/gov/buyer-algorithm/{vertical}": { "get": { "tags": [ "government-signals" ], "summary": "Get Vertical Algorithm", "description": "Get the GTM Buyer Algorithm for a specific vertical.\n\nReturns interpretation rules, priority signals, and recommended\nactions for the specified vertical.", "operationId": "get_vertical_algorithm_api_signals_gov_buyer_algorithm__vertical__get", "parameters": [ { "name": "vertical", "in": "path", "required": true, "schema": { "type": "string", "title": "Vertical" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/signals/gov/interpret": { "post": { "tags": [ "government-signals" ], "summary": "Interpret Signals", "description": "Interpret a list of signals using the GTM Buyer Algorithm.\n\nTakes raw signals and adds:\n- Meaning (what this signal indicates)\n- Recommended action\n- Value score\n- Buyer model classification", "operationId": "interpret_signals_api_signals_gov_interpret_post", "parameters": [ { "name": "vertical", "in": "query", "required": false, "schema": { "type": "string", "description": "Vertical context for interpretation", "default": "defense", "title": "Vertical" }, "description": "Vertical context for interpretation" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Signals" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/status": { "get": { "tags": [ "G2" ], "summary": "G2 Status", "description": "Check if G2 integration is configured", "operationId": "g2_status_api_g2_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/g2/signals": { "get": { "tags": [ "G2" ], "summary": "Get G2 Signals", "description": "Get G2 signals for the current org.\nAuto-discovers company from org settings or Gypsum positioning data.", "operationId": "get_g2_signals_api_g2_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "include_competitors", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include competitor G2 data", "default": true, "title": "Include Competitors" }, "description": "Include competitor G2 data" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/search": { "get": { "tags": [ "G2" ], "summary": "Search Products", "description": "Search for products by name to find product IDs", "operationId": "search_products_api_g2_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "q", "in": "query", "required": true, "schema": { "type": "string", "minLength": 2, "description": "Product name to search", "title": "Q" }, "description": "Product name to search" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}": { "get": { "tags": [ "G2" ], "summary": "Get Product", "description": "Get product info from G2", "operationId": "get_product_api_g2_product__product_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/summary": { "get": { "tags": [ "G2" ], "summary": "Get Product Summary", "description": "Get product summary with ratings", "operationId": "get_product_summary_api_g2_product__product_id__summary_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/reviews": { "get": { "tags": [ "G2" ], "summary": "Get Reviews", "description": "Get reviews for a product", "operationId": "get_reviews_api_g2_product__product_id__reviews_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Page" } }, { "name": "per_page", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 25, "title": "Per Page" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/competitors": { "get": { "tags": [ "G2" ], "summary": "Get Competitors", "description": "Get competitor products from G2", "operationId": "get_competitors_api_g2_product__product_id__competitors_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/dashboard": { "get": { "tags": [ "G2" ], "summary": "Get Dashboard Data", "description": "Get all G2 data for dashboard display", "operationId": "get_dashboard_data_api_g2_product__product_id__dashboard_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/buyer-intent": { "get": { "tags": [ "G2" ], "summary": "Get Buyer Intent", "description": "Get buyer intent signals", "operationId": "get_buyer_intent_api_g2_product__product_id__buyer_intent_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/market-signals": { "get": { "tags": [ "G2" ], "summary": "Get Market Signals", "description": "Get market signals", "operationId": "get_market_signals_api_g2_product__product_id__market_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/features": { "get": { "tags": [ "G2" ], "summary": "Get Features", "description": "Get feature ratings", "operationId": "get_features_api_g2_product__product_id__features_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/product/{product_id}/competitive-comparison": { "get": { "tags": [ "G2" ], "summary": "Get Competitive Comparison", "description": "Get full competitive comparison with ratings and features", "operationId": "get_competitive_comparison_api_g2_product__product_id__competitive_comparison_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "product_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Product Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/g2/scan": { "post": { "tags": [ "G2" ], "summary": "Scan G2", "description": "Scan G2 for company and competitors.\n\nThis endpoint:\n1. Searches G2 for the company (or uses org settings if not provided)\n2. Gets the company's G2 ratings and reviews\n3. Discovers competitors from G2\n4. Auto-creates competitor records in the database\n5. Updates G2 fields on all competitors\n\nReturns scan results with discovered competitors.", "operationId": "scan_g2_api_g2_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/G2ScanRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/g2/scan/status": { "get": { "tags": [ "G2" ], "summary": "Get Scan Status", "description": "Get current G2 scan status - shows what's been scanned", "operationId": "get_scan_status_api_g2_scan_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitive-intel/scan": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Scan Competitor", "description": "Run a full competitive intelligence scan on a competitor.\nPersists results to the competitor record if it exists.", "operationId": "scan_competitor_api_competitive_intel_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompetitorScanRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompetitorIntelReport" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitive-intel/scan-batch": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Scan Competitors Batch", "description": "Scan multiple competitors and return comparison.\nPersists results to competitor records.", "operationId": "scan_competitors_batch_api_competitive_intel_scan_batch_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CompetitorScanRequest" }, "type": "array", "title": "Competitors" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitive-intel/quick-scan/{domain}": { "get": { "tags": [ "competitive-intelligence" ], "summary": "Quick Scan Domain", "description": "Quick agent-readiness scan of a domain (no Reddit/GitHub).", "operationId": "quick_scan_domain_api_competitive_intel_quick_scan__domain__get", "parameters": [ { "name": "domain", "in": "path", "required": true, "schema": { "type": "string", "title": "Domain" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/monitor/messaging/{domain}": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Monitor Competitor Messaging", "description": "Monitor a competitor's messaging by extracting their positioning framework using Claude.\nThis is the core of marketing observability - understanding how competitors position themselves.", "operationId": "monitor_competitor_messaging_api_competitive_intel_monitor_messaging__domain__post", "parameters": [ { "name": "domain", "in": "path", "required": true, "schema": { "type": "string", "title": "Domain" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExtractedMessagingFramework" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/monitor/compare": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Compare Positioning", "description": "Compare your messaging framework against a competitor's.\nProvides strategic insights for differentiation.", "operationId": "compare_positioning_api_competitive_intel_monitor_compare_post", "parameters": [ { "name": "competitor_domain", "in": "query", "required": true, "schema": { "type": "string", "description": "Competitor domain to compare against", "title": "Competitor Domain" }, "description": "Competitor domain to compare against" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Your Framework" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/monitor/full-report": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Generate Observability Report", "description": "Generate a complete marketing observability report for a competitor.\nCombines: messaging extraction, agent readiness, market signals, and positioning comparison.", "operationId": "generate_observability_report_api_competitive_intel_monitor_full_report_post", "parameters": [ { "name": "include_messaging", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Extract messaging framework", "default": true, "title": "Include Messaging" }, "description": "Extract messaging framework" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_generate_observability_report_api_competitive_intel_monitor_full_report_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MarketObservabilityReport" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/monitor/analyst-context/{domain}": { "get": { "tags": [ "competitive-intelligence" ], "summary": "Get Analyst Context", "description": "Get analyst report context for a competitor (if available).\nSearches stored analyst reports for mentions and insights.", "operationId": "get_analyst_context_api_competitive_intel_monitor_analyst_context__domain__get", "parameters": [ { "name": "domain", "in": "path", "required": true, "schema": { "type": "string", "title": "Domain" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/analyst-reports": { "get": { "tags": [ "competitive-intelligence" ], "summary": "List Analyst Reports", "description": "List all available analyst reports in the system.", "operationId": "list_analyst_reports_api_competitive_intel_analyst_reports_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/competitive-intel/analyst-reports/{filename}/extract": { "get": { "tags": [ "competitive-intelligence" ], "summary": "Extract Analyst Report", "description": "Extract competitive intelligence from a specific analyst report using Claude.", "operationId": "extract_analyst_report_api_competitive_intel_analyst_reports__filename__extract_get", "parameters": [ { "name": "filename", "in": "path", "required": true, "schema": { "type": "string", "title": "Filename" } }, { "name": "competitors", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated list of competitors to focus on", "title": "Competitors" }, "description": "Comma-separated list of competitors to focus on" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalystReportExtraction" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/analyst-reports/briefing": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Generate Analyst Briefing", "description": "Generate a competitive briefing based on all available analyst reports.\nAggregates insights about you and your competitors across all reports.", "operationId": "generate_analyst_briefing_api_competitive_intel_analyst_reports_briefing_post", "parameters": [ { "name": "your_company", "in": "query", "required": true, "schema": { "type": "string", "description": "Your company name", "title": "Your Company" }, "description": "Your company name" }, { "name": "competitors", "in": "query", "required": true, "schema": { "type": "string", "description": "Comma-separated list of competitors", "title": "Competitors" }, "description": "Comma-separated list of competitors" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/cadence/{domain}": { "get": { "tags": [ "competitive-intelligence" ], "summary": "Get Cadence Score", "description": "Get content marketing cadence score for a competitor.\nMeasures blog freshness, LinkedIn activity, and overall content velocity.", "operationId": "get_cadence_score_api_competitive_intel_cadence__domain__get", "parameters": [ { "name": "domain", "in": "path", "required": true, "schema": { "type": "string", "title": "Domain" } }, { "name": "company_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Company name for LinkedIn lookup", "title": "Company Name" }, "description": "Company name for LinkedIn lookup" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CadenceScore" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitive-intel/cadence/compare": { "post": { "tags": [ "competitive-intelligence" ], "summary": "Compare Cadence Scores", "description": "Compare cadence scores across multiple competitors.\nReturns ranked list by content marketing velocity.", "operationId": "compare_cadence_scores_api_competitive_intel_cadence_compare_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CompetitorScanRequest" }, "type": "array", "title": "Competitors" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/resolve": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Resolve Company Mention", "description": "Resolve a text mention to a canonical competitor.\n\nUses the company identity system to match mentions across channels.\nHandles disambiguation for ambiguous names (Snowflake, Oracle, Box, etc.)", "operationId": "resolve_company_mention_api_competitors_resolve_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/resolve/batch": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Resolve Company Mentions Batch", "description": "Resolve multiple mentions in batch.\n\nEfficient for processing feeds of content.", "operationId": "resolve_company_mentions_batch_api_competitors_resolve_batch_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveBatchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/resolve/suggest": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Suggest Competitor Matches", "description": "Get multiple possible competitor matches with confidence scores.\n\nUseful for:\n- UI autocomplete/suggestions\n- Manual disambiguation when confidence is low", "operationId": "suggest_competitor_matches_api_competitors_resolve_suggest_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "text", "in": "query", "required": true, "schema": { "type": "string", "minLength": 1, "title": "Text" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "default": 5, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/identities": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get All Company Identities", "description": "Get canonical identities for all competitors.\n\nUseful for debugging and understanding how companies are identified.", "operationId": "get_all_company_identities_api_competitors_identities_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/discover": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Discover Competitors Simple", "description": "AI-powered competitor discovery using org context.\n\nUses existing context streams to reason about competitive landscape.\nReturns competitors directly (non-streaming).", "operationId": "discover_competitors_simple_api_competitors_discover_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverCompetitorsRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/discover/stream": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Discover Competitors Stream", "description": "Stream competitive landscape analysis using org context.\n\nUses existing context streams to reason about who competitors are and why.\nStreams reasoning text followed by structured competitor data.\nAuto-saves the analysis to competitive_landscape_analyses table.\n\nResponse format (SSE):\n- reasoning:text chunks as Claude thinks\n- competitors:JSON array when complete\n- error:message if something fails", "operationId": "discover_competitors_stream_api_competitors_discover_stream_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "additional_context", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Extra context for pivots/changes", "title": "Additional Context" }, "description": "Extra context for pivots/changes" }, { "name": "competitors", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated confirmed competitor names \u2014 analysis focuses on these instead of discovering", "title": "Competitors" }, "description": "Comma-separated confirmed competitor names \u2014 analysis focuses on these instead of discovering" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/add-multiple": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Add Multiple Competitors", "description": "Add multiple competitors at once (from discovery results).", "operationId": "add_multiple_competitors_api_competitors_add_multiple_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddMultipleCompetitorsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/landscape-analysis": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Save Landscape Analysis", "description": "Save a competitive landscape analysis for future reference and context.\nThe analysis is also ingested into the RAG pipeline for use in content generation.", "operationId": "save_landscape_analysis_api_competitors_landscape_analysis_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveLandscapeAnalysisRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Landscape Analyses", "description": "Get recent competitive landscape analyses.", "operationId": "get_landscape_analyses_api_competitors_landscape_analysis_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/strategy-analysis/{competitor_id}": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Save Strategy Analysis", "description": "Save a strategy analysis for a specific competitor.\nThe analysis is also ingested into the RAG pipeline for competitive context.", "operationId": "save_strategy_analysis_api_competitors_strategy_analysis__competitor_id__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveStrategyAnalysisRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Strategy Analyses", "description": "Get recent strategy analyses for a specific competitor.", "operationId": "get_strategy_analyses_api_competitors_strategy_analysis__competitor_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "default": 5, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/debug/schema": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Debug Landscape Analysis Schema", "description": "Debug endpoint to check the competitive_landscape_analyses table schema.\nReturns the column names and types.", "operationId": "debug_landscape_analysis_schema_api_competitors_debug_schema_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/github/search": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Search Github Organizations", "description": "Search GitHub for organizations and users matching a pattern.\n\nExamples:\n- /github/search?pattern=confluent -> finds confluentinc, confluent-*, etc.\n- /github/search?pattern=redpanda* -> finds redpanda-data, redpandadata, etc.\n- /github/search?pattern=stripe -> finds stripe, stripe-*, etc.\n\nReturns organizations/users with their repos, stars, and metadata.", "operationId": "search_github_organizations_api_competitors_github_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "pattern", "in": "query", "required": true, "schema": { "type": "string", "minLength": 2, "description": "Search pattern (e.g., 'confluent' or 'confluent*')", "title": "Pattern" }, "description": "Search pattern (e.g., 'confluent' or 'confluent*')" }, { "name": "include_users", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include user accounts (many companies use these)", "default": true, "title": "Include Users" }, "description": "Include user accounts (many companies use these)" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 25, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/github/org/{org_login}": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Github Org Info", "description": "Get detailed information about a specific GitHub organization or user.\n\nReturns:\n- Organization details (name, description, location, etc.)\n- Top repositories with stars and activity\n- Total stars across all repos", "operationId": "get_github_org_info_api_competitors_github_org__org_login__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "org_login", "in": "path", "required": true, "schema": { "type": "string", "title": "Org Login" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/dashboard": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Dashboard", "description": "Get competitor intelligence dashboard summary", "operationId": "get_dashboard_api_competitors_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/comparison": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Comparison", "description": "Get comparison metrics across all competitors for dashboard charts.\n\nReturns aggregate metrics for:\n- Blog activity: posts_6mo, posts_per_month, days_since_last_post, author_count\n- Channel stats: youtube_subscribers, youtube_views (when available)", "operationId": "get_competitor_comparison_api_competitors_comparison_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/context/stream": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Context", "description": "Get competitor context for content generation", "operationId": "get_competitor_context_api_competitors_context_stream_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "view", "in": "query", "required": false, "schema": { "type": "string", "description": "Context view: full, positioning, battlecard, technical, market, summary", "default": "summary", "title": "View" }, "description": "Context view: full, positioning, battlecard, technical, market, summary" }, { "name": "tier", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by tier", "title": "Tier" }, "description": "Filter by tier" }, { "name": "max_tokens", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 10000, "minimum": 500, "default": 4000, "title": "Max Tokens" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/context/positioning": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Positioning Context", "description": "Get positioning context for primary competitors", "operationId": "get_positioning_context_api_competitors_context_positioning_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors/alerts": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "List Alerts", "description": "Get competitor alerts", "operationId": "list_alerts_api_competitors_alerts_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "unacknowledged_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Unacknowledged Only" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "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/competitors/alerts/{alert_id}/acknowledge": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Acknowledge Alert", "description": "Acknowledge an alert", "operationId": "acknowledge_alert_api_competitors_alerts__alert_id__acknowledge_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "alert_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Alert Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/scan/all": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Trigger Scan All", "description": "Trigger positioning scans for all competitors", "operationId": "trigger_scan_all_api_competitors_scan_all_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "tier", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only scan this tier", "title": "Tier" }, "description": "Only scan this tier" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/sync-signal-sources/all": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Sync All Signal Sources", "description": "Sync signal sources for all competitors in the organization", "operationId": "sync_all_signal_sources_api_competitors_sync_signal_sources_all_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/competitors": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "List Competitors", "description": "List all competitors for the organization", "operationId": "list_competitors_api_competitors_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "tier", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by tier", "title": "Tier" }, "description": "Filter by tier" }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string", "description": "Filter by status", "default": "active", "title": "Status" }, "description": "Filter by status" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CompetitorSummary" }, "title": "Response List Competitors Api Competitors Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Competitor Intelligence" ], "summary": "Add Competitor", "description": "Add a new competitor to track", "operationId": "add_competitor_api_competitors_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddCompetitorRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Add Competitor Api Competitors Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor", "description": "Get full competitor details", "operationId": "get_competitor_api_competitors__competitor_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "Competitor Intelligence" ], "summary": "Update Competitor", "description": "Update competitor settings", "operationId": "update_competitor_api_competitors__competitor_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCompetitorRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Competitor Intelligence" ], "summary": "Delete Competitor", "description": "Remove a competitor from tracking", "operationId": "delete_competitor_api_competitors__competitor_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/signal-sources": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Signal Sources", "description": "Get all signal sources linked to a competitor", "operationId": "get_competitor_signal_sources_api_competitors__competitor_id__signal_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/sync-signal-sources": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Sync Competitor Signal Sources Endpoint", "description": "Manually sync signal sources for a competitor", "operationId": "sync_competitor_signal_sources_endpoint_api_competitors__competitor_id__sync_signal_sources_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/scan": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Trigger Scan", "description": "Trigger a positioning scan for a competitor (quick - extracts messaging/positioning)", "operationId": "trigger_scan_api_competitors__competitor_id__scan_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/deep-scan": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Trigger Deep Scan", "description": "Trigger a deep scan for a competitor (slow - Lusha enrichment, leadership, funding, battlecard)", "operationId": "trigger_deep_scan_api_competitors__competitor_id__deep_scan_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/scan/progress": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Scan Progress", "description": "Get progress of an ongoing scan", "operationId": "get_scan_progress_api_competitors__competitor_id__scan_progress_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/activity": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Activity", "description": "Get activity feed for a competitor", "operationId": "get_competitor_activity_api_competitors__competitor_id__activity_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "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/competitors/{competitor_id}/authors": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Authors", "description": "Get top content authors for a competitor.\n\nAggregates authors across all content sources:\n- Company blog\n- Medium/dev.to (future)\n- LinkedIn articles (future)\n- Conference talks (future)\n\nReturns authors ranked by post count with their recent posts.", "operationId": "get_competitor_authors_api_competitors__competitor_id__authors_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/strategic-moves": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Strategic Moves", "description": "Get strategic moves timeline for a competitor from REAL activity data.\n\nReturns moves organized by quarter:\n- Product launches\n- Partnerships\n- Funding announcements\n- Acquisitions\n- Leadership changes\n- GitHub releases\n\nEach move includes source URL for verification.", "operationId": "get_competitor_strategic_moves_api_competitors__competitor_id__strategic_moves_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "months_back", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 36, "minimum": 1, "default": 12, "title": "Months Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/jobs": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Jobs", "description": "Fetch job listings for a competitor.\nUses Playwright for JS-rendered job boards (Ashby, Lever, Greenhouse, etc.)", "operationId": "get_competitor_jobs_api_competitors__competitor_id__jobs_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/linkedin": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Linkedin Mentions", "description": "Search for LinkedIn content mentioning a competitor.\nUses DuckDuckGo with site:linkedin.com query (no API key needed).", "operationId": "get_competitor_linkedin_mentions_api_competitors__competitor_id__linkedin_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 25, "minimum": 1, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/youtube-channel": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor Youtube Channel", "description": "Get videos from the competitor's official YouTube channel.\nThis returns their own content (Key Creators), not influencer mentions.", "operationId": "get_competitor_youtube_channel_api_competitors__competitor_id__youtube_channel_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "max_results", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Max Results" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/analyze-strategy": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Analyze Competitor Strategy", "description": "Stream an AI-powered deep strategy analysis for a competitor.\nUses Claude to analyze growth playbook, vulnerabilities, and counter-strategies.\nInjects REAL strategic moves from our activity tracking (not hallucinated).", "operationId": "analyze_competitor_strategy_api_competitors__competitor_id__analyze_strategy_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/check-updates": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Check Competitor Updates", "description": "Trigger a check for new competitor updates (sitemap, GitHub, etc.)", "operationId": "check_competitor_updates_api_competitors__competitor_id__check_updates_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/discover-sources": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Discover Competitor Sources", "description": "Auto-discover RSS, GitHub, and events sources for a competitor", "operationId": "discover_competitor_sources_api_competitors__competitor_id__discover_sources_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/battlecard": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Battlecard", "description": "Get sales battlecard for a competitor", "operationId": "get_battlecard_api_competitors__competitor_id__battlecard_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/history": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get Competitor History", "description": "Get historical snapshots for trending", "operationId": "get_competitor_history_api_competitors__competitor_id__history_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 7, "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" } } } } } } }, "/api/competitors/{competitor_id}/g2/search": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Search G2 Products", "description": "Search G2 for products matching the competitor.", "operationId": "search_g2_products_api_competitors__competitor_id__g2_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "q", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search query (defaults to competitor name)", "title": "Q" }, "description": "Search query (defaults to competitor name)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/g2/link": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Link G2 Product", "description": "Link a G2 product to a competitor.", "operationId": "link_g2_product_api_competitors__competitor_id__g2_link_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_link_g2_product_api_competitors__competitor_id__g2_link_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/g2/themes": { "get": { "tags": [ "Competitor Intelligence" ], "summary": "Get G2 Themes", "description": "Get cached G2 theme analysis for a competitor.", "operationId": "get_g2_themes_api_competitors__competitor_id__g2_themes_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/g2/analyze-themes": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Analyze G2 Themes", "description": "Analyze G2 reviews and extract positive/negative themes.", "operationId": "analyze_g2_themes_api_competitors__competitor_id__g2_analyze_themes_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_analyze_g2_themes_api_competitors__competitor_id__g2_analyze_themes_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/competitors/{competitor_id}/g2/create-topics": { "post": { "tags": [ "Competitor Intelligence" ], "summary": "Create Topics From G2 Themes", "description": "Create ContentTopics from G2 review themes.", "operationId": "create_topics_from_g2_themes_api_competitors__competitor_id__g2_create_topics_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_create_topics_from_g2_themes_api_competitors__competitor_id__g2_create_topics_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pitch-deck/templates": { "get": { "tags": [ "Pitch Deck Generator" ], "summary": "List Deck Templates", "description": "List available deck templates.", "operationId": "list_deck_templates_api_pitch_deck_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/position": { "post": { "tags": [ "Pitch Deck Generator" ], "summary": "Generate With Positioning", "description": "Generate a pitch deck using explicit positioning inputs.\n\nThis is the \"smart\" flow - you provide the positioning narrative,\nwe generate a deck that tells that story using the selected template.", "operationId": "generate_with_positioning_api_pitch_deck_position_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithPositioningRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/position/html": { "post": { "tags": [ "Pitch Deck Generator" ], "summary": "Generate With Positioning Html", "description": "Generate a pitch deck with positioning and return as HTML.", "operationId": "generate_with_positioning_html_api_pitch_deck_position_html_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateWithPositioningRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/generate": { "post": { "tags": [ "Pitch Deck Generator" ], "summary": "Generate Pitch Deck", "description": "Generate a pitch deck from a website URL.\n\nScrapes the website, extracts messaging, and structures into slides.\n\nStyles:\n- investor: Focus on market, traction, team, ask\n- sales: Focus on pain points, solution, proof, pricing\n- product: Focus on features, how it works, getting started", "operationId": "generate_pitch_deck_api_pitch_deck_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateDeckRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/generate/stream": { "post": { "tags": [ "Pitch Deck Generator" ], "summary": "Generate Pitch Deck Stream", "description": "Stream pitch deck generation with progress updates.\n\nReturns Server-Sent Events with:\n- {\"status\": \"scraping\", \"message\": \"...\"}\n- {\"status\": \"scraped\", \"pages\": [...]}\n- {\"status\": \"generating\", \"message\": \"...\"}\n- {\"status\": \"complete\", \"deck\": {...}}", "operationId": "generate_pitch_deck_stream_api_pitch_deck_generate_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateDeckRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/generate/html": { "post": { "tags": [ "Pitch Deck Generator" ], "summary": "Generate Pitch Deck Html", "description": "Generate a pitch deck and return as a self-contained HTML file.\n\nThe HTML uses brand colors and fonts extracted from the website.\nCan be opened in browser, printed to PDF, or shared directly.", "operationId": "generate_pitch_deck_html_api_pitch_deck_generate_html_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateDeckRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pitch-deck/preview": { "get": { "tags": [ "Pitch Deck Generator" ], "summary": "Preview Website Content", "description": "Preview what content will be extracted from a website.\nUseful for debugging before generating a full deck.", "operationId": "preview_website_content_api_pitch_deck_preview_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "url", "in": "query", "required": true, "schema": { "type": "string", "description": "Website URL to preview", "title": "Url" }, "description": "Website URL to preview" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/generate-prompts": { "post": { "tags": [ "GEO/AEO" ], "summary": "Generate Prompts", "description": "Generate GEO/AEO prompts based on company context.\n\nUses the content generator with GEO_PROMPT format to create\nrelevant search prompts that potential customers might ask AI assistants.\n\nWhen multi_source=True (default), generates prompts from three context sources:\n- Messaging Framework (40%): positioning, use cases, personas\n- Competitive Intelligence (30%): tracked competitors, differentiation\n- Social Signals (30%): trending topics, pain points from discussions\n\nIf competitors not provided, automatically fetches from Competitive Intelligence.", "operationId": "generate_prompts_api_geo_aeo_generate_prompts_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneratePromptsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/generate-prompts/stream": { "post": { "tags": [ "GEO/AEO" ], "summary": "Generate Prompts Stream", "description": "Generate GEO prompts with SSE streaming - returns prompts as each category completes.\n\nEvents:\n- status: Progress updates (e.g., \"Syncing Messaging Framework...\")\n- prompts: Array of prompts for a completed category\n- complete: Final summary\n- error: Error messages", "operationId": "generate_prompts_stream_api_geo_aeo_generate_prompts_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneratePromptsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/test-prompt": { "post": { "tags": [ "GEO/AEO" ], "summary": "Test Single Prompt", "description": "Test a single prompt across AI models to check brand visibility.\n\nReturns visibility score and individual model responses.", "operationId": "test_single_prompt_api_geo_aeo_test_prompt_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SinglePromptTestRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VisibilityResultResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/run-scan": { "post": { "tags": [ "GEO/AEO" ], "summary": "Run Visibility Scan", "description": "Run a full visibility scan across multiple prompts and AI models.\n\nReturns a comprehensive visibility report with scores,\nrecommendations, and areas for improvement.\n\nIf save_to_library=True, prompts are saved to the target_prompts table\nwith their visibility scores.", "operationId": "run_visibility_scan_api_geo_aeo_run_scan_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPromptsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VisibilityReportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/run-scan/stream": { "post": { "tags": [ "GEO/AEO" ], "summary": "Run Visibility Scan Stream", "description": "Run visibility scan with SSE streaming - returns results as each prompt completes.\n\nEvents:\n- status: Progress updates\n- result: Individual prompt result as it completes\n- summary: Final summary with overall scores\n- error: Error messages", "operationId": "run_visibility_scan_stream_api_geo_aeo_run_scan_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPromptsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/models": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Available Models", "description": "Get list of available AI models for visibility testing.", "operationId": "get_available_models_api_geo_aeo_models_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/geo-aeo/prompt-categories": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Prompt Categories", "description": "Get list of prompt categories for organization.", "operationId": "get_prompt_categories_api_geo_aeo_prompt_categories_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/geo-aeo/sessions": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Session Status", "description": "Check session status for all AI platforms.\nReturns which platforms have valid sessions for web-based queries.", "operationId": "get_session_status_api_geo_aeo_sessions_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/geo-aeo/sessions/{platform}": { "post": { "tags": [ "GEO/AEO" ], "summary": "Save Session", "description": "Save session cookies for an AI platform.\n\nUse browser dev tools to export cookies:\n1. Open the AI platform and log in\n2. Open DevTools > Application > Cookies\n3. Export all cookies as JSON", "operationId": "save_session_api_geo_aeo_sessions__platform__post", "parameters": [ { "name": "platform", "in": "path", "required": true, "schema": { "type": "string", "title": "Platform" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/query-mode": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Query Mode", "description": "Get the current query mode (API or Web).", "operationId": "get_query_mode_api_geo_aeo_query_mode_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/geo-aeo/query-mode/{mode}": { "post": { "tags": [ "GEO/AEO" ], "summary": "Set Query Mode", "description": "Set the query mode (api or web).", "operationId": "set_query_mode_api_geo_aeo_query_mode__mode__post", "parameters": [ { "name": "mode", "in": "path", "required": true, "schema": { "type": "string", "title": "Mode" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts": { "get": { "tags": [ "GEO/AEO" ], "summary": "List Prompts", "description": "List all target prompts for the org.", "operationId": "list_prompts_api_geo_aeo_prompts_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Topic" } }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" } }, { "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": { "type": "object", "additionalProperties": true, "title": "Response List Prompts Api Geo Aeo Prompts Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "GEO/AEO" ], "summary": "Create Prompt", "description": "Create a new target prompt.", "operationId": "create_prompt_api_geo_aeo_prompts_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TargetPromptCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TargetPromptResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts/bulk": { "post": { "tags": [ "GEO/AEO" ], "summary": "Bulk Create Prompts", "description": "Bulk create target prompts.", "operationId": "bulk_create_prompts_api_geo_aeo_prompts_bulk_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkPromptCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Bulk Create Prompts Api Geo Aeo Prompts Bulk Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/prompts/{prompt_id}": { "patch": { "tags": [ "GEO/AEO" ], "summary": "Update Prompt", "description": "Update a target prompt.", "operationId": "update_prompt_api_geo_aeo_prompts__prompt_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TargetPromptUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TargetPromptResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "GEO/AEO" ], "summary": "Delete Prompt", "description": "Delete a target prompt.", "operationId": "delete_prompt_api_geo_aeo_prompts__prompt_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" }, "title": "Response Delete Prompt Api Geo Aeo Prompts Prompt Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/topics": { "get": { "tags": [ "GEO/AEO" ], "summary": "List Topics", "description": "List all topics for the org.", "operationId": "list_topics_api_geo_aeo_topics_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TopicResponse" }, "type": "array", "title": "Response List Topics Api Geo Aeo Topics Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "GEO/AEO" ], "summary": "Create Topic", "description": "Create a new topic.", "operationId": "create_topic_api_geo_aeo_topics_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TopicCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TopicResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/topics/{topic_name}": { "delete": { "tags": [ "GEO/AEO" ], "summary": "Delete Topic", "description": "Delete a topic (prompts with this topic will have topic set to 'Uncategorized').", "operationId": "delete_topic_api_geo_aeo_topics__topic_name__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Topic Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" }, "title": "Response Delete Topic Api Geo Aeo Topics Topic Name Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts/{prompt_id}/continuous-testing": { "post": { "tags": [ "GEO/AEO" ], "summary": "Toggle Continuous Testing", "description": "Mark a prompt for continuous testing.\nThese prompts will be tested on every hourly scan.", "operationId": "toggle_continuous_testing_api_geo_aeo_prompts__prompt_id__continuous_testing_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "enabled", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Enabled" } }, { "name": "frequency_minutes", "in": "query", "required": false, "schema": { "type": "integer", "default": 60, "title": "Frequency Minutes" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Toggle Continuous Testing Api Geo Aeo Prompts Prompt Id Continuous Testing Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts/bulk-schedule": { "post": { "tags": [ "GEO/AEO" ], "summary": "Bulk Update Schedule", "description": "Bulk enable/disable continuous testing for multiple prompts.", "operationId": "bulk_update_schedule_api_geo_aeo_prompts_bulk_schedule_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkScheduleRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Bulk Update Schedule Api Geo Aeo Prompts Bulk Schedule Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/prompts/continuous": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Continuous Testing Prompts", "description": "Get all prompts marked for continuous testing.", "operationId": "get_continuous_testing_prompts_api_geo_aeo_prompts_continuous_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Continuous Testing Prompts Api Geo Aeo Prompts Continuous Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/results/latest": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Latest Visibility Results", "description": "Get the latest visibility scan results.\nReturns the most recent snapshot plus top/bottom performing prompts.", "operationId": "get_latest_visibility_results_api_geo_aeo_results_latest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Latest Visibility Results Api Geo Aeo Results Latest Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/prompts/{prompt_id}/responses": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Prompt Responses", "description": "Get the last AI responses for a specific prompt.\nShows what each AI model said when tested.", "operationId": "get_prompt_responses_api_geo_aeo_prompts__prompt_id__responses_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Prompt Responses Api Geo Aeo Prompts Prompt Id Responses Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts/scan": { "post": { "tags": [ "GEO/AEO" ], "summary": "Scan Saved Prompts", "description": "Run visibility scan on saved prompts.\nEither provide prompt_ids or topic to select prompts.", "operationId": "scan_saved_prompts_api_geo_aeo_prompts_scan_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Topic" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_scan_saved_prompts_api_geo_aeo_prompts_scan_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Scan Saved Prompts Api Geo Aeo Prompts Scan Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/prompts/generate-and-save": { "post": { "tags": [ "GEO/AEO" ], "summary": "Generate And Save Prompts", "description": "Generate prompts from context and save them to the library.\nFetches context from org's Messaging Framework if not provided.", "operationId": "generate_and_save_prompts_api_geo_aeo_prompts_generate_and_save_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "default_topic", "in": "query", "required": false, "schema": { "type": "string", "default": "Generated", "title": "Default Topic" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneratePromptsRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Generate And Save Prompts Api Geo Aeo Prompts Generate And Save Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/scan/start": { "post": { "tags": [ "GEO/AEO" ], "summary": "Start Visibility Scan", "description": "Start an async visibility scan job.\n\nReturns a job_id that can be used to check progress and retrieve results.\nThe scan runs in a Celery worker and tests prompts against multiple LLMs.", "operationId": "start_visibility_scan_api_geo_aeo_scan_start_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StartScanRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScanJobResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/scan/{job_id}/status": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Scan Status", "description": "Check the status of an async visibility scan job.\n\nReturns progress, current state, and results when complete.", "operationId": "get_scan_status_api_geo_aeo_scan__job_id__status_get", "security": [ { "HTTPBearer": [] } ], "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/geo-aeo/guidance/stream": { "post": { "tags": [ "GEO/AEO" ], "summary": "Stream Visibility Guidance", "description": "Stream AI-generated guidance for a visibility gap.\n\nAnalyzes the visibility result and streams actionable advice\non what the gap means and how to address it through content.", "operationId": "stream_visibility_guidance_api_geo_aeo_guidance_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuidanceRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/content-topics": { "post": { "tags": [ "GEO/AEO" ], "summary": "Save Content Topic", "description": "Save a visibility gap as a content topic for the content strategist.\n\nCreates a backlog item that content teams can review, prioritize, and schedule.\nAlso pushes to AirOps vector store for use in content workflows.", "operationId": "save_content_topic_api_geo_aeo_content_topics_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SaveContentTopicRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentTopicResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "GEO/AEO" ], "summary": "List Content Topics", "description": "List content topics for the content strategist.\n\nOptionally filter by source (manual, signal, geo_visibility, competitor_gap)\nor category (use_case, persona, competitive, technical, integration, pricing, general).", "operationId": "list_content_topics_api_geo_aeo_content_topics_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" } }, { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ContentTopicResponse" }, "title": "Response List Content Topics Api Geo Aeo Content Topics Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/airops/sync": { "post": { "tags": [ "GEO/AEO" ], "summary": "Sync To Airops", "description": "Sync the Messaging Framework context stream to AirOps vector store.\n\nPushes personas, use cases, products, and positioning for use in\nAirOps AI workflows and content generation.", "operationId": "sync_to_airops_api_geo_aeo_airops_sync_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/airops/context": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Context For Airops", "description": "Get context data formatted for AirOps workflow consumption.\n\nThis endpoint can be called by AirOps workflows to fetch fresh\nGTM context for content generation.\n\nArgs:\n context_type: Type of context (use_cases, personas, products, content_topics, all)\n limit: Max items to return\n\nReturns:\n JSON array of items ready for AirOps workflow processing", "operationId": "get_context_for_airops_api_geo_aeo_airops_context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "context_type", "in": "query", "required": false, "schema": { "type": "string", "default": "all", "title": "Context Type" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/airops/search": { "get": { "tags": [ "GEO/AEO" ], "summary": "Search Airops", "description": "Search the AirOps vector store for relevant context.\n\nArgs:\n query: Semantic search query\n context_type: Optional filter (persona, use_case, product, positioning, content_topic)\n top_k: Number of results (default 5)", "operationId": "search_airops_api_geo_aeo_airops_search_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "title": "Query" } }, { "name": "context_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context Type" } }, { "name": "top_k", "in": "query", "required": false, "schema": { "type": "integer", "default": 5, "title": "Top K" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/airops/export/content-topics.csv": { "get": { "tags": [ "GEO/AEO" ], "summary": "Export Content Topics Csv", "description": "Export content topics as CSV for AirOps Grid import.\n\nThe CSV includes columns optimized for content generation workflows:\n- topic_id, prompt, visibility_score, brand_mentioned, competitors\n- priority, category, suggested_action", "operationId": "export_content_topics_csv_api_geo_aeo_airops_export_content_topics_csv_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "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" } } } } } } }, "/api/geo-aeo/airops/export/use-cases.csv": { "get": { "tags": [ "GEO/AEO" ], "summary": "Export Use Cases Csv", "description": "Export use cases as CSV for AirOps Grid import.\n\nFetches use cases from Gypsum and formats for content generation workflows.", "operationId": "export_use_cases_csv_api_geo_aeo_airops_export_use_cases_csv_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/airops/export/personas.csv": { "get": { "tags": [ "GEO/AEO" ], "summary": "Export Personas Csv", "description": "Export personas as CSV for AirOps Grid import.\n\nFetches personas from Gypsum and formats for targeted content workflows.", "operationId": "export_personas_csv_api_geo_aeo_airops_export_personas_csv_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/airops/export/geo-prompts.csv": { "get": { "tags": [ "GEO/AEO" ], "summary": "Export Geo Prompts Csv", "description": "Export generated GEO prompts as CSV for AirOps Grid import.\n\nUseful for batch visibility testing workflows in AirOps.", "operationId": "export_geo_prompts_csv_api_geo_aeo_airops_export_geo_prompts_csv_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/content-topics/{topic_id}": { "patch": { "tags": [ "GEO/AEO" ], "summary": "Update Content Topic", "description": "Update a content topic's prompt, category, source, or notes.", "operationId": "update_content_topic_api_geo_aeo_content_topics__topic_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Topic Id" } }, { "name": "prompt", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prompt" } }, { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" } }, { "name": "source", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" } }, { "name": "notes", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "GEO/AEO" ], "summary": "Delete Content Topic", "description": "Delete a content topic (prune from the topic library).", "operationId": "delete_content_topic_api_geo_aeo_content_topics__topic_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Topic Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/content-topics/from-signals": { "post": { "tags": [ "GEO/AEO" ], "summary": "Create Topics From Signals", "description": "Create content topics from one or more signals.\n\nThis allows users to convert discovered signals (from Reddit, LinkedIn, GitHub, etc.)\ninto content topics for the content strategist to work on.", "operationId": "create_topics_from_signals_api_geo_aeo_content_topics_from_signals_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTopicsFromSignalsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/content-topics/from-competitor/{competitor_id}": { "post": { "tags": [ "GEO/AEO" ], "summary": "Create Topics From Competitor", "description": "Generate content topics from a competitor's recent activities.\n\nConverts competitor blog posts, releases, news, etc. into content topics\nfor the content strategist to work on.", "operationId": "create_topics_from_competitor_api_geo_aeo_content_topics_from_competitor__competitor_id__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } }, { "name": "activity_types", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by activity types", "title": "Activity Types" }, "description": "Filter by activity types" }, { "name": "only_significant", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Only significant activities", "default": false, "title": "Only Significant" }, "description": "Only significant activities" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Max activities to process", "default": 10, "title": "Limit" }, "description": "Max activities to process" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/content-topics/from-all-competitors": { "post": { "tags": [ "GEO/AEO" ], "summary": "Create Topics From All Competitors", "description": "Generate content topics from all competitors' recent activities.\n\nScans all active competitors for significant activities and creates\ncontent topics for the backlog.", "operationId": "create_topics_from_all_competitors_api_geo_aeo_content_topics_from_all_competitors_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "only_significant", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Only significant activities", "default": true, "title": "Only Significant" }, "description": "Only significant activities" }, { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "description": "Days to look back", "default": 7, "title": "Days Back" }, "description": "Days to look back" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/brand-snapshots/daily": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Daily Brand Snapshots", "description": "Get daily brand snapshots - AI responses to \"What can you tell me about {company}?\"\n\nReturns recent daily snapshots with:\n- Responses from each AI model\n- Daily analysis comparing models\n- Changes detected from previous day", "operationId": "get_daily_brand_snapshots_api_geo_aeo_brand_snapshots_daily_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/brand-snapshots/weekly": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Weekly Brand Insights", "description": "Get weekly brand insights - meta-analysis of daily snapshots.\n\nReturns weekly summaries with:\n- Weekly analysis of trends\n- Identified opportunities\n- Visibility score averages", "operationId": "get_weekly_brand_insights_api_geo_aeo_brand_snapshots_weekly_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 4, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/brand-snapshots/run": { "post": { "tags": [ "GEO/AEO" ], "summary": "Run Brand Snapshot", "description": "Manually trigger a brand snapshot for demo/testing.\n\nQueries all AI models about the company and generates analysis.\nUse force=true to delete existing snapshot for today and re-run.", "operationId": "run_brand_snapshot_api_geo_aeo_brand_snapshots_run_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_name", "in": "query", "required": false, "schema": { "type": "string", "default": "Vantiq", "title": "Company Name" } }, { "name": "force", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Force" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/baseline-probe/run": { "post": { "tags": [ "GEO/AEO" ], "summary": "Run Baseline Probe", "description": "Run a baseline probe: \"What do you know about {company} and how do\nthey compare to their closest competition?\"\n\nThis is designed to run daily to track AI awareness and accuracy over time.\nResults can be charted to show trends.", "operationId": "run_baseline_probe_api_geo_aeo_baseline_probe_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BaselineProbeRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Run Baseline Probe Api Geo Aeo Baseline Probe Run Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-aeo/baseline-probe/history": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Baseline Probe History", "description": "Get baseline probe history for charting.\nReturns daily snapshots showing awareness and accuracy trends over time.", "operationId": "get_baseline_probe_history_api_geo_aeo_baseline_probe_history_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } }, { "name": "company_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Baseline Probe History Api Geo Aeo Baseline Probe History Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-aeo/baseline-probe/latest": { "get": { "tags": [ "GEO/AEO" ], "summary": "Get Latest Baseline Probe", "description": "Get the most recent baseline probe results.\nReturns the latest snapshot plus individual model responses.", "operationId": "get_latest_baseline_probe_api_geo_aeo_baseline_probe_latest_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Latest Baseline Probe Api Geo Aeo Baseline Probe Latest Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-graph/": { "get": { "tags": [ "context-graph" ], "summary": "Get Context Graph Ontology", "description": "Get the Context Graph ontology.\n\nSupports content negotiation:\n- text/html: Human-readable documentation\n- application/ld+json: JSON-LD context\n- application/json: JSON schema", "operationId": "get_context_graph_ontology_api_context_graph__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/context-graph": { "get": { "tags": [ "context-graph" ], "summary": "Get Context Graph Ontology", "description": "Get the Context Graph ontology.\n\nSupports content negotiation:\n- text/html: Human-readable documentation\n- application/ld+json: JSON-LD context\n- application/json: JSON schema", "operationId": "get_context_graph_ontology_api_context_graph_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/context-graph/context.jsonld": { "get": { "tags": [ "context-graph" ], "summary": "Get Jsonld Context", "description": "Get the JSON-LD context file.\n\nUse this in your JSON-LD documents:\n{\"@context\": \"https://voyant.io/context-graph/context.jsonld\", ...}", "operationId": "get_jsonld_context_api_context_graph_context_jsonld_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/context-graph/claims": { "get": { "tags": [ "context-graph" ], "summary": "Get Claim Types", "description": "Get all supported claim types.", "operationId": "get_claim_types_api_context_graph_claims_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/context-graph/claims/{claim_id}": { "get": { "tags": [ "context-graph" ], "summary": "Get Claim Type", "description": "Get a specific claim type definition.", "operationId": "get_claim_type_api_context_graph_claims__claim_id__get", "parameters": [ { "name": "claim_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Claim Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-graph/schema": { "get": { "tags": [ "context-graph" ], "summary": "Get Schema", "description": "Get the full ontology schema.", "operationId": "get_schema_api_context_graph_schema_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/context-graph/mutations": { "post": { "tags": [ "context-graph" ], "summary": "Create Mutation", "description": "Create a new context mutation with attestations.\n\nThis is the primary API for tracking context changes with provenance.", "operationId": "create_mutation_api_context_graph_mutations_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MutationCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "context-graph" ], "summary": "List Mutations", "description": "List context mutations for the organization.", "operationId": "list_mutations_api_context_graph_mutations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "entity_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by entity type", "title": "Entity Type" }, "description": "Filter by entity type" }, { "name": "entity_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by entity ID", "title": "Entity Id" }, "description": "Filter by entity ID" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "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" } } } } } } }, "/api/context-graph/mutations/{mutation_id}": { "get": { "tags": [ "context-graph" ], "summary": "Get Mutation", "description": "Get a specific mutation by ID.", "operationId": "get_mutation_api_context_graph_mutations__mutation_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "mutation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Mutation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-graph/provenance": { "post": { "tags": [ "context-graph" ], "summary": "Create Provenance", "description": "Create a provenance relationship between entities.", "operationId": "create_provenance_api_context_graph_provenance_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProvenanceCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-graph/entities/{entity_type}/{entity_id}/provenance": { "get": { "tags": [ "context-graph" ], "summary": "Get Entity Provenance", "description": "Get the provenance graph for an entity.\n\nReturns all derivation relationships up to the specified depth.", "operationId": "get_entity_provenance_api_context_graph_entities__entity_type___entity_id__provenance_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "entity_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Type" } }, { "name": "entity_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entity Id" } }, { "name": "direction", "in": "query", "required": false, "schema": { "type": "string", "description": "up (ancestors), down (descendants), or both", "default": "both", "title": "Direction" }, "description": "up (ancestors), down (descendants), or both" }, { "name": "depth", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 1, "description": "How many levels to traverse", "default": 5, "title": "Depth" }, "description": "How many levels to traverse" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-graph/policies": { "post": { "tags": [ "context-graph" ], "summary": "Create Policy", "description": "Create a governance policy for context changes.", "operationId": "create_policy_api_context_graph_policies_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GovernancePolicyCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "context-graph" ], "summary": "List Policies", "description": "List governance policies for the organization.", "operationId": "list_policies_api_context_graph_policies_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "active_only", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Only return active policies", "default": true, "title": "Active Only" }, "description": "Only return active policies" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-graph/policies/{policy_id}": { "get": { "tags": [ "context-graph" ], "summary": "Get Policy", "description": "Get a specific governance policy.", "operationId": "get_policy_api_context_graph_policies__policy_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/gsc/status": { "get": { "tags": [ "Google Search Console" ], "summary": "Get Gsc Status", "description": "Check if GSC is connected and available", "operationId": "get_gsc_status_api_gsc_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Gsc Status Api Gsc Status Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/gsc/sites": { "get": { "tags": [ "Google Search Console" ], "summary": "List Gsc Sites", "description": "List all verified sites in Google Search Console", "operationId": "list_gsc_sites_api_gsc_sites_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/GSCSiteResponse" }, "type": "array", "title": "Response List Gsc Sites Api Gsc Sites Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/gsc/queries": { "get": { "tags": [ "Google Search Console" ], "summary": "Get Search Queries", "description": "Get top search queries for a site", "operationId": "get_search_queries_api_gsc_queries_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "site_url", "in": "query", "required": true, "schema": { "type": "string", "description": "Site URL from /sites endpoint", "title": "Site Url" }, "description": "Site URL from /sites endpoint" }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Days to look back", "default": 28, "title": "Days" }, "description": "Days to look back" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "description": "Max queries to return", "default": 100, "title": "Limit" }, "description": "Max queries to return" }, { "name": "filter_query", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter queries containing this text", "title": "Filter Query" }, "description": "Filter queries containing this text" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GSCQueriesResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/gsc/opportunities": { "get": { "tags": [ "Google Search Console" ], "summary": "Get Query Opportunities", "description": "Find query opportunities - high impression queries with poor rankings.\n\nThese are queries where you're getting visibility but not clicks,\nsuggesting content optimization or new content opportunities.", "operationId": "get_query_opportunities_api_gsc_opportunities_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "site_url", "in": "query", "required": true, "schema": { "type": "string", "description": "Site URL", "title": "Site Url" }, "description": "Site URL" }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "default": 28, "title": "Days" } }, { "name": "min_impressions", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 100, "title": "Min Impressions" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": true }, "title": "Response Get Query Opportunities Api Gsc Opportunities Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/gsc/import-to-prompts": { "post": { "tags": [ "Google Search Console" ], "summary": "Import Queries To Prompts", "description": "Import GSC queries as target prompts for GEO/AEO tracking.\n\nConverts search queries into prompts that can be tracked\nfor AI search visibility.", "operationId": "import_queries_to_prompts_api_gsc_import_to_prompts_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportQueriesRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/gsc/page-queries": { "get": { "tags": [ "Google Search Console" ], "summary": "Get Page Queries", "description": "Get search queries driving traffic to a specific page", "operationId": "get_page_queries_api_gsc_page_queries_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "site_url", "in": "query", "required": true, "schema": { "type": "string", "description": "Site URL", "title": "Site Url" }, "description": "Site URL" }, { "name": "page_url", "in": "query", "required": true, "schema": { "type": "string", "description": "Specific page URL to analyze", "title": "Page Url" }, "description": "Specific page URL to analyze" }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "default": 28, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Page Queries Api Gsc Page Queries Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/command-center/activity/stream": { "get": { "tags": [ "Command Center" ], "summary": "Stream Activity", "description": "SSE endpoint for real-time activity stream.\n\nConnect to this endpoint to receive live updates.", "operationId": "stream_activity_api_command_center_activity_stream_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/command-center/activity": { "get": { "tags": [ "Command Center" ], "summary": "Get Recent Activity", "description": "Get recent activity from the stream", "operationId": "get_recent_activity_api_command_center_activity_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "activity_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Activity Type" } }, { "name": "source", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" } }, { "name": "unread_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Unread Only" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ActivityResponse" }, "title": "Response Get Recent Activity Api Command Center Activity Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/command-center/activity/read": { "post": { "tags": [ "Command Center" ], "summary": "Mark Activity Read", "description": "Mark activities as read", "operationId": "mark_activity_read_api_command_center_activity_read_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Activity Ids" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/command-center/agents": { "get": { "tags": [ "Command Center" ], "summary": "List Agents", "description": "List all registered agents", "operationId": "list_agents_api_command_center_agents_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response List Agents Api Command Center Agents Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Command Center" ], "summary": "Register Agent", "description": "Register a new agent", "operationId": "register_agent_api_command_center_agents_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterAgentRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/command-center/agents/{agent_id}/pause": { "post": { "tags": [ "Command Center" ], "summary": "Pause Agent", "description": "Pause an agent", "operationId": "pause_agent_api_command_center_agents__agent_id__pause_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "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/command-center/agents/{agent_id}/resume": { "post": { "tags": [ "Command Center" ], "summary": "Resume Agent", "description": "Resume a paused agent", "operationId": "resume_agent_api_command_center_agents__agent_id__resume_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "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/command-center/agents/{agent_id}/run": { "post": { "tags": [ "Command Center" ], "summary": "Trigger Agent Run", "description": "Manually trigger an agent run", "operationId": "trigger_agent_run_api_command_center_agents__agent_id__run_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "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/command-center/agents/types": { "get": { "tags": [ "Command Center" ], "summary": "Get Agent Types", "description": "Get available agent types", "operationId": "get_agent_types_api_command_center_agents_types_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/command-center/integrations/health": { "get": { "tags": [ "Command Center" ], "summary": "Get Integration Health", "description": "Get health status of all integrations", "operationId": "get_integration_health_api_command_center_integrations_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HealthSummaryResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/command-center/integrations/{integration_type}/status": { "get": { "tags": [ "Command Center" ], "summary": "Get Integration Status", "description": "Get detailed status of a specific integration", "operationId": "get_integration_status_api_command_center_integrations__integration_type__status_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "integration_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Integration Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/command-center/visibility/latest": { "get": { "tags": [ "Command Center" ], "summary": "Get Latest Visibility", "description": "Get most recent visibility snapshot", "operationId": "get_latest_visibility_api_command_center_visibility_latest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/VisibilitySnapshotResponse" }, { "type": "null" } ], "title": "Response Get Latest Visibility Api Command Center Visibility Latest Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/command-center/visibility/history": { "get": { "tags": [ "Command Center" ], "summary": "Get Visibility History", "description": "Get visibility history over time", "operationId": "get_visibility_history_api_command_center_visibility_history_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "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" } } } } } } }, "/api/command-center/dashboard": { "get": { "tags": [ "Command Center" ], "summary": "Get Dashboard Summary", "description": "Get complete dashboard summary for initial page load.\n\nReturns all widgets data in one request for fast initial render.", "operationId": "get_dashboard_summary_api_command_center_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/command-center/geo-prompts": { "get": { "tags": [ "Command Center" ], "summary": "Get Geo Prompts Status", "description": "Get GEO prompts status and recent test results.\nShows which prompts are being used for visibility tracking.", "operationId": "get_geo_prompts_status_api_command_center_geo_prompts_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-intelligence/dashboard": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Intelligence Dashboard", "description": "Get the complete GEO Intelligence dashboard.\n\nReturns:\n- Summary stats (prompts, visibility, monitoring)\n- Visibility trend over time\n- Hot topics from GSC + GEO\n- Visibility gaps (opportunities)\n- Content recommendations\n- Top performing prompts\n- Prompts needing improvement", "operationId": "get_intelligence_dashboard_api_geo_intelligence_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Intelligence Dashboard Api Geo Intelligence Dashboard Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-intelligence/hot-topics": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Hot Topics", "description": "Get hot topics based on GSC data + GEO visibility.\n\nHot topics are high-impression queries where AI visibility\nis low or unknown - your biggest opportunities.", "operationId": "get_hot_topics_api_geo_intelligence_hot_topics_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 7, "default": 30, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 5, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HotTopicResponse" }, "title": "Response Get Hot Topics Api Geo Intelligence Hot Topics Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/visibility-gaps": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Visibility Gaps", "description": "Get visibility gaps - topics with high search demand but low AI visibility.\n\nThese are your biggest opportunities to improve AI presence.", "operationId": "get_visibility_gaps_api_geo_intelligence_visibility_gaps_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/InsightResponse" }, "type": "array", "title": "Response Get Visibility Gaps Api Geo Intelligence Visibility Gaps Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-intelligence/competitor-insights": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Competitor Insights", "description": "Get insights on where competitors are being mentioned by AI instead of you.\n\nIf competitors not provided, automatically fetches from your tracked competitors\nin the Competitive Intelligence system.", "operationId": "get_competitor_insights_api_geo_intelligence_competitor_insights_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitors", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Competitor names (auto-fetched if not provided)", "title": "Competitors" }, "description": "Competitor names (auto-fetched if not provided)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/InsightResponse" }, "title": "Response Get Competitor Insights Api Geo Intelligence Competitor Insights Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/recommendations": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Recommendations", "description": "Get actionable content recommendations based on GEO + GSC intelligence.\n\nReturns prioritized list of:\n- Content to create (visibility gaps)\n- Prompts to add (untested topics)\n- Content to optimize (low visibility)", "operationId": "get_recommendations_api_geo_intelligence_recommendations_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 25, "minimum": 5, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RecommendationResponse" }, "title": "Response Get Recommendations Api Geo Intelligence Recommendations Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/prompts/generate-from-gsc": { "post": { "tags": [ "GEO Intelligence" ], "summary": "Generate Prompts From Gsc", "description": "Generate GEO prompts from GSC search queries.\n\nThis creates prompts from your actual search traffic,\nensuring you're testing what people actually search for.", "operationId": "generate_prompts_from_gsc_api_geo_intelligence_prompts_generate_from_gsc_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Topic Filter" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 20, "minimum": 5, "default": 10, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Generate Prompts From Gsc Api Geo Intelligence Prompts Generate From Gsc Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/stream": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Geo Activity Stream", "description": "Get the GEO activity stream - recent test results, visibility changes, insights.\n\nThis is the real-time feed of GEO intelligence activity.", "operationId": "get_geo_activity_stream_api_geo_intelligence_stream_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 10, "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Geo Activity Stream Api Geo Intelligence Stream Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/gsc/sync": { "post": { "tags": [ "GEO Intelligence" ], "summary": "Sync Gsc Queries", "description": "Sync search queries from Google Search Console.\n\nThis pulls your top search queries and stores them for\nhot topic analysis and prompt generation.", "operationId": "sync_gsc_queries_api_geo_intelligence_gsc_sync_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 7, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Sync Gsc Queries Api Geo Intelligence Gsc Sync Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/gsc/status": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Gsc Status", "description": "Check GSC connection status and query stats.", "operationId": "get_gsc_status_api_geo_intelligence_gsc_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Gsc Status Api Geo Intelligence Gsc Status Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/geo-intelligence/daily-report": { "get": { "tags": [ "GEO Intelligence" ], "summary": "Get Daily Report", "description": "Generate a daily GEO intelligence report.\n\n- format=json: Returns structured report data\n- format=slack: Returns Slack Block Kit formatted message", "operationId": "get_daily_report_api_geo_intelligence_daily_report_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "format", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "json", "slack" ], "default": "json", "title": "Format" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Daily Report Api Geo Intelligence Daily Report Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/geo-intelligence/send-slack-report": { "post": { "tags": [ "GEO Intelligence" ], "summary": "Send Slack Report", "description": "Generate and send the daily GEO report to Slack.\n\nRequires a Slack incoming webhook URL.", "operationId": "send_slack_report_api_geo_intelligence_send_slack_report_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "webhook_url", "in": "query", "required": true, "schema": { "type": "string", "title": "Webhook Url" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Send Slack Report Api Geo Intelligence Send Slack Report Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/track": { "post": { "tags": [ "telemetry" ], "summary": "Track Events", "description": "Track events from frontend.\n\nThis endpoint is public - no auth required.\nRate limited by IP.", "operationId": "track_events_api_telemetry_track_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrackResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/end-session": { "post": { "tags": [ "telemetry" ], "summary": "End Session", "description": "Mark a session as ended (called on page unload).", "operationId": "end_session_api_telemetry_end_session_post", "parameters": [ { "name": "session_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Session 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" } } } } } } }, "/api/telemetry/stats": { "get": { "tags": [ "telemetry" ], "summary": "Get Stats", "description": "Get summary statistics for the organization.", "operationId": "get_stats_api_telemetry_stats_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TelemetryStatsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/visitors": { "get": { "tags": [ "telemetry" ], "summary": "Get Visitors", "description": "Get list of visitors.", "operationId": "get_visitors_api_telemetry_visitors_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "enriched_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Enriched Only" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/visitors/{visitor_id}": { "get": { "tags": [ "telemetry" ], "summary": "Get Visitor Detail", "description": "Get detailed visitor info with sessions.", "operationId": "get_visitor_detail_api_telemetry_visitors__visitor_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "visitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Visitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/sessions/{session_id}/events": { "get": { "tags": [ "telemetry" ], "summary": "Get Session Events", "description": "Get all events for a session.", "operationId": "get_session_events_api_telemetry_sessions__session_id__events_get", "security": [ { "HTTPBearer": [] } ], "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/telemetry/companies": { "get": { "tags": [ "telemetry" ], "summary": "Get Companies", "description": "Get identified companies from IP enrichment.", "operationId": "get_companies_api_telemetry_companies_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "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/telemetry/pages": { "get": { "tags": [ "telemetry" ], "summary": "Get Top Pages", "description": "Get top pages by views.", "operationId": "get_top_pages_api_telemetry_pages_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/events/by-type": { "get": { "tags": [ "telemetry" ], "summary": "Get Events By Type", "description": "Get event counts grouped by type.", "operationId": "get_events_by_type_api_telemetry_events_by_type_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/search-terms": { "get": { "tags": [ "telemetry" ], "summary": "Get Search Terms", "description": "Get Google Search Console search terms driving traffic.\n\nRequires GSC to be connected via Google OAuth.", "operationId": "get_search_terms_api_telemetry_search_terms_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "default": 28, "title": "Days" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 500, "minimum": 1, "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/telemetry/likely-search-term/public": { "get": { "tags": [ "telemetry" ], "summary": "Get Likely Search Term Public", "description": "Public endpoint to get likely search term for a page.\n\nUsed by telemetry tracking to infer search terms from GSC data.\nLimited to known organizations for security.", "operationId": "get_likely_search_term_public_api_telemetry_likely_search_term_public_get", "parameters": [ { "name": "page_path", "in": "query", "required": true, "schema": { "type": "string", "description": "Landing page path, e.g. /blog/ai-agents", "title": "Page Path" }, "description": "Landing page path, e.g. /blog/ai-agents" }, { "name": "org_id", "in": "query", "required": true, "schema": { "type": "string", "description": "Organization ID", "title": "Org Id" }, "description": "Organization ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/telemetry/likely-search-term": { "get": { "tags": [ "telemetry" ], "summary": "Get Likely Search Term", "description": "Get likely search term(s) that drove traffic to a specific page.\n\nUses Google Search Console data to find top queries for the given landing page.\nUseful for inferring what search term a visitor used when they came from Google.", "operationId": "get_likely_search_term_api_telemetry_likely_search_term_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "page_path", "in": "query", "required": true, "schema": { "type": "string", "description": "Landing page path, e.g. /blog/ai-agents", "title": "Page Path" }, "description": "Landing page path, e.g. /blog/ai-agents" }, { "name": "site_url", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Override site URL", "title": "Site Url" }, "description": "Override site URL" }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 7, "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" } } } } } } }, "/api/telemetry/visitors/geo": { "get": { "tags": [ "telemetry" ], "summary": "Get Visitors By Geo", "description": "Get visitor counts grouped by geography.", "operationId": "get_visitors_by_geo_api_telemetry_visitors_geo_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/ingest": { "post": { "tags": [ "DEO Signals" ], "summary": "Ingest Deo Events", "description": "Ingest DEO events from an instrumented source.\n\nThis is the primary endpoint for MCP servers, APIs, SDKs, etc.\nto report their interactions.\n\nMulti-tenancy: org_id is resolved in this order:\n1. From request.org_id if provided directly\n2. From DEOSource lookup using request.source_id\n3. Falls back to \"default\" for unregistered sources\n\nPrivacy: All data is sanitized to remove PII, secrets, and sensitive information.\nSession IDs are anonymized via hashing.", "operationId": "ingest_deo_events_api_deo_ingest_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DEOIngestRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DEOIngestResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/agents": { "get": { "tags": [ "DEO Signals" ], "summary": "List Agents", "description": "List AI agents that have interacted with your product", "operationId": "list_agents_api_deo_agents_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "agent_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Type" } }, { "name": "journey_stage", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Journey Stage" } }, { "name": "converted_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Converted Only" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentSummary" }, "title": "Response List Agents Api Deo Agents Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/stats": { "get": { "tags": [ "DEO Signals" ], "summary": "Get Dashboard Stats", "description": "Get DEO dashboard statistics", "operationId": "get_dashboard_stats_api_deo_stats_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 7, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DEODashboardStats" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/interactions": { "get": { "tags": [ "DEO Signals" ], "summary": "List Interactions", "description": "List DEO interactions", "operationId": "list_interactions_api_deo_interactions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "agent_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" } }, { "name": "touchpoint", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Touchpoint" } }, { "name": "success_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Success Only" } }, { "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/deo/sources/register": { "post": { "tags": [ "DEO Signals" ], "summary": "Register Deo Source", "description": "Register a new DEO source (MCP server, API, SDK, etc.)", "operationId": "register_deo_source_api_deo_sources_register_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_name", "in": "query", "required": true, "schema": { "type": "string", "title": "Source Name" } }, { "name": "touchpoint", "in": "query", "required": true, "schema": { "type": "string", "title": "Touchpoint" } }, { "name": "telemetry_endpoint", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Telemetry Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/sources": { "get": { "tags": [ "DEO Signals" ], "summary": "List Deo Sources", "description": "List registered DEO sources", "operationId": "list_deo_sources_api_deo_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/deo/v1/traces": { "post": { "tags": [ "DEO Signals" ], "summary": "Ingest Otlp Traces", "description": "OTLP/JSON trace ingestion endpoint.\n\nAccepts standard OpenTelemetry Protocol JSON format.\nMaps OTel spans to DEO interactions.\n\nSemantic conventions used:\n- service.name \u2192 source_name\n- mcp.tool.name \u2192 tool_name\n- rpc.method \u2192 action\n- mcp.server.id \u2192 mcp_server_id", "operationId": "ingest_otlp_traces_api_deo_v1_traces_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OTLPTraceRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/mcp-telemetry": { "post": { "tags": [ "DEO Signals" ], "summary": "Ingest Mcp Telemetry", "description": "General-purpose MCP telemetry ingestion endpoint.\n\nThis endpoint accepts the standard MCP telemetry format used by\nany instrumented MCP server. It translates the events to DEO format\nand processes them through the DEO pipeline.\n\nFormat:\n```json\n{\n \"events\": [\n {\n \"eventType\": \"query|connection|schema_discovery|optimization\",\n \"eventData\": {\n \"tool\": \"tool-name\",\n \"action\": \"action-name\",\n \"duration_ms\": 100,\n \"result\": \"success|failure\",\n \"metadata\": {...}\n },\n \"context\": {\n \"sessionId\": \"session_xxx\",\n \"mcpServerId\": \"mcp_xxx\",\n \"environment\": \"production\",\n \"timestamp\": \"2026-02-07T...\"\n }\n }\n ]\n}\n```\n\nMulti-tenancy:\n- If source_id is provided, org_id is resolved from DEOSource\n- Otherwise, uses \"default\" org (useful for open-source MCP servers)", "operationId": "ingest_mcp_telemetry_api_deo_mcp_telemetry_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPTelemetryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/v1/telemetry/events": { "post": { "tags": [ "DEO Signals" ], "summary": "Ingest Mcp Telemetry", "description": "General-purpose MCP telemetry ingestion endpoint.\n\nThis endpoint accepts the standard MCP telemetry format used by\nany instrumented MCP server. It translates the events to DEO format\nand processes them through the DEO pipeline.\n\nFormat:\n```json\n{\n \"events\": [\n {\n \"eventType\": \"query|connection|schema_discovery|optimization\",\n \"eventData\": {\n \"tool\": \"tool-name\",\n \"action\": \"action-name\",\n \"duration_ms\": 100,\n \"result\": \"success|failure\",\n \"metadata\": {...}\n },\n \"context\": {\n \"sessionId\": \"session_xxx\",\n \"mcpServerId\": \"mcp_xxx\",\n \"environment\": \"production\",\n \"timestamp\": \"2026-02-07T...\"\n }\n }\n ]\n}\n```\n\nMulti-tenancy:\n- If source_id is provided, org_id is resolved from DEOSource\n- Otherwise, uses \"default\" org (useful for open-source MCP servers)", "operationId": "ingest_mcp_telemetry_api_deo_v1_telemetry_events_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPTelemetryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/deo/funnel": { "get": { "tags": [ "DEO Signals" ], "summary": "Get Journey Funnel", "description": "Get the DEO journey funnel with conversion rates between stages", "operationId": "get_journey_funnel_api_deo_funnel_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards": { "get": { "tags": [ "battlecards" ], "summary": "List Battlecards", "operationId": "list_battlecards_battlecards_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status" }, "description": "Filter by status" }, { "name": "include_archived", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include archived battlecards", "default": false, "title": "Include Archived" }, "description": "Include archived battlecards" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BattlecardSummary" }, "title": "Response List Battlecards Battlecards Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/{battlecard_id}": { "get": { "tags": [ "battlecards" ], "summary": "Get Battlecard", "operationId": "get_battlecard_battlecards__battlecard_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BattlecardDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "battlecards" ], "summary": "Delete Battlecard", "operationId": "delete_battlecard_battlecards__battlecard_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/competitor/{competitor_id}": { "get": { "tags": [ "battlecards" ], "summary": "Get Battlecard For Competitor", "operationId": "get_battlecard_for_competitor_battlecards_competitor__competitor_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Competitor Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/BattlecardDetail" }, { "type": "null" } ], "title": "Response Get Battlecard For Competitor Battlecards Competitor Competitor Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/generate": { "post": { "tags": [ "battlecards" ], "summary": "Generate Battlecard", "operationId": "generate_battlecard_battlecards_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateBattlecardRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BattlecardDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/battlecards/{battlecard_id}/status": { "patch": { "tags": [ "battlecards" ], "summary": "Update Battlecard Status", "operationId": "update_battlecard_status_battlecards__battlecard_id__status_patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateBattlecardStatusRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BattlecardDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/{battlecard_id}/export-drive": { "post": { "tags": [ "battlecards" ], "summary": "Export To Google Drive", "operationId": "export_to_google_drive_battlecards__battlecard_id__export_drive_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExportToDriveRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/api__battlecards__ExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/refresh-stale": { "post": { "tags": [ "battlecards" ], "summary": "Refresh Stale Battlecards", "description": "Refresh all stale battlecards in the organization.\n\nA battlecard is considered stale when the competitor data has been updated\nsince the battlecard was last generated. This endpoint regenerates all\nstale battlecards to incorporate the latest competitive intelligence.", "operationId": "refresh_stale_battlecards_battlecards_refresh_stale_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshStaleResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/battlecards/{battlecard_id}/refresh": { "post": { "tags": [ "battlecards" ], "summary": "Refresh Battlecard", "description": "Refresh a specific battlecard with the latest competitor data.\nThis regenerates the battlecard even if it's not marked as stale.", "operationId": "refresh_battlecard_battlecards__battlecard_id__refresh_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BattlecardDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/battlecards/{battlecard_id}/markdown": { "get": { "tags": [ "battlecards" ], "summary": "Get Battlecard Markdown", "operationId": "get_battlecard_markdown_battlecards__battlecard_id__markdown_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "battlecard_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Battlecard Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/health": { "get": { "tags": [ "youtube-signals" ], "summary": "Youtube Health", "description": "Check YouTube integration health", "operationId": "youtube_health_api_youtube_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/youtube/debug/brand-keywords": { "get": { "tags": [ "youtube-signals" ], "summary": "Debug Brand Keywords", "description": "Debug endpoint to see what brand keywords are detected for the current tenant.", "operationId": "debug_brand_keywords_api_youtube_debug_brand_keywords_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/mentions": { "get": { "tags": [ "youtube-signals" ], "summary": "Get Youtube Mentions", "description": "Search YouTube for videos mentioning a company/competitor.\nUsed by the competitor dashboard to find YouTube videos.\n\nSupports smart filtering:\n- If competitor_id provided, loads search_terms and search_exclusions from competitor\n- Post-filters results to ensure exact matches and exclude false positives", "operationId": "get_youtube_mentions_api_youtube_mentions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "title": "Query" } }, { "name": "competitor_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Competitor ID to load search config", "title": "Competitor Id" }, "description": "Competitor ID to load search config" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } }, { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 90, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/brand-mentions": { "get": { "tags": [ "youtube-signals" ], "summary": "Get Brand Youtube Mentions", "description": "Search YouTube for videos mentioning YOUR company/brand by external influencers.\n\nThis automatically:\n1. Uses your configured brand keywords (from signal sources)\n2. Excludes your own YouTube channel\n3. Returns only external creator content\n\nUse this to find influencers talking about your brand.", "operationId": "get_brand_youtube_mentions_api_youtube_brand_mentions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Limit" } }, { "name": "days_back", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 90, "title": "Days Back" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/creators": { "get": { "tags": [ "youtube-signals" ], "summary": "List Creators", "description": "List all tracked creators for the organization", "operationId": "list_creators_api_youtube_creators_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "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": [ "youtube-signals" ], "summary": "Add Creator", "description": "Add a creator to track.\n\nRequest body:\n{\n \"channel_id\": \"UCsBjURrPoezykLs9EqgamOA\", // OR\n \"channel_name\": \"Fireship\", // Will search for channel\n \"keywords\": [\"kubernetes\", \"docker\"], // Keywords to watch for\n \"competitors_to_track\": [\"Apache Kafka\", \"RabbitMQ\"],\n \"notes\": \"Key DevOps influencer\"\n}", "operationId": "add_creator_api_youtube_creators_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/creators/suggested": { "get": { "tags": [ "youtube-signals" ], "summary": "Get Suggested Creators", "description": "Get suggested tech creators to track", "operationId": "get_suggested_creators_api_youtube_creators_suggested_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/creators/bulk": { "post": { "tags": [ "youtube-signals" ], "summary": "Add Creators Bulk", "description": "Add multiple creators at once.\n\nRequest body:\n{\n \"creators\": [\n {\"channel_id\": \"UCsBjURrPoezykLs9EqgamOA\", \"keywords\": [\"web dev\"]},\n {\"channel_name\": \"ThePrimeagen\", \"keywords\": [\"rust\", \"performance\"]}\n ]\n}", "operationId": "add_creators_bulk_api_youtube_creators_bulk_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/creators/{creator_id}": { "put": { "tags": [ "youtube-signals" ], "summary": "Update Creator", "description": "Update a creator's tracking configuration", "operationId": "update_creator_api_youtube_creators__creator_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "creator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Creator Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "youtube-signals" ], "summary": "Delete Creator", "description": "Stop tracking a creator", "operationId": "delete_creator_api_youtube_creators__creator_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "creator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Creator Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/creators/{creator_id}/videos": { "get": { "tags": [ "youtube-signals" ], "summary": "Get Creator Videos", "description": "Get recent videos from a tracked creator", "operationId": "get_creator_videos_api_youtube_creators__creator_id__videos_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "creator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Creator Id" } }, { "name": "max_results", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Max Results" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/creators/check-all": { "post": { "tags": [ "youtube-signals" ], "summary": "Check All Creators", "description": "Check all tracked creators for new content.\n\nRequest body:\n{\n \"hours_back\": 168, // Check for content from last week\n \"max_videos_per_creator\": 5\n}", "operationId": "check_all_creators_api_youtube_creators_check_all_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/signals/discover": { "post": { "tags": [ "youtube-signals" ], "summary": "Discover Youtube Signals", "description": "Discover YouTube signals by searching for videos matching keywords.\n\nRequest body:\n{\n \"keywords\": [\"kubernetes tutorial\", \"docker devops\"],\n \"time_window_hours\": 168,\n \"max_results\": 50\n}", "operationId": "discover_youtube_signals_api_youtube_signals_discover_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/signals": { "get": { "tags": [ "youtube-signals" ], "summary": "List Youtube Signals", "description": "List YouTube signals", "operationId": "list_youtube_signals_api_youtube_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "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" } } } } } }, "delete": { "tags": [ "youtube-signals" ], "summary": "Delete Youtube Signals", "description": "Delete all YouTube signals", "operationId": "delete_youtube_signals_api_youtube_signals_delete", "security": [ { "HTTPBearer": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/youtube/videos/{video_id}/transcript": { "get": { "tags": [ "youtube-signals" ], "summary": "Get Video Transcript", "description": "Get the transcript for a specific YouTube video.\nReturns timestamped segments.", "operationId": "get_video_transcript_api_youtube_videos__video_id__transcript_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/videos/{video_id}/scan-mentions": { "post": { "tags": [ "youtube-signals" ], "summary": "Scan Video For Mentions", "description": "Scan a specific video's transcript for company/competitor mentions.\n\nRequest body:\n{\n \"company_names\": [\"Redpanda\", \"Redpanda Data\"],\n \"competitor_names\": [\"Apache Kafka\", \"Confluent\", \"Pulsar\"]\n}\n\nReturns timestamped mentions with context and direct YouTube links.", "operationId": "scan_video_for_mentions_api_youtube_videos__video_id__scan_mentions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/creators/{creator_id}/scan-mentions": { "post": { "tags": [ "youtube-signals" ], "summary": "Scan Creator For Mentions", "description": "Scan a tracked creator's recent videos for company/competitor mentions.\nDownloads and parses transcripts to find exact timestamps.\n\nRequest body:\n{\n \"company_names\": [\"Redpanda\", \"Redpanda Data\"],\n \"competitor_names\": [\"Apache Kafka\", \"Confluent\"],\n \"max_videos\": 10,\n \"hours_back\": 720 // 30 days\n}", "operationId": "scan_creator_for_mentions_api_youtube_creators__creator_id__scan_mentions_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "creator_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Creator Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Request" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/youtube/scan-all-creators": { "post": { "tags": [ "youtube-signals" ], "summary": "Scan All Creators For Mentions", "description": "Scan ALL tracked creators for company/competitor mentions.\nThis is the big one - finds every mention across all your tracked influencers.\n\nRequest body:\n{\n \"company_names\": [\"Redpanda\", \"Redpanda Data\"],\n \"competitor_names\": [\"Apache Kafka\", \"Confluent\", \"Pulsar\"],\n \"max_videos_per_creator\": 5,\n \"hours_back\": 720\n}\n\nReturns all mentions with:\n- Direct YouTube links with timestamps (e.g., youtube.com/watch?v=xxx&t=123s)\n- Context around each mention\n- Sentiment indicators", "operationId": "scan_all_creators_for_mentions_api_youtube_scan_all_creators_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/blacklist": { "get": { "tags": [ "youtube-signals" ], "summary": "List Blacklist", "description": "List all blacklist entries for the org.", "operationId": "list_blacklist_api_youtube_blacklist_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "youtube-signals" ], "summary": "Add To Blacklist", "description": "Add an entry to the blacklist.\n\nRequest body:\n{\n \"blacklist_type\": \"channel_name\" | \"channel_id\" | \"term\" | \"video_id\",\n \"value\": \"signpath pharmaceuticals\",\n \"reason\": \"Wrong company - pharmaceuticals not software\"\n}", "operationId": "add_to_blacklist_api_youtube_blacklist_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/youtube/blacklist/{entry_id}": { "delete": { "tags": [ "youtube-signals" ], "summary": "Remove From Blacklist", "description": "Remove an entry from the blacklist.", "operationId": "remove_from_blacklist_api_youtube_blacklist__entry_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "entry_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Entry Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hackernews/health": { "get": { "tags": [ "hackernews-signals" ], "summary": "Hackernews Health", "description": "Check Hacker News integration health", "operationId": "hackernews_health_api_hackernews_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/hackernews/signals/discover": { "post": { "tags": [ "hackernews-signals" ], "summary": "Discover Hackernews Signals", "description": "Discover Hacker News signals by searching stories and comments.\n\nRequest body:\n{\n \"keywords\": [\"kubernetes\", \"rust programming\"],\n \"time_window_hours\": 168, // default: 1 week\n \"max_results\": 50,\n \"content_type\": \"story\", // story, comment, or all\n \"min_score\": 10 // minimum points to include\n}", "operationId": "discover_hackernews_signals_api_hackernews_signals_discover_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/hackernews/signals": { "get": { "tags": [ "hackernews-signals" ], "summary": "List Hackernews Signals", "description": "List Hacker News signals with filtering options", "operationId": "list_hackernews_signals_api_hackernews_signals_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 200, "minimum": 1, "default": 50, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } }, { "name": "min_score", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Min Score" } }, { "name": "keyword", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Keyword" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "hackernews-signals" ], "summary": "Delete All Hackernews Signals", "description": "Delete all Hacker News signals for the organization", "operationId": "delete_all_hackernews_signals_api_hackernews_signals_delete", "security": [ { "HTTPBearer": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/hackernews/scan-with-keywords": { "post": { "tags": [ "hackernews-signals" ], "summary": "Scan Top Stories With Keywords", "description": "Scan HN for keyword matches using multiple sources:\n1. Algolia search going back 3 months (historical)\n2. Current top stories\n3. Newest stories (fresh submissions)\n\nAlso crawls comment threads for keyword mentions.\n\nRequest:\n{\n \"keywords\": [\"scylladb\", \"cassandra\"], // Optional, uses configured sources if not provided\n \"days_back\": 90, // How far back to search (default 3 months)\n \"scan_comments\": true,\n \"min_score\": 1, // Lower for newest\n \"include_newest\": true // Monitor /newest\n}", "operationId": "scan_top_stories_with_keywords_api_hackernews_scan_with_keywords_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/hackernews/top-stories": { "get": { "tags": [ "hackernews-signals" ], "summary": "Get Top Stories", "description": "Get current top stories from Hacker News", "operationId": "get_top_stories_api_hackernews_top_stories_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 30, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/hackernews/sources": { "get": { "tags": [ "hackernews-signals" ], "summary": "Get Hackernews Sources", "description": "Get configured Hacker News sources (keywords to monitor)", "operationId": "get_hackernews_sources_api_hackernews_sources_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "hackernews-signals" ], "summary": "Add Hackernews Source", "description": "Add a new Hacker News source (keyword to monitor)", "operationId": "add_hackernews_source_api_hackernews_sources_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/hackernews/sources/{source_id}": { "delete": { "tags": [ "hackernews-signals" ], "summary": "Delete Hackernews Source", "description": "Delete a Hacker News source", "operationId": "delete_hackernews_source_api_hackernews_sources__source_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "source_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Source Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/org-settings": { "get": { "tags": [ "org-settings" ], "summary": "Get Org Settings", "description": "Get organization settings.", "operationId": "get_org_settings_api_org_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgSettingsResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "put": { "tags": [ "org-settings" ], "summary": "Update Org Settings", "description": "Update organization settings.", "operationId": "update_org_settings_api_org_settings_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "boolean" }, "type": "object", "title": "Response Update Org Settings Api Org Settings Put" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/org-settings/domain": { "get": { "tags": [ "org-settings" ], "summary": "Get Primary Domain", "description": "Get the primary domain for this org.\nReturns user-set domain if available, otherwise falls back to most common content domain.", "operationId": "get_primary_domain_api_org_settings_domain_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Primary Domain Api Org Settings Domain Get" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/api-keys": { "get": { "tags": [ "api-keys" ], "summary": "List Api Keys", "description": "List all API keys for the current organization.", "operationId": "list_api_keys_api_api_keys_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ApiKeyResponse" }, "type": "array", "title": "Response List Api Keys Api Api Keys Get" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "api-keys" ], "summary": "Create Api Key", "description": "Create a new API key.\n\nIMPORTANT: The full key is only returned once during creation.\nStore it securely - it cannot be retrieved again.", "operationId": "create_api_key_api_api_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" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/api-keys/{key_id}": { "delete": { "tags": [ "api-keys" ], "summary": "Revoke Api Key", "description": "Revoke an API key. This cannot be undone.", "operationId": "revoke_api_key_api_api_keys__key_id__delete", "security": [ { "HTTPBearer": [] } ], "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" } } } } } }, "get": { "tags": [ "api-keys" ], "summary": "Get Api Key", "description": "Get details of a specific API key.", "operationId": "get_api_key_api_api_keys__key_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "key_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Key Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/context-streams/streaming/config": { "get": { "tags": [ "context-streams-streaming" ], "summary": "Get Streaming Config", "description": "Get streaming knowledge base configuration for this org.", "operationId": "get_streaming_config_api_context_streams_streaming_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "put": { "tags": [ "context-streams-streaming" ], "summary": "Update Streaming Config", "description": "Configure streaming knowledge base connection for this org (Kafka-compatible).", "operationId": "update_streaming_config_api_context_streams_streaming_config_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamingConfigRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] }, "delete": { "tags": [ "context-streams-streaming" ], "summary": "Disconnect Streaming", "description": "Disconnect/disable streaming knowledge base for this org.", "operationId": "disconnect_streaming_api_context_streams_streaming_config_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/streaming/status": { "get": { "tags": [ "context-streams-streaming" ], "summary": "Get Connection Status", "description": "Get current streaming knowledge base connection status for this org.", "operationId": "get_connection_status_api_context_streams_streaming_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/streaming/available-streams": { "get": { "tags": [ "context-streams-streaming" ], "summary": "Get Available Streams", "description": "Get list of context streams available for publishing.\nReturns both built-in and custom streams for this org.", "operationId": "get_available_streams_api_context_streams_streaming_available_streams_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/streaming/publish": { "post": { "tags": [ "context-streams-streaming" ], "summary": "Publish Knowledge To Stream", "description": "Publish curated knowledge to streaming topics (OUT).\n\nThis makes curated GTM context available to any AI agent\nconnected to the Kafka-compatible broker.", "operationId": "publish_knowledge_to_stream_api_context_streams_streaming_publish_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublishRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/streaming/subscribe": { "post": { "tags": [ "context-streams-streaming" ], "summary": "Subscribe To Signal Topics", "description": "Subscribe to streaming topics for signal ingestion (IN).\n\nIngest streaming signals (events, telemetry, etc.) as\ncontext for VoyantIO's continuous context engine.", "operationId": "subscribe_to_signal_topics_api_context_streams_streaming_subscribe_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubscribeRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/context-streams/streaming/architecture": { "get": { "tags": [ "context-streams-streaming" ], "summary": "Get Integration Architecture", "description": "Return integration architecture documentation for\nVoyantIO + Streaming Knowledge Base (Kafka-compatible).", "operationId": "get_integration_architecture_api_context_streams_streaming_architecture_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/attribution/narratives": { "get": { "tags": [ "attribution-intelligence" ], "summary": "List Narratives", "description": "List all narratives for the organization.\n\nNarratives are the different positioning/messaging tracks your company\nis pursuing (e.g., \"Kafka Alternative\" vs \"Agentic Data Plane\").", "operationId": "list_narratives_api_attribution_narratives_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "active_only", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Only return active narratives", "default": true, "title": "Active Only" }, "description": "Only return active narratives" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "attribution-intelligence" ], "summary": "Create Narrative", "description": "Create a new narrative to track.\n\nKeywords are used to automatically classify signals and content\nthat belong to this narrative.", "operationId": "create_narrative_api_attribution_narratives_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNarrativeRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/narratives/{narrative_id}": { "delete": { "tags": [ "attribution-intelligence" ], "summary": "Delete Narrative", "description": "Soft-delete a narrative (sets is_active=False)", "operationId": "delete_narrative_api_attribution_narratives__narrative_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "narrative_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Narrative Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/reports/narrative": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Narrative Attribution Report", "description": "Get attribution metrics grouped by narrative.\n\nShows which narrative is driving the most:\n- Signals (external mentions)\n- Traffic (sessions)\n- Conversions (MQLs)\n- Pipeline ($)\n\nThis is the \"which narrative should we invest in?\" view.", "operationId": "get_narrative_attribution_report_api_attribution_reports_narrative_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/reports/campaigns": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Campaign Performance Report", "description": "Get campaign performance with narrative attribution.\n\nShows for each campaign:\n- Email metrics (sent, opened, clicked)\n- Conversion metrics (MQLs, pipeline)\n- Which narrative it supports", "operationId": "get_campaign_performance_report_api_attribution_reports_campaigns_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/reports/gated-content": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Gated Content Report", "description": "Get gated content performance grouped by content group.\n\nShows for each piece of gated content:\n- Views and downloads\n- Conversion rate\n- MQLs and attributed pipeline\n- Which narrative it supports", "operationId": "get_gated_content_report_api_attribution_reports_gated_content_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/attribution/reports/traffic-sources": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Traffic Attribution Report", "description": "Get traffic attribution showing which sources drive conversions.\n\nIncludes:\n- Traffic by source/medium\n- Conversion rates per source\n- Attributed signals (e.g., \"This HN post drove 500 visits\")", "operationId": "get_traffic_attribution_report_api_attribution_reports_traffic_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/anomalies": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Traffic Anomalies", "description": "Get detected traffic anomalies (spikes, drops, new sources).\n\nReturns unusual traffic patterns that may indicate:\n- A post going viral\n- Unexpected referral traffic\n- Competitor mention driving traffic", "operationId": "get_traffic_anomalies_api_attribution_anomalies_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "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" } } } } } } }, "/api/attribution/anomalies/{anomaly_id}/acknowledge": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Acknowledge Anomaly", "description": "Mark a traffic anomaly as acknowledged", "operationId": "acknowledge_anomaly_api_attribution_anomalies__anomaly_id__acknowledge_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "anomaly_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Anomaly Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/sync/traffic": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Sync Traffic Attribution", "description": "Sync traffic attribution from Google Analytics.\n\nPulls traffic sources and matches them to known signals.\nDetects anomalies (unexpected spikes).", "operationId": "sync_traffic_attribution_api_attribution_sync_traffic_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "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" } } } } } } }, "/api/attribution/sync/campaigns": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Sync Campaign Performance", "description": "Sync campaign performance from HubSpot.\n\nPulls campaign metrics and attributes them to narratives.", "operationId": "sync_campaign_performance_api_attribution_sync_campaigns_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/attribution/sync/gated-content": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Sync Gated Content", "description": "Sync gated content performance from HubSpot.\n\nPulls content downloads, views, and conversion metrics.", "operationId": "sync_gated_content_api_attribution_sync_gated_content_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/attribution/sync/snapshots": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Generate Narrative Snapshots", "description": "Generate daily snapshots for all narratives.\n\nThis aggregates signals, traffic, and conversions by narrative.\nTypically run once daily by a scheduled job.", "operationId": "generate_narrative_snapshots_api_attribution_sync_snapshots_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/attribution/briefing": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Latest Briefing", "description": "Get the latest intelligence briefing.\n\nReturns LLM-generated executive summary with:\n- Narrative performance updates\n- Competitor intelligence\n- Campaign highlights\n- Action items", "operationId": "get_latest_briefing_api_attribution_briefing_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "briefing_type", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "daily", "weekly" ], "default": "daily", "title": "Briefing Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "attribution-intelligence" ], "summary": "Generate Intelligence Briefing", "description": "Generate a new intelligence briefing using LLM.\n\nAnalyzes recent signals, campaigns, and traffic to produce\nan executive summary with actionable insights.", "operationId": "generate_intelligence_briefing_api_attribution_briefing_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "briefing_type", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "daily", "weekly" ], "default": "daily", "title": "Briefing Type" } }, { "name": "use_llm", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Use LLM for intelligent briefing generation", "default": true, "title": "Use Llm" }, "description": "Use LLM for intelligent briefing generation" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/briefing/community-digest": { "get": { "tags": [ "attribution-intelligence" ], "summary": "Get Community Digest", "description": "Get the latest community digest for Reddit/HN discussions.\n\nReturns AI-generated summary of community threads, content opportunities,\nand posts from watched users.", "operationId": "get_community_digest_api_attribution_briefing_community_digest_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "narrative_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter to specific narrative", "title": "Narrative Id" }, "description": "Filter to specific narrative" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "attribution-intelligence" ], "summary": "Generate Community Digest", "description": "Generate a new community digest for Reddit/HN discussions.\n\nFor Content Strategists - surfaces discussion threads, themes, and\ncontent opportunities from community platforms.\n\nThe digest includes:\n- AI-generated summary of key discussions\n- Thread highlights grouped by topic\n- Posts from watched users (if configured on narrative)\n- Content opportunities identified from discussions", "operationId": "generate_community_digest_api_attribution_briefing_community_digest_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "narrative_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Scope to specific narrative", "title": "Narrative Id" }, "description": "Scope to specific narrative" }, { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Days to look back (default 7)", "default": 7, "title": "Days" }, "description": "Days to look back (default 7)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/attribution/signals/tag-narratives": { "post": { "tags": [ "attribution-intelligence" ], "summary": "Tag Signals With Narratives", "description": "Bulk-tag existing signals with narrative IDs.\n\nRun this after creating narratives to backfill narrative_id\non existing signals based on keyword matching.", "operationId": "tag_signals_with_narratives_api_attribution_signals_tag_narratives_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 365, "minimum": 1, "description": "Days of signals to tag", "default": 30, "title": "Days" }, "description": "Days of signals to tag" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cmo/ai-readiness": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Ai Readiness Score", "description": "Get AI Readiness Score (0-100).\n\nMeasures how prepared your organization is for the agentic web:\n- llms.txt presence and quality\n- MCP server traffic\n- AI agent visits\n- Markdown coverage\n- Context stream freshness", "operationId": "get_ai_readiness_score_api_cmo_ai_readiness_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/cmo/signal-pulse": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Signal Pulse", "description": "Get high-level signal pulse.\n\nExecutive summary of signal activity:\n- Total signals and velocity (up/down vs previous period)\n- Platform breakdown (GitHub, Reddit, LinkedIn, etc.)\n- Sentiment percentage\n- Trending topics\n- Top signals by priority", "operationId": "get_signal_pulse_api_cmo_signal_pulse_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Number of days to analyze", "default": 7, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cmo/pipeline-progress": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Pipeline Progress", "description": "Get pipeline progress vs goals.\n\nShows:\n- Current pipeline value\n- Goal and progress percentage\n- Projected end-of-quarter based on velocity\n- Whether on track to hit goal", "operationId": "get_pipeline_progress_api_cmo_pipeline_progress_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/cmo/mql-hvt": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Mql Hvt Conversion", "description": "Get MQL to High-Value Target conversion metrics.\n\nShows:\n- Total MQLs generated\n- Number of HVTs\n- Conversion rate\n- Recent HVTs with details", "operationId": "get_mql_hvt_conversion_api_cmo_mql_hvt_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "description": "Number of days to analyze", "default": 30, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cmo/dashboard": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Cmo Dashboard", "description": "Get all CMO dashboard data in one call.\n\nReturns:\n- AI Readiness Score\n- Signal Pulse\n- Pipeline Progress\n- MQL \u2192 HVT Conversion\n- Traffic Anomalies\n- Top Campaigns", "operationId": "get_cmo_dashboard_api_cmo_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/cmo/campaigns": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Campaign Performance", "description": "Get campaign performance table data.\n\nReturns table-ready data:\n- Campaign name\n- Emails sent, opened, clicked\n- Open rate, click rate\n- MQLs generated\n- Pipeline influenced", "operationId": "get_campaign_performance_api_cmo_campaigns_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 90, "minimum": 1, "default": 30, "title": "Days" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cmo/traffic-sources": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Traffic Sources", "description": "Get traffic sources with attribution.\n\nReturns table-ready data:\n- Source\n- Sessions\n- MQLs\n- Pipeline attributed", "operationId": "get_traffic_sources_api_cmo_traffic_sources_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "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" } } } } } } }, "/api/cmo/traffic-comparison": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Traffic Comparison", "description": "Get agent vs browser traffic comparison with daily trend.\n\nReturns:\n- Total visitors, agent vs browser split\n- Agent percentage and velocity\n- Agent breakdown by type (Claude, GPT, Cursor, etc.)\n- Daily trend for charting", "operationId": "get_traffic_comparison_api_cmo_traffic_comparison_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 30, "minimum": 1, "description": "Number of days to analyze", "default": 7, "title": "Days" }, "description": "Number of days to analyze" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/cmo/anomalies": { "get": { "tags": [ "cmo-intelligence" ], "summary": "Get Traffic Anomalies", "description": "Get traffic anomalies (spikes to capitalize on).", "operationId": "get_traffic_anomalies_api_cmo_anomalies_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "days", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 14, "minimum": 1, "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" } } } } } } }, "/api/leadership/leaders": { "get": { "tags": [ "Leadership Audit" ], "summary": "List Leaders", "description": "List all company leaders for the organization.", "operationId": "list_leaders_api_leadership_leaders_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "post": { "tags": [ "Leadership Audit" ], "summary": "Add Leader", "description": "Add a new company leader.", "operationId": "add_leader_api_leadership_leaders_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderCreate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/leadership/leaders/{leader_id}/metrics": { "put": { "tags": [ "Leadership Audit" ], "summary": "Update Leader Metrics", "description": "Update a leader's social metrics.", "operationId": "update_leader_metrics_api_leadership_leaders__leader_id__metrics_put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "leader_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leader Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaderMetricsUpdate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/leadership/leaders/{leader_id}/sync-linkedin": { "post": { "tags": [ "Leadership Audit" ], "summary": "Sync Leader Linkedin", "description": "Sync a leader's metrics from LinkedIn using Playwright.\nRequires LinkedIn session to be active.", "operationId": "sync_leader_linkedin_api_leadership_leaders__leader_id__sync_linkedin_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "leader_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leader Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/leadership/sync-all-linkedin": { "post": { "tags": [ "Leadership Audit" ], "summary": "Sync All Leaders Linkedin", "description": "Sync LinkedIn metrics for all leaders in the organization.", "operationId": "sync_all_leaders_linkedin_api_leadership_sync_all_linkedin_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/leadership/leaders/{leader_id}": { "delete": { "tags": [ "Leadership Audit" ], "summary": "Delete Leader", "description": "Remove a leader from tracking.", "operationId": "delete_leader_api_leadership_leaders__leader_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "leader_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Leader Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/leadership/audit-summary": { "get": { "tags": [ "Leadership Audit" ], "summary": "Get Audit Summary", "description": "Get leadership audit summary for GTM report - measurable metrics only.", "operationId": "get_audit_summary_api_leadership_audit_summary_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/admin/orgs": { "get": { "tags": [ "admin" ], "summary": "List All Orgs", "description": "List all organizations with data in the system.", "operationId": "list_all_orgs_api_admin_orgs_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrgListResponse" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/admin/orgs/{org_id}/details": { "get": { "tags": [ "admin" ], "summary": "Get Org Details", "description": "Get detailed information about a specific organization.", "operationId": "get_org_details_api_admin_orgs__org_id__details_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" } } } } } } }, "/api/admin/orgs/{org_id}/impersonate": { "post": { "tags": [ "admin" ], "summary": "Impersonate Org", "description": "Get a token or session to view the app as if you were in this org.\nReturns the org_id to use in frontend for org switching.", "operationId": "impersonate_org_api_admin_orgs__org_id__impersonate_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" } } } } } } }, "/api/admin/orgs/{org_id}/invite": { "post": { "tags": [ "admin" ], "summary": "Invite To Org", "description": "Invite a user to an organization via Clerk.", "operationId": "invite_to_org_api_admin_orgs__org_id__invite_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/InviteRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/admin/orgs/{org_id}/invitations": { "get": { "tags": [ "admin" ], "summary": "List Org Invitations", "description": "List pending invitations for an organization.", "operationId": "list_org_invitations_api_admin_orgs__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" } } } } } } }, "/api/admin/orgs/{org_id}/members": { "get": { "tags": [ "admin" ], "summary": "List Org Members", "description": "List members of an organization.", "operationId": "list_org_members_api_admin_orgs__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" } } } } } } }, "/api/admin/migration/import-json": { "post": { "tags": [ "admin-migration" ], "summary": "Import Json Data", "description": "Import data from a JSON or gzipped JSON file.\n\nUpload the scylladb_export.json.gz file to import all data.", "operationId": "import_json_data_api_admin_migration_import_json_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_import_json_data_api_admin_migration_import_json_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/admin/migration/import-status/{import_id}": { "get": { "tags": [ "admin-migration" ], "summary": "Get Import Status", "description": "Get status of a background import.", "operationId": "get_import_status_api_admin_migration_import_status__import_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "import_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Import Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/admin/migration/health": { "get": { "tags": [ "admin-migration" ], "summary": "Migration Health", "description": "Health check for migration API.", "operationId": "migration_health_api_admin_migration_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/api/admin/migration/fix-embedding-dimension": { "post": { "tags": [ "admin-migration" ], "summary": "Fix Embedding Dimension", "description": "Fix embedding dimension from 1536 to 512 for Voyage AI compatibility.\n\nProduction was set up with 1536-dim (OpenAI) but we use Voyage AI (512-dim).", "operationId": "fix_embedding_dimension_api_admin_migration_fix_embedding_dimension_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/admin/migration/regenerate-embeddings/{org_id}": { "post": { "tags": [ "admin-migration" ], "summary": "Regenerate Embeddings", "description": "Regenerate embeddings for content chunks that have NULL embeddings.\n\nThis is useful after importing data that was created with different\nembedding dimensions (e.g., 512-dim Voyage AI vs 1536-dim OpenAI).", "operationId": "regenerate_embeddings_api_admin_migration_regenerate_embeddings__org_id__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" } } } } } } }, "/api/onboarding/discover": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Discover Company", "description": "Quick discovery of company information from their website.\nFetches homepage and uses AI to extract: company name, tagline, products, what they do.", "operationId": "discover_company_api_onboarding_discover_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverDomainRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryResult" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/confirm-discovery": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Confirm Discovery", "description": "Save user-confirmed discovery data to the session/framework.", "operationId": "confirm_discovery_api_onboarding_confirm_discovery_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmDiscoveryRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/propose-personas": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Propose Personas", "description": "Propose buyer personas based on company and product context.\nEach persona speaks about their pain points and what they'd value.", "operationId": "propose_personas_api_onboarding_propose_personas_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProposePersonasRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProposePersonasResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/start": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Start Onboarding", "description": "Start a new onboarding session or resume existing one.\nCreates a draft MessagingFramework if none exists.", "operationId": "start_onboarding_api_onboarding_start_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/session": { "get": { "tags": [ "onboarding-wizard" ], "summary": "Get Session", "description": "Get current onboarding session state.", "operationId": "get_session_api_onboarding_session_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] }, "delete": { "tags": [ "onboarding-wizard" ], "summary": "Reset Session", "description": "Reset onboarding session and start fresh.", "operationId": "reset_session_api_onboarding_session_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/session/step": { "put": { "tags": [ "onboarding-wizard" ], "summary": "Update Session Step", "description": "Update the current step in the session.", "operationId": "update_session_step_api_onboarding_session_step_put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step", "in": "query", "required": true, "schema": { "type": "string", "title": "Step" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/crawl": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Start Domain Crawl", "description": "Start crawling a domain to build context.\nUses existing Firecrawl infrastructure.", "operationId": "start_domain_crawl_api_onboarding_crawl_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CrawlDomainRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/crawl/status": { "get": { "tags": [ "onboarding-wizard" ], "summary": "Get Crawl Status", "description": "Get status of current crawl operation.", "operationId": "get_crawl_status_api_onboarding_crawl_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/documents/upload": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Upload Document", "description": "Upload a PDF or text file for context.\nAccepts: .pdf, .txt, .md", "operationId": "upload_document_api_onboarding_documents_upload_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_document_api_onboarding_documents_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" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/documents": { "get": { "tags": [ "onboarding-wizard" ], "summary": "List Documents", "description": "List uploaded documents for this session.", "operationId": "list_documents_api_onboarding_documents_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/documents/{document_id}": { "delete": { "tags": [ "onboarding-wizard" ], "summary": "Delete Document", "description": "Remove an uploaded document.", "operationId": "delete_document_api_onboarding_documents__document_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "document_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Document Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/generate/{step}": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Generate Framework Step", "description": "Generate content for a specific framework step using AI.\n\nSteps: core_messaging, positioning, personas, products, use_cases, competitive, brand_voice", "operationId": "generate_framework_step_api_onboarding_generate__step__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step", "in": "path", "required": true, "schema": { "type": "string", "title": "Step" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateStepRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/generate/{step}/stream": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Generate Framework Step Stream", "description": "Stream AI generation for framework step.\nReturns Server-Sent Events for real-time display.", "operationId": "generate_framework_step_stream_api_onboarding_generate__step__stream_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step", "in": "path", "required": true, "schema": { "type": "string", "title": "Step" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/approve/{step}": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Approve Framework Step", "description": "Approve and save generated content for a step.\nMarks step as completed and advances wizard.", "operationId": "approve_framework_step_api_onboarding_approve__step__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "step", "in": "path", "required": true, "schema": { "type": "string", "title": "Step" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApproveStepRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/personas": { "get": { "tags": [ "onboarding-wizard" ], "summary": "Get Personas", "description": "Get all personas for current framework.", "operationId": "get_personas_api_onboarding_personas_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/personas/{persona_id}": { "put": { "tags": [ "onboarding-wizard" ], "summary": "Update Persona", "description": "Update a specific persona.", "operationId": "update_persona_api_onboarding_personas__persona_id__put", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePersonaRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "onboarding-wizard" ], "summary": "Delete Persona", "description": "Delete a persona.", "operationId": "delete_persona_api_onboarding_personas__persona_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "persona_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Persona Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/framework": { "get": { "tags": [ "onboarding-wizard" ], "summary": "Get Framework", "description": "Get complete framework with all components.", "operationId": "get_framework_api_onboarding_framework_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/framework/complete": { "post": { "tags": [ "onboarding-wizard" ], "summary": "Complete Framework", "description": "Mark framework as complete.\nCreates Context Stream from framework for use in content generation.", "operationId": "complete_framework_api_onboarding_framework_complete_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/framework/export": { "get": { "tags": [ "onboarding-wizard" ], "summary": "Export Framework", "description": "Export framework in specified format (json or markdown).", "operationId": "export_framework_api_onboarding_framework_export_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "format", "in": "query", "required": false, "schema": { "type": "string", "default": "json", "title": "Format" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/onboarding/simple/start": { "post": { "tags": [ "simple-onboarding" ], "summary": "Start Simple Onboarding", "description": "Start simplified onboarding with just a domain.\n\nReturns all discovery data, enrichment, messaging, and competitor suggestions\nin a single response. User can then confirm/edit before finalizing.", "operationId": "start_simple_onboarding_api_onboarding_simple_start_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SimpleOnboardingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SimpleOnboardingResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/simple/confirm": { "post": { "tags": [ "simple-onboarding" ], "summary": "Confirm Simple Onboarding", "description": "Confirm the onboarding data and create context streams.\n\nThis finalizes the onboarding:\n1. Saves messaging framework\n2. Creates confirmed competitors\n3. Creates context streams (Messaging Framework, Competitive Intelligence)", "operationId": "confirm_simple_onboarding_api_onboarding_simple_confirm_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfirmOnboardingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/onboarding/simple/status": { "get": { "tags": [ "simple-onboarding" ], "summary": "Get Simple Onboarding Status", "description": "Get the current simple onboarding status/data if any", "operationId": "get_simple_onboarding_status_api_onboarding_simple_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/content-types": { "get": { "tags": [ "content-voices" ], "summary": "List Content Types", "description": "List available content types for voice profiles.", "operationId": "list_content_types_api_content_voices_content_types_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response List Content Types Api Content Voices Content Types Get" } } } } } } }, "/api/content-voices/crawled-content": { "get": { "tags": [ "content-voices" ], "summary": "List Crawled Content", "description": "List content available for voice extraction.\nIncludes both crawled content and existing voice training data.\nUsers select from this list to create structured voice profiles.", "operationId": "list_crawled_content_api_content_voices_crawled_content_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by content type", "title": "Content Type" }, "description": "Filter by content type" }, { "name": "include_voice_training", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include voice training data", "default": true, "title": "Include Voice Training" }, "description": "Include voice training data" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CrawledContentItem" }, "title": "Response List Crawled Content Api Content Voices Crawled Content Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices": { "get": { "tags": [ "content-voices" ], "summary": "List Voices", "description": "List all content voices for the organization.", "operationId": "list_voices_api_content_voices_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by content type", "title": "Content Type" }, "description": "Filter by content type" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VoiceResponse" }, "title": "Response List Voices Api Content Voices Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "content-voices" ], "summary": "Create Voice", "description": "Create a new content voice by extracting characteristics from selected content.\n\n1. User selects content samples (blog posts, docs, etc.)\n2. System analyzes samples using LLM\n3. Extracts tone, themes, principles, vocabulary\n4. Creates voice profile for use in content generation", "operationId": "create_voice_api_content_voices_post", "security": [ { "HTTPBearer": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateVoiceRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/default/{content_type}": { "get": { "tags": [ "content-voices" ], "summary": "Get Default Voice", "description": "Get the default voice for a content type.", "operationId": "get_default_voice_api_content_voices_default__content_type__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/VoiceResponse" }, { "type": "null" } ], "title": "Response Get Default Voice Api Content Voices Default Content Type Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/{voice_id}": { "get": { "tags": [ "content-voices" ], "summary": "Get Voice", "description": "Get a specific content voice.", "operationId": "get_voice_api_content_voices__voice_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "voice_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Voice Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "content-voices" ], "summary": "Update Voice", "description": "Update a content voice.", "operationId": "update_voice_api_content_voices__voice_id__patch", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "voice_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Voice Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateVoiceRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "content-voices" ], "summary": "Delete Voice", "description": "Delete a content voice.", "operationId": "delete_voice_api_content_voices__voice_id__delete", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "voice_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Voice Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/{voice_id}/re-extract": { "post": { "tags": [ "content-voices" ], "summary": "Re Extract Voice", "description": "Re-extract voice characteristics from the source content.\nUseful after improving extraction prompts or adding more source content.", "operationId": "re_extract_voice_api_content_voices__voice_id__re_extract_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "voice_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Voice Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/extract-dna": { "post": { "tags": [ "content-voices" ], "summary": "Extract Content Dna", "description": "Extract complete Content DNA from selected content samples.\n\nThis is the comprehensive extraction that captures everything needed\nto generate content that sounds authentically like the company:\n- Voice & tone (personality, confidence, formality)\n- Writing patterns (sentence structure, rhetorical devices)\n- Technical vocabulary (terms, acronyms, signature phrases)\n- Narrative structure (how they build arguments)\n- Example passages (actual snippets to emulate)\n- Style rules (always/never do)\n\nUse this on your best 3-5 blog posts to capture your voice.", "operationId": "extract_content_dna_api_content_voices_extract_dna_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "save_to_framework", "in": "query", "required": false, "schema": { "type": "boolean", "default": true, "title": "Save To Framework" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Content Ids" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/dna": { "get": { "tags": [ "content-voices" ], "summary": "Get Content Dna", "description": "Get existing Content DNA for the organization.", "operationId": "get_content_dna_api_content_voices_dna_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/dna/generation-context": { "get": { "tags": [ "content-voices" ], "summary": "Get Dna Generation Context", "description": "Get formatted Content DNA context for content generation.\nReturns a string ready to inject into generation prompts.", "operationId": "get_dna_generation_context_api_content_voices_dna_generation_context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "query", "required": false, "schema": { "type": "string", "default": "blog", "title": "Content Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/extract-vocabulary": { "post": { "tags": [ "content-voices" ], "summary": "Extract Technical Vocabulary", "description": "Extract technical vocabulary from selected content.\nReturns structured vocabulary that can be added to the messaging framework.\n\nUse this to analyze blog posts, docs, etc. for technical terminology.", "operationId": "extract_technical_vocabulary_api_content_voices_extract_vocabulary_post", "requestBody": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Content Ids" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/{voice_id}/context": { "get": { "tags": [ "content-voices" ], "summary": "Get Voice Context", "description": "Get formatted voice context for content generation.\nReturns a string that can be injected into generation prompts.", "operationId": "get_voice_context_api_content_voices__voice_id__context_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "voice_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Voice Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/quality/train": { "post": { "tags": [ "content-voices" ], "summary": "Train Quality Model", "description": "Train a quality model by comparing gold (best) vs baseline (average) content.\n\nSelect your 3-5 best pieces of content as \"gold\" and 3-5 average pieces\nas \"baseline\". The system learns what specifically makes YOUR content\nexcellent vs mediocre.\n\nThis creates a scoring rubric tailored to your standards, not generic\nwriting advice.", "operationId": "train_quality_model_api_content_voices_quality_train_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrainQualityRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QualityProfileResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/quality/score": { "post": { "tags": [ "content-voices" ], "summary": "Score Content", "description": "Score content against the trained quality model.\n\nReturns detailed scoring across dimensions (opening, technical depth,\nvoice consistency, structure, evidence, differentiation) plus specific\nimprovement suggestions.\n\nRequires training a quality model first via /quality/train.", "operationId": "score_content_api_content_voices_quality_score_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScoreContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/quality/critique": { "post": { "tags": [ "content-voices" ], "summary": "Quick Critique", "description": "Quick critique - just the top issues and how to fix them.\n\nLighter-weight than full scoring, focused on actionable improvements.", "operationId": "quick_critique_api_content_voices_quality_critique_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScoreContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/quality/profiles": { "get": { "tags": [ "content-voices" ], "summary": "List Quality Profiles", "description": "List all quality profiles for the organization.", "operationId": "list_quality_profiles_api_content_voices_quality_profiles_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/quality/profiles/{content_type}": { "get": { "tags": [ "content-voices" ], "summary": "Get Quality Profile", "description": "Get the quality profile for a specific content type.", "operationId": "get_quality_profile_api_content_voices_quality_profiles__content_type__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_type", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/quality/analyze-blogs": { "post": { "tags": [ "content-voices" ], "summary": "Analyze Blog Quality", "description": "Analyze and score all blog content.\n\nAutomatically:\n1. Identifies gold (best) vs baseline (average) blog content\n2. Trains a quality model from gold/baseline\n3. Extracts Content DNA (voice, strategic intent) from gold content\n4. Scores every blog post against the quality model\n5. Stores scores on content records\n\nCall after a crawl completes, or anytime to re-score all blogs.", "operationId": "analyze_blog_quality_api_content_voices_quality_analyze_blogs_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "crawl_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Scope to specific crawl", "title": "Crawl Id" }, "description": "Scope to specific crawl" }, { "name": "force_retrain", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Force retrain quality model", "default": false, "title": "Force Retrain" }, "description": "Force retrain quality model" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/content-voices/quality/blog-summary": { "get": { "tags": [ "content-voices" ], "summary": "Get Blog Quality Summary", "description": "Get summary of blog content quality.\n\nReturns score distribution, top blogs, and blogs needing improvement.", "operationId": "get_blog_quality_summary_api_content_voices_quality_blog_summary_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/content-voices/quality/rescore/{content_id}": { "post": { "tags": [ "content-voices" ], "summary": "Rescore Content", "description": "Re-score a single content item against the current quality model.", "operationId": "rescore_content_api_content_voices_quality_rescore__content_id__post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "content_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Content Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/blueprints": { "get": { "tags": [ "pipeline" ], "summary": "Get Blueprints", "description": "List all available blueprints.\n\nReturns a list of blueprints with their metadata and input schemas.", "operationId": "get_blueprints_api_pipeline_blueprints_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BlueprintSummary" }, "type": "array", "title": "Response Get Blueprints Api Pipeline Blueprints Get" } } } } } } }, "/api/pipeline/blueprints/{blueprint_id}": { "get": { "tags": [ "pipeline" ], "summary": "Get Blueprint Detail", "description": "Get detailed information about a blueprint.\n\nIncludes full step definitions and configuration.", "operationId": "get_blueprint_detail_api_pipeline_blueprints__blueprint_id__get", "parameters": [ { "name": "blueprint_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Blueprint Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Blueprint Detail Api Pipeline Blueprints Blueprint Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/tools": { "get": { "tags": [ "pipeline" ], "summary": "List Available Tools", "description": "List all available tools that can be used in blueprints.\n\nGroups tools by platform/provider.", "operationId": "list_available_tools_api_pipeline_tools_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object", "title": "Response List Available Tools Api Pipeline Tools Get" } } } } } } }, "/api/pipeline/execute": { "post": { "tags": [ "pipeline" ], "summary": "Execute Blueprint", "description": "Execute a blueprint.\n\nIf stream=True, returns a Server-Sent Events stream.\nOtherwise, returns the complete execution outcome.", "operationId": "execute_blueprint_api_pipeline_execute_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecuteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Execute Blueprint Api Pipeline Execute Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/api/pipeline/executions": { "get": { "tags": [ "pipeline" ], "summary": "List Executions", "description": "List execution history for the organization.", "operationId": "list_executions_api_pipeline_executions_get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "blueprint_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by blueprint", "title": "Blueprint Id" }, "description": "Filter by blueprint" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status" }, "description": "Filter by status" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 20, "title": "Limit" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0, "title": "Offset" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Executions Api Pipeline Executions Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/executions/{execution_id}": { "get": { "tags": [ "pipeline" ], "summary": "Get Execution", "description": "Get details of a specific execution.", "operationId": "get_execution_api_pipeline_executions__execution_id__get", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "execution_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Execution Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Get Execution Api Pipeline Executions Execution Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/signals/company": { "post": { "tags": [ "pipeline" ], "summary": "Discover Company Signals", "description": "Discover people at a company via LinkedIn signals.\n\nReturns identity hints (name, profile URL) for resolution.\nNo expensive profile enrichment - just signal collection.", "operationId": "discover_company_signals_api_pipeline_signals_company_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "company_name", "in": "query", "required": true, "schema": { "type": "string", "description": "Company name to search", "title": "Company Name" }, "description": "Company name to search" }, { "name": "roles", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Target roles", "title": "Roles" }, "description": "Target roles" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Max profiles", "default": 10, "title": "Limit" }, "description": "Max profiles" }, { "name": "stream", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Stream updates", "default": false, "title": "Stream" }, "description": "Stream updates" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Discover Company Signals Api Pipeline Signals Company Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/signals/topic": { "post": { "tags": [ "pipeline" ], "summary": "Discover Topic Signals", "description": "Find people discussing a topic across platforms.\n\nCollects signals from thought leaders and discussions for identity resolution.", "operationId": "discover_topic_signals_api_pipeline_signals_topic_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "topic", "in": "query", "required": true, "schema": { "type": "string", "description": "Topic to search (e.g., 'real-time streaming')", "title": "Topic" }, "description": "Topic to search (e.g., 'real-time streaming')" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "description": "Results per source", "default": 10, "title": "Limit" }, "description": "Results per source" }, { "name": "stream", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Stream updates", "default": false, "title": "Stream" }, "description": "Stream updates" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Discover Topic Signals Api Pipeline Signals Topic Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/signals/competitor": { "post": { "tags": [ "pipeline" ], "summary": "Discover Competitor Signals", "description": "Find people engaging with competitor content.\n\nDiscovers potential prospects discussing or comparing competitor products.", "operationId": "discover_competitor_signals_api_pipeline_signals_competitor_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "competitor_name", "in": "query", "required": true, "schema": { "type": "string", "description": "Competitor company name", "title": "Competitor Name" }, "description": "Competitor company name" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Max signals", "default": 20, "title": "Limit" }, "description": "Max signals" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Discover Competitor Signals Api Pipeline Signals Competitor Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/pipeline/resolve/identity": { "post": { "tags": [ "pipeline" ], "summary": "Resolve Identity", "description": "Resolve identity across platforms given hints.\n\nTakes any known identity hints and attempts to find and link\nprofiles across LinkedIn, GitHub, Twitter, etc.", "operationId": "resolve_identity_api_pipeline_resolve_identity_post", "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "name", "in": "query", "required": true, "schema": { "type": "string", "description": "Person's name", "title": "Name" }, "description": "Person's name" }, { "name": "company", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Company name", "title": "Company" }, "description": "Company name" }, { "name": "email", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Email address", "title": "Email" }, "description": "Email address" }, { "name": "github", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "GitHub username", "title": "Github" }, "description": "GitHub username" }, { "name": "twitter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Twitter handle", "title": "Twitter" }, "description": "Twitter handle" }, { "name": "linkedin", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "LinkedIn URL or username", "title": "Linkedin" }, "description": "LinkedIn URL or username" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Resolve Identity Api Pipeline Resolve Identity Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/mcp/sse": { "get": { "tags": [ "MCP" ], "summary": "Mcp Sse", "description": "SSE endpoint for MCP protocol.", "operationId": "mcp_sse_mcp_sse_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/mcp/messages": { "post": { "tags": [ "MCP" ], "summary": "Mcp Messages", "description": "Message handling endpoint for MCP protocol.", "operationId": "mcp_messages_mcp_messages_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/mcp/health": { "get": { "tags": [ "MCP" ], "summary": "Mcp Health", "description": "Health check endpoint.", "operationId": "mcp_health_mcp_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/mcp/tools": { "get": { "tags": [ "MCP" ], "summary": "Mcp Tools", "description": "List available tools.", "operationId": "mcp_tools_mcp_tools_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/{path}": { "options": { "summary": "Global Options Handler", "operationId": "global_options_handler__path__options", "parameters": [ { "name": "path", "in": "path", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/": { "get": { "summary": "Root", "operationId": "root__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health": { "get": { "summary": "Health Check", "operationId": "health_check_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health/db": { "get": { "summary": "Health Check Db", "description": "Deep health check that verifies all critical database tables exist.", "operationId": "health_check_db_health_db_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/auth/me": { "get": { "summary": "Get Current User Info", "operationId": "get_current_user_info_auth_me_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/auth/health": { "get": { "summary": "Auth Health", "operationId": "auth_health_auth_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/dashboard": { "get": { "summary": "Dashboard Page", "operationId": "dashboard_page_dashboard_get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/targets": { "get": { "summary": "Targets Dashboard Page", "operationId": "targets_dashboard_page_targets_get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/attribution": { "get": { "summary": "Attribution Dashboard Page", "operationId": "attribution_dashboard_page_attribution_get", "responses": { "200": { "description": "Successful Response", "content": { "text/html": { "schema": { "type": "string" } } } } } } }, "/rag/generate": { "post": { "summary": "Generate Content", "description": "Generate content using RAG.", "operationId": "generate_content_rag_generate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneratedContent" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/rag/chunks/search": { "post": { "summary": "Search Chunks", "description": "Search for content chunks for RAG.", "operationId": "search_chunks_rag_chunks_search_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChunkSearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ChunkResponse" }, "type": "array", "title": "Response Search Chunks Rag Chunks Search Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "HTTPBearer": [] } ] } }, "/rag/generate-stream": { "post": { "summary": "Generate Content Stream", "description": "Generate content using streaming Claude response.", "operationId": "generate_content_stream_rag_generate_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateContentRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } } }, "components": { "schemas": { "ActivityResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "activity_type": { "type": "string", "title": "Activity Type" }, "source": { "type": "string", "title": "Source" }, "title": { "type": "string", "title": "Title" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon" }, "importance": { "type": "string", "title": "Importance" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Type" }, "entity_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Id" }, "action_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Url" }, "action_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action Label" }, "is_read": { "type": "boolean", "title": "Is Read" }, "created_at": { "type": "string", "title": "Created At" } }, "type": "object", "required": [ "id", "activity_type", "source", "title", "description", "icon", "importance", "metadata", "entity_type", "entity_id", "action_url", "action_label", "is_read", "created_at" ], "title": "ActivityResponse" }, "AddCompetitorRequest": { "properties": { "name": { "type": "string", "maxLength": 255, "minLength": 1, "title": "Name" }, "domain": { "type": "string", "maxLength": 255, "minLength": 3, "title": "Domain" }, "tier": { "type": "string", "title": "Tier", "default": "disruptor" }, "categories": { "items": { "type": "string" }, "type": "array", "title": "Categories", "default": [] }, "run_initial_scan": { "type": "boolean", "title": "Run Initial Scan", "default": true } }, "type": "object", "required": [ "name", "domain" ], "title": "AddCompetitorRequest" }, "AddMultipleCompetitorsRequest": { "properties": { "competitors": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Competitors" }, "run_initial_scan": { "type": "boolean", "title": "Run Initial Scan", "default": true } }, "type": "object", "required": [ "competitors" ], "title": "AddMultipleCompetitorsRequest" }, "AgentReadinessScore": { "properties": { "overall_score": { "type": "integer", "title": "Overall Score", "description": "0-100 score" }, "has_llms_txt": { "type": "boolean", "title": "Has Llms Txt", "default": false }, "has_context_txt": { "type": "boolean", "title": "Has Context Txt", "default": false }, "has_trust_txt": { "type": "boolean", "title": "Has Trust Txt", "default": false }, "has_sitemap": { "type": "boolean", "title": "Has Sitemap", "default": false }, "js_heavy": { "type": "boolean", "title": "Js Heavy", "default": false }, "content_structure_score": { "type": "integer", "title": "Content Structure Score", "default": 0 }, "positioning_clarity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Clarity" }, "headline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Headline" }, "issues": { "items": { "type": "string" }, "type": "array", "title": "Issues", "default": [] }, "advantages": { "items": { "type": "string" }, "type": "array", "title": "Advantages", "default": [] } }, "type": "object", "required": [ "overall_score" ], "title": "AgentReadinessScore", "description": "How AI-agent-friendly is this site?" }, "AgentResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "agent_type": { "type": "string", "title": "Agent Type" }, "agent_name": { "type": "string", "title": "Agent Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "status": { "type": "string", "title": "Status" }, "is_running": { "type": "boolean", "title": "Is Running" }, "last_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Run At" }, "last_run_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Run Status" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Error" }, "next_run_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Run At" }, "total_runs": { "type": "integer", "title": "Total Runs" }, "success_count": { "type": "integer", "title": "Success Count" }, "error_count": { "type": "integer", "title": "Error Count" }, "items_processed": { "type": "integer", "title": "Items Processed" }, "schedule_interval_minutes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Schedule Interval Minutes" } }, "type": "object", "required": [ "id", "agent_type", "agent_name", "description", "status", "is_running", "last_run_at", "last_run_status", "last_error", "next_run_at", "total_runs", "success_count", "error_count", "items_processed", "schedule_interval_minutes" ], "title": "AgentResponse" }, "AgentSummary": { "properties": { "id": { "type": "string", "title": "Id" }, "agent_type": { "type": "string", "title": "Agent Type" }, "journey_stage": { "type": "string", "title": "Journey Stage" }, "total_interactions": { "type": "integer", "title": "Total Interactions" }, "successful_interactions": { "type": "integer", "title": "Successful Interactions" }, "tools_used": { "items": { "type": "string" }, "type": "array", "title": "Tools Used" }, "first_seen_at": { "type": "string", "title": "First Seen At" }, "last_seen_at": { "type": "string", "title": "Last Seen At" }, "converted_to_human": { "type": "boolean", "title": "Converted To Human" }, "time_to_first_value_seconds": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Time To First Value Seconds" } }, "type": "object", "required": [ "id", "agent_type", "journey_stage", "total_interactions", "successful_interactions", "tools_used", "first_seen_at", "last_seen_at", "converted_to_human" ], "title": "AgentSummary", "description": "Summary of an AI agent" }, "AiExportRequest": { "properties": { "include_paths": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Include Paths", "description": "URL path prefixes to include" }, "exclude_paths": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Exclude Paths", "description": "URL path prefixes to exclude" }, "max_pages": { "type": "integer", "maximum": 1000.0, "minimum": 1.0, "title": "Max Pages", "default": 200 }, "include_llms_txt": { "type": "boolean", "title": "Include Llms Txt", "default": true }, "include_index": { "type": "boolean", "title": "Include Index", "default": true } }, "type": "object", "title": "AiExportRequest" }, "AnalystReportExtraction": { "properties": { "report_name": { "type": "string", "title": "Report Name" }, "analyst_firm": { "type": "string", "title": "Analyst Firm" }, "report_type": { "type": "string", "title": "Report Type" }, "publication_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Date" }, "market_category": { "type": "string", "title": "Market Category" }, "vendor_mentions": { "items": { "$ref": "#/components/schemas/VendorMention" }, "type": "array", "title": "Vendor Mentions" }, "market_trends": { "items": { "$ref": "#/components/schemas/MarketTrend" }, "type": "array", "title": "Market Trends" }, "key_findings": { "items": { "type": "string" }, "type": "array", "title": "Key Findings" }, "recommendations": { "items": { "type": "string" }, "type": "array", "title": "Recommendations" }, "competitive_insights": { "items": { "type": "string" }, "type": "array", "title": "Competitive Insights" }, "extracted_at": { "type": "string", "title": "Extracted At" } }, "type": "object", "required": [ "report_name", "analyst_firm", "report_type", "market_category" ], "title": "AnalystReportExtraction", "description": "Extracted insights from an analyst report" }, "AnalyticsSyncRequest": { "properties": { "days": { "type": "integer", "title": "Days", "default": 30 }, "limit": { "type": "integer", "title": "Limit", "default": 150 } }, "type": "object", "title": "AnalyticsSyncRequest" }, "ApiKeyResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "key_prefix": { "type": "string", "title": "Key Prefix" }, "scopes": { "items": { "type": "string" }, "type": "array", "title": "Scopes" }, "created_at": { "type": "string", "title": "Created At" }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "last_used_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Used At" }, "usage_count": { "type": "integer", "title": "Usage Count" }, "is_active": { "type": "boolean", "title": "Is Active" } }, "type": "object", "required": [ "id", "name", "key_prefix", "scopes", "created_at", "expires_at", "last_used_at", "usage_count", "is_active" ], "title": "ApiKeyResponse" }, "ApproveStepRequest": { "properties": { "content": { "additionalProperties": true, "type": "object", "title": "Content" } }, "type": "object", "required": [ "content" ], "title": "ApproveStepRequest", "description": "Approve generated content for a step" }, "AssistantRequest": { "properties": { "message": { "type": "string", "title": "Message" }, "context": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Context" }, "persona": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona" } }, "type": "object", "required": [ "message" ], "title": "AssistantRequest" }, "AttestationCreate": { "properties": { "claim_type": { "type": "string", "title": "Claim Type", "description": "Claim type: authored, reviewed, rationale, etc." }, "claim_payload": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Claim Payload", "description": "Structured claim data" }, "actor_id": { "type": "string", "title": "Actor Id", "description": "User ID, agent ID, or system ID" }, "actor_type": { "type": "string", "title": "Actor Type", "description": "human, ai_agent, system, integration", "default": "human" }, "actor_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Actor Name", "description": "Display name" }, "actor_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Actor Role", "description": "Role at time of attestation" }, "confidence": { "anyOf": [ { "type": "number", "maximum": 1.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Confidence", "description": "Confidence level" }, "evidence": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AttestationEvidenceCreate" }, "type": "array" }, { "type": "null" } ], "title": "Evidence" } }, "type": "object", "required": [ "claim_type", "actor_id" ], "title": "AttestationCreate", "description": "A signed claim about context" }, "AttestationEvidenceCreate": { "properties": { "evidence_type": { "type": "string", "title": "Evidence Type", "description": "Type: document, url, analysis, conversation" }, "evidence_uri": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Evidence Uri", "description": "URI to the evidence" }, "evidence_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Evidence Hash", "description": "Content hash for verification" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "content_excerpt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Excerpt", "description": "Relevant excerpt from the evidence" } }, "type": "object", "required": [ "evidence_type" ], "title": "AttestationEvidenceCreate", "description": "Evidence supporting an attestation" }, "BaselineProbeRequest": { "properties": { "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name", "description": "Company name (defaults to org's company)" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models", "description": "Models to probe (chatgpt, claude, gemini, perplexity)" } }, "type": "object", "title": "BaselineProbeRequest", "description": "Request to run a baseline probe." }, "BattlecardDetail": { "properties": { "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "competitor_id": { "type": "string", "title": "Competitor Id" }, "competitor_name": { "type": "string", "title": "Competitor Name" }, "competitor_domain": { "type": "string", "title": "Competitor Domain" }, "title": { "type": "string", "title": "Title" }, "status": { "type": "string", "title": "Status" }, "quick_comparison": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Quick Comparison" }, "competitor_overview": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Competitor Overview" }, "competitor_weaknesses": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Competitor Weaknesses" }, "differentiators": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Differentiators" }, "objection_handlers": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Objection Handlers" }, "when_we_win": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "When We Win" }, "when_we_lose": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "When We Lose" }, "discovery_questions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Discovery Questions" }, "positioning_short": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Short" }, "positioning_medium": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Medium" }, "positioning_long": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Long" }, "markdown_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Markdown Content" }, "google_drive_file_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Drive File Id" }, "google_drive_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Drive Url" }, "last_exported_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Exported At" }, "generation_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Generation Metadata" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "published_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Published At" }, "is_stale": { "type": "boolean", "title": "Is Stale", "default": false }, "competitor_updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Competitor Updated At" } }, "type": "object", "required": [ "id", "org_id", "competitor_id", "competitor_name", "competitor_domain", "title", "status", "created_at", "updated_at" ], "title": "BattlecardDetail", "description": "Full battlecard detail." }, "BattlecardSummary": { "properties": { "id": { "type": "string", "title": "Id" }, "competitor_id": { "type": "string", "title": "Competitor Id" }, "competitor_name": { "type": "string", "title": "Competitor Name" }, "competitor_domain": { "type": "string", "title": "Competitor Domain" }, "title": { "type": "string", "title": "Title" }, "status": { "type": "string", "title": "Status" }, "positioning_short": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Short" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "published_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Published At" }, "google_drive_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Drive Url" }, "is_stale": { "type": "boolean", "title": "Is Stale", "default": false }, "competitor_updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Competitor Updated At" } }, "type": "object", "required": [ "id", "competitor_id", "competitor_name", "competitor_domain", "title", "status", "created_at", "updated_at" ], "title": "BattlecardSummary", "description": "Summary view of a battlecard for list views." }, "BlogPost": { "properties": { "title": { "type": "string", "title": "Title" }, "url": { "type": "string", "title": "Url" }, "published_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Published Date" }, "days_ago": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Days Ago" }, "author": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Author" }, "author_title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Author Title" } }, "type": "object", "required": [ "title" ], "title": "BlogPost", "description": "A detected blog post" }, "BlueprintSummary": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "version": { "type": "string", "title": "Version" }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "input_schema": { "additionalProperties": true, "type": "object", "title": "Input Schema" } }, "type": "object", "required": [ "id", "name", "description", "version", "tags", "input_schema" ], "title": "BlueprintSummary", "description": "Summary of a blueprint" }, "Body_analyze_g2_themes_api_competitors__competitor_id__g2_analyze_themes_post": { "properties": { "force_refresh": { "type": "boolean", "title": "Force Refresh", "default": false }, "max_reviews": { "type": "integer", "maximum": 500.0, "minimum": 10.0, "title": "Max Reviews", "default": 100 } }, "type": "object", "title": "Body_analyze_g2_themes_api_competitors__competitor_id__g2_analyze_themes_post" }, "Body_analyze_pdf_api_pdfs__pdf_id__analyze_post": { "properties": { "analysis_type": { "type": "string", "title": "Analysis Type" } }, "type": "object", "required": [ "analysis_type" ], "title": "Body_analyze_pdf_api_pdfs__pdf_id__analyze_post" }, "Body_create_topics_from_g2_themes_api_competitors__competitor_id__g2_create_topics_post": { "properties": { "theme_types": { "items": { "type": "string" }, "type": "array", "title": "Theme Types", "default": [ "positive", "negative" ] }, "theme_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Theme Names" } }, "type": "object", "title": "Body_create_topics_from_g2_themes_api_competitors__competitor_id__g2_create_topics_post" }, "Body_generate_content_with_pdfs_api_pdfs_generate_content_post": { "properties": { "query": { "type": "string", "title": "Query" }, "platform": { "type": "string", "title": "Platform" }, "tone": { "type": "string", "title": "Tone" }, "pdf_ids": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pdf Ids" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "top_k": { "type": "integer", "maximum": 20.0, "minimum": 1.0, "title": "Top K", "default": 5 } }, "type": "object", "required": [ "query", "platform", "tone" ], "title": "Body_generate_content_with_pdfs_api_pdfs_generate_content_post" }, "Body_generate_observability_report_api_competitive_intel_monitor_full_report_post": { "properties": { "request": { "$ref": "#/components/schemas/CompetitorScanRequest" }, "your_framework": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Your Framework" } }, "type": "object", "required": [ "request" ], "title": "Body_generate_observability_report_api_competitive_intel_monitor_full_report_post" }, "Body_import_json_data_api_admin_migration_import_json_post": { "properties": { "file": { "type": "string", "contentMediaType": "application/octet-stream", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_import_json_data_api_admin_migration_import_json_post" }, "Body_link_g2_product_api_competitors__competitor_id__g2_link_post": { "properties": { "g2_product_id": { "type": "string", "title": "G2 Product Id" }, "g2_product_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "G2 Product Slug" } }, "type": "object", "required": [ "g2_product_id" ], "title": "Body_link_g2_product_api_competitors__competitor_id__g2_link_post" }, "Body_scan_saved_prompts_api_geo_aeo_prompts_scan_post": { "properties": { "prompt_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompt Ids" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" }, "brand_names": { "items": { "type": "string" }, "type": "array", "title": "Brand Names", "default": [] } }, "type": "object", "title": "Body_scan_saved_prompts_api_geo_aeo_prompts_scan_post" }, "Body_upload_document_api_onboarding_documents_upload_post": { "properties": { "file": { "type": "string", "contentMediaType": "application/octet-stream", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_upload_document_api_onboarding_documents_upload_post" }, "Body_upload_pdf_api_pdfs_upload_post": { "properties": { "file": { "type": "string", "contentMediaType": "application/octet-stream", "title": "File" }, "process_immediately": { "type": "boolean", "title": "Process Immediately", "default": false } }, "type": "object", "required": [ "file" ], "title": "Body_upload_pdf_api_pdfs_upload_post" }, "BootstrapRequest": { "properties": { "domain": { "type": "string", "title": "Domain", "description": "Domain to crawl and analyze" }, "competitors": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Competitors", "description": "Known competitors (optional)" }, "skip_crawl": { "type": "boolean", "title": "Skip Crawl", "description": "Skip crawl if content already exists", "default": false } }, "type": "object", "required": [ "domain" ], "title": "BootstrapRequest", "description": "Request to bootstrap a new organization." }, "BulkEnrichmentRequest": { "properties": { "identifiers": { "items": { "type": "string" }, "type": "array", "title": "Identifiers", "description": "List of identifiers to enrich" }, "identifier_type": { "type": "string", "title": "Identifier Type", "description": "Type of identifiers", "default": "email" }, "enrichment_type": { "$ref": "#/components/schemas/EnrichmentType", "description": "Type of enrichment", "default": "person" } }, "type": "object", "required": [ "identifiers" ], "title": "BulkEnrichmentRequest", "description": "Request model for bulk enrichment" }, "BulkPromptCreate": { "properties": { "prompts": { "items": { "$ref": "#/components/schemas/TargetPromptCreate" }, "type": "array", "title": "Prompts" } }, "type": "object", "required": [ "prompts" ], "title": "BulkPromptCreate", "description": "Bulk create prompts." }, "BulkScheduleRequest": { "properties": { "prompt_ids": { "items": { "type": "string" }, "type": "array", "title": "Prompt Ids" }, "enabled": { "type": "boolean", "title": "Enabled" }, "frequency_minutes": { "type": "integer", "title": "Frequency Minutes", "default": 60 } }, "type": "object", "required": [ "prompt_ids", "enabled" ], "title": "BulkScheduleRequest", "description": "Bulk update scheduling for multiple prompts." }, "CRMConfigRequest": { "properties": { "crm_type": { "type": "string", "title": "Crm Type", "description": "Type of CRM: pardot, hubspot, salesforce, etc." }, "config": { "additionalProperties": true, "type": "object", "title": "Config", "description": "CRM-specific configuration" }, "test_connection": { "type": "boolean", "title": "Test Connection", "description": "Test connection after saving", "default": true } }, "type": "object", "required": [ "crm_type", "config" ], "title": "CRMConfigRequest", "description": "CRM configuration request" }, "CadenceScore": { "properties": { "overall_score": { "type": "integer", "title": "Overall Score", "description": "0-100 cadence score" }, "grade": { "type": "string", "title": "Grade", "description": "A, B, C, D, F grade" }, "content_cadence": { "$ref": "#/components/schemas/ContentCadence" }, "linkedin_cadence": { "$ref": "#/components/schemas/LinkedInCadence" }, "careers_cadence": { "anyOf": [ { "$ref": "#/components/schemas/CareersCadence" }, { "type": "null" } ] }, "insights": { "items": { "type": "string" }, "type": "array", "title": "Insights" }, "competitive_assessment": { "type": "string", "title": "Competitive Assessment", "default": "" }, "scanned_at": { "type": "string", "title": "Scanned At" } }, "type": "object", "required": [ "overall_score", "grade", "content_cadence", "linkedin_cadence" ], "title": "CadenceScore", "description": "Overall content marketing cadence score" }, "CampaignAddRequest": { "properties": { "campaign_id": { "type": "string", "title": "Campaign Id", "description": "CRM campaign/list ID" }, "contact_emails": { "items": { "type": "string" }, "type": "array", "title": "Contact Emails", "description": "Email addresses to add" }, "create_if_missing": { "type": "boolean", "title": "Create If Missing", "description": "Create contacts if they don't exist", "default": false } }, "type": "object", "required": [ "campaign_id", "contact_emails" ], "title": "CampaignAddRequest", "description": "Add contacts to campaign request" }, "CareersCadence": { "properties": { "total_jobs_found": { "type": "integer", "title": "Total Jobs Found", "default": 0 }, "engineering_jobs": { "type": "integer", "title": "Engineering Jobs", "default": 0 }, "sales_marketing_jobs": { "type": "integer", "title": "Sales Marketing Jobs", "default": 0 }, "other_jobs": { "type": "integer", "title": "Other Jobs", "default": 0 }, "careers_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Careers Url" }, "sample_jobs": { "items": { "$ref": "#/components/schemas/JobPosting" }, "type": "array", "title": "Sample Jobs" }, "hiring_signal": { "type": "string", "title": "Hiring Signal", "default": "unknown" }, "departments_hiring": { "items": { "type": "string" }, "type": "array", "title": "Departments Hiring" } }, "type": "object", "title": "CareersCadence", "description": "Careers/hiring activity metrics" }, "ChampionTrackingRequest": { "properties": { "company_domain": { "type": "string", "title": "Company Domain", "description": "Company domain to track" }, "alert_on_changes": { "type": "boolean", "title": "Alert On Changes", "description": "Send alerts on champion changes", "default": true } }, "type": "object", "required": [ "company_domain" ], "title": "ChampionTrackingRequest", "description": "Request model for champion tracking" }, "ChunkOptimizationRequest": { "properties": { "chunk_id": { "type": "string", "title": "Chunk Id", "description": "Chunk ID to optimize" }, "target_tokens": { "type": "integer", "title": "Target Tokens", "description": "Target token count" }, "preserve_meaning": { "type": "boolean", "title": "Preserve Meaning", "description": "Whether to preserve semantic meaning", "default": true }, "version_name": { "type": "string", "title": "Version Name", "description": "Name for this version" } }, "type": "object", "required": [ "chunk_id", "target_tokens", "version_name" ], "title": "ChunkOptimizationRequest", "description": "Request for chunk optimization" }, "ChunkResponse": { "properties": { "id": { "type": "string", "title": "Id", "description": "Unique identifier for the chunk" }, "content_id": { "type": "string", "title": "Content Id", "description": "ID of the parent content" }, "chunk_index": { "type": "integer", "title": "Chunk Index", "description": "Index of this chunk in the content" }, "text": { "type": "string", "title": "Text", "description": "Chunk text" }, "start_char": { "type": "integer", "title": "Start Char", "description": "Start position in the original content" }, "end_char": { "type": "integer", "title": "End Char", "description": "End position in the original content" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "description": "Chunk metadata" }, "similarity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Similarity", "description": "Similarity score (if this is a search result)" } }, "type": "object", "required": [ "id", "content_id", "chunk_index", "text", "start_char", "end_char" ], "title": "ChunkResponse", "description": "Response model for content chunk retrieval." }, "ChunkSearchRequest": { "properties": { "query": { "type": "string", "title": "Query", "description": "Search query" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter by domain" }, "content_type": { "anyOf": [ { "$ref": "#/components/schemas/ContentType" }, { "type": "null" } ], "description": "Filter by content type" }, "top_k": { "type": "integer", "maximum": 50.0, "minimum": 1.0, "title": "Top K", "description": "Number of chunks to retrieve", "default": 5 } }, "type": "object", "required": [ "query" ], "title": "ChunkSearchRequest", "description": "Request to search for content chunks." }, "CompanyEnrichmentRequest": { "properties": { "identifier": { "type": "string", "title": "Identifier", "description": "Domain or company name" }, "identifier_type": { "type": "string", "title": "Identifier Type", "description": "Type of identifier: domain or name", "default": "domain" }, "enable_predictive_intelligence": { "type": "boolean", "title": "Enable Predictive Intelligence", "description": "Generate predictive intelligence", "default": true }, "analyze_competition": { "type": "boolean", "title": "Analyze Competition", "description": "Analyze competitive landscape", "default": true }, "identify_opportunities": { "type": "boolean", "title": "Identify Opportunities", "description": "Identify expansion opportunities", "default": true } }, "type": "object", "required": [ "identifier" ], "title": "CompanyEnrichmentRequest", "description": "Request model for company enrichment" }, "CompetitorIntelReport": { "properties": { "name": { "type": "string", "title": "Name" }, "domain": { "type": "string", "title": "Domain" }, "scanned_at": { "type": "string", "title": "Scanned At" }, "agent_readiness": { "$ref": "#/components/schemas/AgentReadinessScore" }, "reddit_mentions": { "items": { "$ref": "#/components/schemas/RedditMention" }, "type": "array", "title": "Reddit Mentions", "default": [] }, "reddit_summary": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Reddit Summary" }, "github_health": { "items": { "$ref": "#/components/schemas/GitHubRepoHealth" }, "type": "array", "title": "Github Health", "default": [] }, "overall_threat_level": { "type": "string", "title": "Overall Threat Level", "default": "unknown" }, "insights": { "items": { "type": "string" }, "type": "array", "title": "Insights", "default": [] } }, "type": "object", "required": [ "name", "domain", "scanned_at", "agent_readiness" ], "title": "CompetitorIntelReport", "description": "Full competitive intelligence report for a competitor" }, "CompetitorScanRequest": { "properties": { "name": { "type": "string", "title": "Name", "description": "Competitor name" }, "domain": { "type": "string", "title": "Domain", "description": "Competitor domain (e.g., confluent.io)" }, "github_repos": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Github Repos", "description": "GitHub repos to monitor (e.g., ['confluentinc/ksql'])" }, "reddit_keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Reddit Keywords", "description": "Keywords to search on Reddit" } }, "type": "object", "required": [ "name", "domain" ], "title": "CompetitorScanRequest", "description": "Request to scan a competitor" }, "CompetitorSuggestion": { "properties": { "name": { "type": "string", "title": "Name" }, "domain": { "type": "string", "title": "Domain" }, "description": { "type": "string", "title": "Description" }, "why_competitor": { "type": "string", "title": "Why Competitor" }, "confirmed": { "type": "boolean", "title": "Confirmed", "default": true } }, "type": "object", "required": [ "name", "domain", "description", "why_competitor" ], "title": "CompetitorSuggestion", "description": "A suggested competitor" }, "CompetitorSummary": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "domain": { "type": "string", "title": "Domain" }, "tier": { "type": "string", "title": "Tier" }, "cadence_grade": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cadence Grade" }, "agent_readiness_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Agent Readiness Score" }, "employee_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Employee Count" }, "last_scan": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Scan" } }, "type": "object", "required": [ "id", "name", "domain", "tier", "cadence_grade", "agent_readiness_score", "employee_count", "last_scan" ], "title": "CompetitorSummary" }, "ConfirmDiscoveryRequest": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "domain": { "type": "string", "title": "Domain" }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "what_you_do": { "items": { "type": "string" }, "type": "array", "title": "What You Do", "default": [] }, "products": { "items": { "type": "string" }, "type": "array", "title": "Products", "default": [] }, "competitors": { "items": { "type": "string" }, "type": "array", "title": "Competitors", "default": [] }, "social_links": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Social Links", "default": {} } }, "type": "object", "required": [ "company_name", "domain" ], "title": "ConfirmDiscoveryRequest", "description": "User-confirmed/edited discovery data" }, "ConfirmOnboardingRequest": { "properties": { "session_id": { "type": "string", "title": "Session Id" }, "company_name": { "type": "string", "title": "Company Name" }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" }, "messaging": { "$ref": "#/components/schemas/MessagingData" }, "confirmed_competitors": { "items": { "type": "string" }, "type": "array", "title": "Confirmed Competitors", "default": [] } }, "type": "object", "required": [ "session_id", "company_name", "messaging" ], "title": "ConfirmOnboardingRequest", "description": "User-confirmed onboarding data" }, "ConnectRequest": { "properties": { "api_token": { "type": "string", "title": "Api Token" } }, "type": "object", "required": [ "api_token" ], "title": "ConnectRequest" }, "ContactSyncRequest": { "properties": { "contact_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Contact Ids", "description": "Specific contact IDs to sync (all if not provided)" }, "sync_direction": { "type": "string", "title": "Sync Direction", "description": "Sync direction: to_crm, from_crm, bidirectional", "default": "to_crm" }, "update_existing": { "type": "boolean", "title": "Update Existing", "description": "Update existing contacts in CRM", "default": true }, "sync_companies": { "type": "boolean", "title": "Sync Companies", "description": "Also sync associated companies", "default": true } }, "type": "object", "title": "ContactSyncRequest", "description": "Contact sync request" }, "ContentCadence": { "properties": { "blog_posts_last_30_days": { "type": "integer", "title": "Blog Posts Last 30 Days", "default": 0 }, "blog_posts_last_90_days": { "type": "integer", "title": "Blog Posts Last 90 Days", "default": 0 }, "most_recent_post_days_ago": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Most Recent Post Days Ago" }, "recent_posts": { "items": { "$ref": "#/components/schemas/BlogPost" }, "type": "array", "title": "Recent Posts" }, "rss_available": { "type": "boolean", "title": "Rss Available", "default": false }, "blog_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Blog Url" } }, "type": "object", "title": "ContentCadence", "description": "Content publishing cadence metrics" }, "ContentPlatform": { "type": "string", "enum": [ "twitter", "instagram", "facebook", "linkedin", "email", "blog", "website", "customer_support", "video_script", "geo_prompt" ], "title": "ContentPlatform", "description": "Platforms for content generation." }, "ContentSearchRequest": { "properties": { "query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Query", "description": "Keyword query" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Domain filter" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type", "description": "Content type filter" }, "limit": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Limit", "description": "Max results", "default": 10 }, "offset": { "type": "integer", "minimum": 0.0, "title": "Offset", "description": "Pagination offset (ignored for now)", "default": 0 } }, "type": "object", "title": "ContentSearchRequest" }, "ContentTone": { "type": "string", "enum": [ "professional", "casual", "friendly", "enthusiastic", "informative", "persuasive", "authoritative" ], "title": "ContentTone", "description": "Tones for generated content." }, "ContentTopicResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "prompt": { "type": "string", "title": "Prompt" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source", "default": "manual" }, "visibility_score": { "type": "number", "title": "Visibility Score" }, "brand_mentioned": { "type": "boolean", "title": "Brand Mentioned" }, "competitors_mentioned": { "items": { "type": "string" }, "type": "array", "title": "Competitors Mentioned" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "guidance": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guidance" }, "suggested_at": { "type": "string", "title": "Suggested At" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status", "default": "suggested" }, "priority": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Priority", "default": "medium" } }, "type": "object", "required": [ "id", "prompt", "category", "visibility_score", "brand_mentioned", "competitors_mentioned", "guidance", "suggested_at" ], "title": "ContentTopicResponse", "description": "Response for a content topic." }, "ContentType": { "type": "string", "enum": [ "blog_post", "product_description", "about_page", "landing_page", "article", "news", "press_release", "documentation", "faq", "solutions_page", "case_study", "pricing_page", "product_page", "integration_page", "other" ], "title": "ContentType", "description": "Types of content that can be extracted." }, "ContentVersion": { "properties": { "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "content_type": { "type": "string", "title": "Content Type" }, "content_key": { "type": "string", "title": "Content Key" }, "content": { "type": "string", "title": "Content" }, "version_number": { "type": "integer", "title": "Version Number" }, "change_source": { "type": "string", "title": "Change Source" }, "change_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Reason" }, "training_session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Training Session Id" }, "detected_rules": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Detected Rules" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "is_current": { "type": "boolean", "title": "Is Current" } }, "type": "object", "required": [ "id", "org_id", "content_type", "content_key", "content", "version_number", "change_source", "change_reason", "training_session_id", "detected_rules", "created_by", "created_at", "is_current" ], "title": "ContentVersion" }, "ContentVersionCreate": { "properties": { "content_type": { "type": "string", "title": "Content Type" }, "content_key": { "type": "string", "title": "Content Key" }, "content": { "type": "string", "title": "Content" }, "change_source": { "type": "string", "title": "Change Source", "default": "manual" }, "change_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Reason" }, "training_session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Training Session Id" }, "detected_rules": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Detected Rules" } }, "type": "object", "required": [ "content_type", "content_key", "content" ], "title": "ContentVersionCreate" }, "CrawlDomainRequest": { "properties": { "domain": { "type": "string", "title": "Domain" }, "max_pages": { "type": "integer", "maximum": 5000.0, "minimum": 1.0, "title": "Max Pages", "default": 500 }, "max_depth": { "type": "integer", "maximum": 10.0, "minimum": 1.0, "title": "Max Depth", "default": 3 } }, "type": "object", "required": [ "domain" ], "title": "CrawlDomainRequest", "description": "Request to crawl a domain" }, "CrawlEstimateRequest": { "properties": { "domain": { "type": "string", "title": "Domain", "description": "Domain or URL to estimate" } }, "type": "object", "required": [ "domain" ], "title": "CrawlEstimateRequest", "description": "Request model for scan estimate." }, "CrawlRequest": { "properties": { "domains": { "items": { "type": "string" }, "type": "array", "title": "Domains", "description": "List of domains to crawl" }, "max_pages": { "type": "integer", "maximum": 2000.0, "minimum": 1.0, "title": "Max Pages", "description": "Maximum pages to crawl", "default": 500 }, "max_depth": { "type": "integer", "maximum": 10.0, "minimum": 1.0, "title": "Max Depth", "description": "Maximum crawl depth", "default": 3 }, "respect_robots": { "type": "boolean", "title": "Respect Robots", "description": "Respect robots.txt", "default": true }, "same_domain_only": { "type": "boolean", "title": "Same Domain Only", "description": "Only crawl same domain", "default": true }, "static_workers": { "type": "integer", "maximum": 20.0, "minimum": 1.0, "title": "Static Workers", "description": "Parallel workers for static sites", "default": 5 }, "headless": { "type": "boolean", "title": "Headless", "description": "Run browser in headless mode", "default": true }, "include_patterns": { "items": { "type": "string" }, "type": "array", "title": "Include Patterns", "description": "Regex URL/path patterns to include" }, "exclude_patterns": { "items": { "type": "string" }, "type": "array", "title": "Exclude Patterns", "description": "Regex URL/path patterns to exclude" }, "exclude_subdomains": { "items": { "type": "string" }, "type": "array", "title": "Exclude Subdomains", "description": "Subdomains to exclude (e.g., ['docs', 'api', 'cdn'])" } }, "type": "object", "required": [ "domains" ], "title": "CrawlRequest", "description": "Request model for crawl job." }, "CrawlResponse": { "properties": { "crawl_id": { "type": "string", "title": "Crawl Id" }, "task_id": { "type": "string", "title": "Task Id" }, "status": { "type": "string", "title": "Status" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "crawl_id", "task_id", "status", "message" ], "title": "CrawlResponse", "description": "Response model for crawl job." }, "CrawlSummary": { "properties": { "crawl_id": { "type": "string", "title": "Crawl Id" }, "org_id": { "type": "string", "title": "Org Id" }, "domains": { "items": { "type": "string" }, "type": "array", "title": "Domains" }, "total_urls_found": { "type": "integer", "title": "Total Urls Found" }, "total_urls_crawled": { "type": "integer", "title": "Total Urls Crawled" }, "total_pages_saved": { "type": "integer", "title": "Total Pages Saved" }, "success_rate": { "type": "number", "title": "Success Rate" }, "elapsed_time": { "type": "number", "title": "Elapsed Time" }, "pages_per_second": { "type": "number", "title": "Pages Per Second" }, "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "crawl_id", "org_id", "domains", "total_urls_found", "total_urls_crawled", "total_pages_saved", "success_rate", "elapsed_time", "pages_per_second", "status" ], "title": "CrawlSummary", "description": "Summary model for completed crawl." }, "CrawledContentItem": { "properties": { "id": { "type": "string", "title": "Id" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "content_type": { "type": "string", "title": "Content Type" }, "is_voice_training": { "type": "boolean", "title": "Is Voice Training", "default": false }, "snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Snippet" }, "extracted_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Extracted At" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain" } }, "type": "object", "required": [ "id", "url", "title", "content_type", "snippet", "extracted_at", "domain" ], "title": "CrawledContentItem", "description": "Crawled content available for voice selection." }, "CreateApiKeyRequest": { "properties": { "name": { "type": "string", "maxLength": 100, "minLength": 1, "title": "Name", "description": "Human-readable name for this key" }, "scopes": { "items": { "type": "string" }, "type": "array", "title": "Scopes", "description": "Permissions: read, write, crawl, admin", "default": [ "read" ] }, "expires_in_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expires In Days", "description": "Days until expiration (None = never)" } }, "type": "object", "required": [ "name" ], "title": "CreateApiKeyRequest" }, "CreateApiKeyResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "key": { "type": "string", "title": "Key" }, "key_prefix": { "type": "string", "title": "Key Prefix" }, "scopes": { "items": { "type": "string" }, "type": "array", "title": "Scopes" }, "created_at": { "type": "string", "title": "Created At" }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Expires At" } }, "type": "object", "required": [ "id", "name", "key", "key_prefix", "scopes", "created_at", "expires_at" ], "title": "CreateApiKeyResponse", "description": "Response when creating a key - includes the full key (only shown once)." }, "CreateNarrativeRequest": { "properties": { "name": { "type": "string", "title": "Name" }, "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords" }, "competitor_keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Competitor Keywords", "default": [] }, "is_primary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Primary", "default": false }, "narrative_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Narrative Type", "default": "product" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "watched_reddit_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Watched Reddit Users", "default": [] }, "watched_hn_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Watched Hn Users", "default": [] } }, "type": "object", "required": [ "name", "keywords" ], "title": "CreateNarrativeRequest" }, "CreateRequest": { "properties": { "client_name": { "type": "string", "title": "Client Name" }, "brief": { "type": "string", "title": "Brief", "default": "" }, "brand_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Brand Id" } }, "type": "object", "required": [ "client_name" ], "title": "CreateRequest" }, "CreateStreamRequest": { "properties": { "name": { "type": "string", "title": "Name", "description": "Stream name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Stream description" }, "filters": { "additionalProperties": true, "type": "object", "title": "Filters", "description": "Metadata filters" }, "ranking_criteria": { "additionalProperties": true, "type": "object", "title": "Ranking Criteria", "description": "Ranking configuration" }, "token_limits": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Token Limits", "description": "Token limits by use case", "default": { "default": 2000 } }, "is_public": { "type": "boolean", "title": "Is Public", "description": "Whether stream is public", "default": false } }, "type": "object", "required": [ "name" ], "title": "CreateStreamRequest", "description": "Request for creating a context stream" }, "CreateTopicsFromSignalsRequest": { "properties": { "signal_ids": { "items": { "type": "string" }, "type": "array", "title": "Signal Ids", "description": "List of signal IDs to convert to topics" }, "category": { "type": "string", "title": "Category", "description": "Default category for created topics", "default": "general" } }, "type": "object", "required": [ "signal_ids" ], "title": "CreateTopicsFromSignalsRequest", "description": "Request to create content topics from signals." }, "CreateVoiceRequest": { "properties": { "name": { "type": "string", "title": "Name", "description": "Name for this voice profile" }, "content_type": { "type": "string", "title": "Content Type", "description": "Type: blog, whitepaper, docs, case_study" }, "source_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Source Content Ids", "description": "IDs of content to analyze" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Description of this voice" }, "is_default": { "type": "boolean", "title": "Is Default", "description": "Set as default for this content type", "default": false } }, "type": "object", "required": [ "name", "content_type", "source_content_ids" ], "title": "CreateVoiceRequest", "description": "Request to create a new content voice." }, "DEODashboardStats": { "properties": { "total_agents": { "type": "integer", "title": "Total Agents" }, "total_interactions": { "type": "integer", "title": "Total Interactions" }, "agent_breakdown": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Agent Breakdown" }, "touchpoint_breakdown": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Touchpoint Breakdown" }, "journey_funnel": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Journey Funnel" }, "success_rate": { "type": "number", "title": "Success Rate" }, "avg_response_time_ms": { "type": "number", "title": "Avg Response Time Ms" }, "conversion_rate": { "type": "number", "title": "Conversion Rate" }, "competitive_win_rate": { "type": "number", "title": "Competitive Win Rate" } }, "type": "object", "required": [ "total_agents", "total_interactions", "agent_breakdown", "touchpoint_breakdown", "journey_funnel", "success_rate", "avg_response_time_ms", "conversion_rate", "competitive_win_rate" ], "title": "DEODashboardStats", "description": "Dashboard statistics" }, "DEOEventPayload": { "properties": { "event_type": { "type": "string", "title": "Event Type" }, "touchpoint": { "type": "string", "title": "Touchpoint" }, "action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action" }, "tool_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool Name" }, "endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint" }, "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" }, "duration_ms": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Ms" }, "success": { "type": "boolean", "title": "Success", "default": true }, "error_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Type" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "journey_stage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Journey Stage" }, "is_milestone": { "type": "boolean", "title": "Is Milestone", "default": false }, "milestone_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Milestone Name" }, "competitors_evaluated": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Competitors Evaluated" }, "properties": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Properties" }, "timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp" } }, "type": "object", "required": [ "event_type", "touchpoint" ], "title": "DEOEventPayload", "description": "Single DEO event from an instrumented touchpoint" }, "DEOIngestRequest": { "properties": { "source_id": { "type": "string", "title": "Source Id" }, "source_name": { "type": "string", "title": "Source Name" }, "touchpoint": { "type": "string", "title": "Touchpoint" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Id" }, "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" }, "user_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Agent" }, "agent_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Type" }, "agent_confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Agent Confidence" }, "events": { "items": { "$ref": "#/components/schemas/DEOEventPayload" }, "type": "array", "title": "Events" }, "mcp_server_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Version" }, "sdk_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sdk Version" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "source_id", "source_name", "touchpoint", "events" ], "title": "DEOIngestRequest", "description": "Batch ingest request from an instrumented source" }, "DEOIngestResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "events_processed": { "type": "integer", "title": "Events Processed" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "session_id": { "type": "string", "title": "Session Id" }, "journey_stage": { "type": "string", "title": "Journey Stage" }, "milestones_reached": { "items": { "type": "string" }, "type": "array", "title": "Milestones Reached", "default": [] } }, "type": "object", "required": [ "success", "events_processed", "session_id", "journey_stage" ], "title": "DEOIngestResponse", "description": "Response from ingest endpoint" }, "DiscoverCompetitorsRequest": { "properties": { "additional_context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Additional Context" } }, "type": "object", "title": "DiscoverCompetitorsRequest" }, "DiscoverDomainRequest": { "properties": { "domain": { "type": "string", "title": "Domain" } }, "type": "object", "required": [ "domain" ], "title": "DiscoverDomainRequest", "description": "Request to discover company info from domain" }, "DiscoverRequest": { "properties": { "keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keywords" }, "time_window_hours": { "type": "integer", "title": "Time Window Hours", "default": 24 }, "source_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Ids" } }, "type": "object", "title": "DiscoverRequest", "description": "Request to discover Discord signals" }, "DiscoverSignalsRequest": { "properties": { "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords", "default": [] }, "hashtags": { "items": { "type": "string" }, "type": "array", "title": "Hashtags", "default": [] }, "max_signals": { "type": "integer", "title": "Max Signals", "default": 50 } }, "type": "object", "title": "DiscoverSignalsRequest" }, "DiscoveryConfigRequest": { "properties": { "name": { "type": "string", "title": "Name", "default": "Daily Discovery" }, "enabled": { "type": "boolean", "title": "Enabled", "default": true }, "schedule_hour": { "type": "integer", "title": "Schedule Hour", "default": 9 }, "platforms": { "items": { "type": "string" }, "type": "array", "title": "Platforms", "default": [ "github", "reddit", "linkedin" ] }, "hashtags": { "items": { "type": "string" }, "type": "array", "title": "Hashtags", "default": [] }, "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords", "default": [] }, "github_repos": { "items": { "type": "string" }, "type": "array", "title": "Github Repos", "default": [] }, "reddit_subreddits": { "items": { "type": "string" }, "type": "array", "title": "Reddit Subreddits", "default": [] }, "send_digest": { "type": "boolean", "title": "Send Digest", "default": true }, "slack_webhook": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Slack Webhook" }, "email_recipients": { "items": { "type": "string" }, "type": "array", "title": "Email Recipients", "default": [] }, "min_relevance": { "type": "number", "title": "Min Relevance", "default": 0.6 }, "max_signals_per_platform": { "type": "integer", "title": "Max Signals Per Platform", "default": 50 } }, "type": "object", "title": "DiscoveryConfigRequest", "description": "Request model for discovery configuration" }, "DiscoveryData": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "domain": { "type": "string", "title": "Domain" }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" }, "products": { "items": { "type": "string" }, "type": "array", "title": "Products", "default": [] }, "what_you_do": { "items": { "type": "string" }, "type": "array", "title": "What You Do", "default": [] }, "social_links": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Social Links", "default": {} } }, "type": "object", "required": [ "company_name", "domain" ], "title": "DiscoveryData", "description": "Homepage discovery data" }, "DiscoveryInsightResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "insight_type": { "type": "string", "title": "Insight Type" }, "title": { "type": "string", "title": "Title" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "confidence": { "type": "number", "title": "Confidence" }, "is_actionable": { "type": "boolean", "title": "Is Actionable" }, "action_taken": { "type": "boolean", "title": "Action Taken" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "id", "insight_type", "title", "description", "confidence", "is_actionable", "action_taken", "created_at", "metadata" ], "title": "DiscoveryInsightResponse", "description": "Response model for discovery insights." }, "DiscoveryOverview": { "properties": { "latest_discoveries": { "items": { "$ref": "#/components/schemas/DiscoveryInsightResponse" }, "type": "array", "title": "Latest Discoveries" }, "active_patterns": { "items": { "$ref": "#/components/schemas/DiscoveryPatternResponse" }, "type": "array", "title": "Active Patterns" }, "predictions": { "items": { "$ref": "#/components/schemas/DiscoveryInsightResponse" }, "type": "array", "title": "Predictions" }, "next_deep_discovery": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Next Deep Discovery" }, "total_sources": { "type": "integer", "title": "Total Sources" }, "active_sources": { "type": "integer", "title": "Active Sources" }, "api_calls_today": { "type": "integer", "title": "Api Calls Today" }, "api_calls_remaining": { "type": "integer", "title": "Api Calls Remaining" } }, "type": "object", "required": [ "latest_discoveries", "active_patterns", "predictions", "next_deep_discovery", "total_sources", "active_sources", "api_calls_today", "api_calls_remaining" ], "title": "DiscoveryOverview", "description": "Overview of discovery system status." }, "DiscoveryPatternResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "pattern_type": { "type": "string", "title": "Pattern Type" }, "confidence": { "type": "number", "title": "Confidence" }, "first_seen": { "type": "string", "format": "date-time", "title": "First Seen" }, "last_seen": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Seen" }, "entities": { "additionalProperties": true, "type": "object", "title": "Entities" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "id", "pattern_type", "confidence", "first_seen", "last_seen", "entities", "metadata" ], "title": "DiscoveryPatternResponse", "description": "Response model for discovery patterns." }, "DiscoveryResult": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "domain": { "type": "string", "title": "Domain" }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "what_you_do": { "items": { "type": "string" }, "type": "array", "title": "What You Do", "default": [] }, "products": { "items": { "type": "string" }, "type": "array", "title": "Products", "default": [] }, "competitors": { "items": { "type": "string" }, "type": "array", "title": "Competitors", "default": [] }, "social_links": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Social Links", "default": {} } }, "type": "object", "required": [ "company_name", "domain" ], "title": "DiscoveryResult", "description": "Quick discovery results from a domain" }, "DiscoveryStateResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "source": { "type": "string", "title": "Source" }, "source_type": { "type": "string", "title": "Source Type" }, "signal_count": { "type": "integer", "title": "Signal Count" }, "quality_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Quality Score" }, "is_active": { "type": "boolean", "title": "Is Active" }, "last_checked": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Checked" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "id", "source", "source_type", "signal_count", "quality_score", "is_active", "last_checked", "metadata" ], "title": "DiscoveryStateResponse", "description": "Response model for discovery source state." }, "DriveConfigRequest": { "properties": { "root_folder_name": { "type": "string", "title": "Root Folder Name" }, "default_sharing": { "type": "string", "title": "Default Sharing" }, "auto_export_enabled": { "type": "boolean", "title": "Auto Export Enabled" } }, "type": "object", "required": [ "root_folder_name", "default_sharing", "auto_export_enabled" ], "title": "DriveConfigRequest" }, "EditVideoScriptRequest": { "properties": { "script_text": { "type": "string", "title": "Script Text", "description": "Updated script text" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Updated title" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "Edit notes" } }, "type": "object", "required": [ "script_text" ], "title": "EditVideoScriptRequest", "description": "Request to edit a saved video script" }, "EnrichmentData": { "properties": { "industry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry" }, "employee_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Employee Count" }, "revenue": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Revenue" }, "headquarters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Headquarters" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "founded_year": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Founded Year" }, "linkedin_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Linkedin Url" }, "technologies": { "items": { "type": "string" }, "type": "array", "title": "Technologies", "default": [] } }, "type": "object", "title": "EnrichmentData", "description": "Lusha enrichment data" }, "EnrichmentType": { "type": "string", "enum": [ "person", "company", "prospecting" ], "title": "EnrichmentType" }, "EventPayload": { "properties": { "event_type": { "type": "string", "title": "Event Type", "description": "Event type: page_view, click, scroll, assistant_message" }, "event_name": { "type": "string", "title": "Event Name", "description": "Event name: cta_click, integration_hover, etc." }, "event_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Event Category" }, "page_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Page Url" }, "page_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Page Path" }, "page_title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Page Title" }, "element_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Element Id" }, "element_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Element Class" }, "element_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Element Text" }, "scroll_depth": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Scroll Depth" }, "time_on_page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Time On Page" }, "assistant_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Assistant Message" }, "assistant_response": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Assistant Response" }, "properties": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Properties" } }, "type": "object", "required": [ "event_type", "event_name" ], "title": "EventPayload", "description": "Single event payload from frontend." }, "ExecuteRequest": { "properties": { "blueprint_id": { "type": "string", "title": "Blueprint Id", "description": "ID of the blueprint to execute" }, "inputs": { "additionalProperties": true, "type": "object", "title": "Inputs", "description": "Input parameters" }, "stream": { "type": "boolean", "title": "Stream", "description": "Whether to stream execution updates", "default": false } }, "type": "object", "required": [ "blueprint_id" ], "title": "ExecuteRequest", "description": "Request to execute a blueprint" }, "ExportRequest": { "properties": { "title": { "type": "string", "title": "Title" }, "content": { "type": "string", "title": "Content" }, "format": { "type": "string", "title": "Format", "default": "docx" }, "export_to_drive": { "type": "boolean", "title": "Export To Drive", "default": true } }, "type": "object", "required": [ "title", "content" ], "title": "ExportRequest" }, "ExportToDriveRequest": { "properties": { "folder_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Folder Id", "description": "Google Drive folder ID" } }, "type": "object", "title": "ExportToDriveRequest", "description": "Request to export battlecard to Google Drive." }, "ExportToGoogleDriveRequest": { "properties": { "content_id": { "type": "string", "title": "Content Id", "description": "ID of content to export" }, "export_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Export Type", "description": "docs or sheets, auto-determined if not provided" }, "sharing_permission": { "type": "string", "title": "Sharing Permission", "default": "private" }, "custom_folder_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Folder Path" }, "include_collaboration_template": { "type": "boolean", "title": "Include Collaboration Template", "default": true }, "custom_title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Title" } }, "type": "object", "required": [ "content_id" ], "title": "ExportToGoogleDriveRequest" }, "ExtractedMessagingFramework": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" }, "value_proposition": { "type": "string", "title": "Value Proposition" }, "positioning_statement": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Positioning Statement" }, "target_audience": { "type": "string", "title": "Target Audience" }, "key_differentiators": { "items": { "type": "string" }, "type": "array", "title": "Key Differentiators" }, "personas": { "items": { "$ref": "#/components/schemas/ExtractedPersona" }, "type": "array", "title": "Personas" }, "products": { "items": { "$ref": "#/components/schemas/ExtractedProduct" }, "type": "array", "title": "Products" }, "proof_points": { "items": { "type": "string" }, "type": "array", "title": "Proof Points" }, "competitive_claims": { "items": { "type": "string" }, "type": "array", "title": "Competitive Claims" }, "messaging_tone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Messaging Tone" }, "extracted_at": { "type": "string", "title": "Extracted At" }, "confidence_score": { "type": "number", "title": "Confidence Score", "default": 0.0 } }, "type": "object", "required": [ "company_name", "value_proposition", "target_audience" ], "title": "ExtractedMessagingFramework", "description": "Complete messaging framework extracted via Claude" }, "ExtractedPersona": { "properties": { "title": { "type": "string", "title": "Title", "description": "Job title or role" }, "description": { "type": "string", "title": "Description", "description": "Brief description" }, "pain_points": { "items": { "type": "string" }, "type": "array", "title": "Pain Points" }, "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords" } }, "type": "object", "required": [ "title", "description" ], "title": "ExtractedPersona", "description": "Persona extracted from competitor messaging" }, "ExtractedProduct": { "properties": { "name": { "type": "string", "title": "Name" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "description": { "type": "string", "title": "Description" }, "key_features": { "items": { "type": "string" }, "type": "array", "title": "Key Features" }, "differentiators": { "items": { "type": "string" }, "type": "array", "title": "Differentiators" } }, "type": "object", "required": [ "name", "description" ], "title": "ExtractedProduct", "description": "Product/offering extracted from competitor" }, "FunnelStage": { "type": "string", "enum": [ "tofu", "mofu", "bofu" ], "title": "FunnelStage", "description": "Sales funnel stages for content targeting." }, "G2ScanRequest": { "properties": { "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name" }, "auto_add_competitors": { "type": "boolean", "title": "Auto Add Competitors", "default": true }, "max_competitors": { "type": "integer", "title": "Max Competitors", "default": 10 } }, "type": "object", "title": "G2ScanRequest", "description": "Request body for G2 scan" }, "GAConfigRequest": { "properties": { "property_id": { "type": "string", "title": "Property Id", "description": "GA4 Property ID (numeric value)" }, "credentials_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials Path", "description": "Local filesystem path to a Google service account JSON file (optional)" }, "service_account_json": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Account Json", "description": "Service account JSON payload for authentication (optional)" } }, "type": "object", "required": [ "property_id" ], "title": "GAConfigRequest" }, "GAConfigResponse": { "properties": { "property_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Property Id" }, "credentials_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials Path" }, "has_service_account": { "type": "boolean", "title": "Has Service Account", "default": false } }, "type": "object", "required": [ "property_id", "credentials_path" ], "title": "GAConfigResponse" }, "GSCQueriesResponse": { "properties": { "site_url": { "type": "string", "title": "Site Url" }, "queries": { "items": { "$ref": "#/components/schemas/GSCQueryResponse" }, "type": "array", "title": "Queries" }, "total_queries": { "type": "integer", "title": "Total Queries" }, "total_clicks": { "type": "integer", "title": "Total Clicks" }, "total_impressions": { "type": "integer", "title": "Total Impressions" }, "avg_ctr": { "type": "number", "title": "Avg Ctr" }, "period": { "additionalProperties": true, "type": "object", "title": "Period" } }, "type": "object", "required": [ "site_url", "queries", "total_queries", "total_clicks", "total_impressions", "avg_ctr", "period" ], "title": "GSCQueriesResponse", "description": "Response for search queries endpoint" }, "GSCQueryResponse": { "properties": { "query": { "type": "string", "title": "Query" }, "clicks": { "type": "integer", "title": "Clicks" }, "impressions": { "type": "integer", "title": "Impressions" }, "ctr": { "type": "number", "title": "Ctr" }, "position": { "type": "number", "title": "Position" } }, "type": "object", "required": [ "query", "clicks", "impressions", "ctr", "position" ], "title": "GSCQueryResponse", "description": "Response for a search query" }, "GSCSiteResponse": { "properties": { "site_url": { "type": "string", "title": "Site Url" }, "permission_level": { "type": "string", "title": "Permission Level" } }, "type": "object", "required": [ "site_url", "permission_level" ], "title": "GSCSiteResponse", "description": "Response for a GSC site" }, "GenerateBattlecardRequest": { "properties": { "competitor_id": { "type": "string", "title": "Competitor Id", "description": "UUID of the competitor" }, "regenerate": { "type": "boolean", "title": "Regenerate", "description": "Whether to regenerate even if one exists", "default": false } }, "type": "object", "required": [ "competitor_id" ], "title": "GenerateBattlecardRequest", "description": "Request to generate a new battlecard." }, "GenerateContentRequest": { "properties": { "query": { "type": "string", "title": "Query", "description": "Question or topic for content generation" }, "platform": { "$ref": "#/components/schemas/ContentPlatform", "description": "Target platform" }, "tone": { "$ref": "#/components/schemas/ContentTone", "description": "Desired tone" }, "personality": { "$ref": "#/components/schemas/PersonalityType", "description": "Personality profile to use", "default": "default" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter by domain" }, "content_type": { "anyOf": [ { "$ref": "#/components/schemas/ContentType" }, { "type": "null" } ], "description": "Filter by content type" }, "top_k": { "type": "integer", "maximum": 20.0, "minimum": 1.0, "title": "Top K", "description": "Number of chunks to retrieve", "default": 5 }, "template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Id", "description": "ID of custom template to use" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id", "description": "Gypsum persona ID for targeting" }, "use_persona_context": { "type": "boolean", "title": "Use Persona Context", "description": "Whether to enhance with persona context", "default": true }, "funnel_stage": { "anyOf": [ { "$ref": "#/components/schemas/FunnelStage" }, { "type": "null" } ], "description": "Sales funnel stage for targeting" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "description": "Additional metadata for generation" } }, "type": "object", "required": [ "query", "platform", "tone" ], "title": "GenerateContentRequest", "description": "Request to generate content using RAG." }, "GenerateDeckRequest": { "properties": { "url": { "type": "string", "title": "Url", "description": "Website URL to analyze" }, "style": { "type": "string", "title": "Style", "description": "Deck style: investor, sales, product", "default": "sales" }, "num_slides": { "type": "integer", "maximum": 20.0, "minimum": 6.0, "title": "Num Slides", "default": 10 } }, "type": "object", "required": [ "url" ], "title": "GenerateDeckRequest" }, "GenerateElementRequest": { "properties": { "element_type": { "type": "string", "title": "Element Type", "description": "Type: product, persona, use_case, positioning, icp" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Company domain for context" }, "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name", "description": "Company name" }, "existing_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Existing Data", "description": "Existing framework data" }, "additional_context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Additional Context", "description": "Additional instructions" } }, "type": "object", "required": [ "element_type" ], "title": "GenerateElementRequest", "description": "Request to generate a single element with AI." }, "GeneratePromptsRequest": { "properties": { "company_name": { "type": "string", "title": "Company Name", "description": "Company name to monitor" }, "products": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Products", "description": "Product names" }, "competitors": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Competitors", "description": "Competitor names" }, "use_cases": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Use Cases", "description": "Use cases" }, "industries": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Industries", "description": "Target industries" }, "value_proposition": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Proposition", "description": "Value proposition" }, "num_prompts": { "type": "integer", "maximum": 30.0, "minimum": 1.0, "title": "Num Prompts", "description": "Number of prompts to generate", "default": 15 }, "categories": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Categories", "description": "Categories to generate prompts for: messaging, competitive, use_case, industry, community" } }, "type": "object", "required": [ "company_name" ], "title": "GeneratePromptsRequest", "description": "Request to generate GEO prompts from context." }, "GenerateStepRequest": { "properties": { "regenerate": { "type": "boolean", "title": "Regenerate", "default": false } }, "type": "object", "title": "GenerateStepRequest", "description": "Request to generate content for a framework step" }, "GenerateWithGypsumRequest": { "properties": { "query": { "type": "string", "title": "Query", "description": "Query or topic for content generation" }, "platform": { "type": "string", "title": "Platform", "description": "Target platform (twitter, linkedin, etc.)" }, "tone": { "type": "string", "title": "Tone", "description": "Desired tone (professional, casual, etc.)" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id", "description": "Specific persona to target" }, "use_gypsum_context": { "type": "boolean", "title": "Use Gypsum Context", "description": "Include Gypsum marketing data", "default": true }, "strategy": { "type": "string", "enum": [ "hybrid", "semantic", "keyword", "domain" ], "title": "Strategy", "description": "Search strategy for RAG context retrieval", "default": "hybrid" }, "top_k": { "type": "integer", "maximum": 20.0, "minimum": 1.0, "title": "Top K", "description": "Number of context chunks to retrieve", "default": 5 }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter context by domain" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type", "description": "Filter context by content type" } }, "type": "object", "required": [ "query", "platform", "tone" ], "title": "GenerateWithGypsumRequest", "description": "Request model for content generation with Gypsum + RAG integration." }, "GenerateWithGypsumResponse": { "properties": { "query": { "type": "string", "title": "Query" }, "generated_content": { "type": "string", "title": "Generated Content" }, "context_sources": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Context Sources" }, "gypsum_context": { "additionalProperties": true, "type": "object", "title": "Gypsum Context" }, "retrieval_stats": { "additionalProperties": true, "type": "object", "title": "Retrieval Stats" }, "generation_metadata": { "additionalProperties": true, "type": "object", "title": "Generation Metadata" }, "timestamp": { "type": "string", "title": "Timestamp" } }, "type": "object", "required": [ "query", "generated_content", "context_sources", "gypsum_context", "retrieval_stats", "generation_metadata", "timestamp" ], "title": "GenerateWithGypsumResponse", "description": "Response model for Gypsum + RAG content generation." }, "GenerateWithHybridRequest": { "properties": { "query": { "type": "string", "title": "Query", "description": "Query or topic for content generation" }, "platform": { "type": "string", "title": "Platform", "description": "Target platform (twitter, linkedin, etc.)" }, "tone": { "type": "string", "title": "Tone", "description": "Desired tone (professional, casual, etc.)" }, "strategy": { "type": "string", "enum": [ "hybrid", "semantic", "keyword", "domain" ], "title": "Strategy", "description": "Search strategy for context retrieval", "default": "hybrid" }, "top_k": { "type": "integer", "maximum": 20.0, "minimum": 1.0, "title": "Top K", "description": "Number of context chunks to retrieve", "default": 5 }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter context by domain" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type", "description": "Filter context by content type" } }, "type": "object", "required": [ "query", "platform", "tone" ], "title": "GenerateWithHybridRequest", "description": "Request model for content generation with hybrid RAG." }, "GenerateWithHybridResponse": { "properties": { "query": { "type": "string", "title": "Query" }, "generated_content": { "type": "string", "title": "Generated Content" }, "context_sources": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Context Sources" }, "retrieval_stats": { "additionalProperties": true, "type": "object", "title": "Retrieval Stats" }, "generation_metadata": { "additionalProperties": true, "type": "object", "title": "Generation Metadata" }, "timestamp": { "type": "string", "title": "Timestamp" } }, "type": "object", "required": [ "query", "generated_content", "context_sources", "retrieval_stats", "generation_metadata", "timestamp" ], "title": "GenerateWithHybridResponse", "description": "Response model for hybrid RAG content generation." }, "GenerateWithPositioningRequest": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "market_shift": { "type": "string", "title": "Market Shift", "description": "The massive industry shift" }, "problem": { "type": "string", "title": "Problem", "description": "What's broken today (old way)" }, "solution": { "type": "string", "title": "Solution", "description": "How you solve it (new way)" }, "differentiation": { "type": "string", "title": "Differentiation", "description": "Why you vs alternatives" }, "audience": { "type": "string", "title": "Audience", "description": "Who's the buyer" }, "proof": { "type": "string", "title": "Proof", "description": "Evidence it works", "default": "" }, "template": { "type": "string", "title": "Template", "description": "Deck template", "default": "market_shift" }, "website_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Website Url", "description": "Website for brand styles" } }, "type": "object", "required": [ "company_name", "market_shift", "problem", "solution", "differentiation", "audience" ], "title": "GenerateWithPositioningRequest" }, "GeneratedContent": { "properties": { "text": { "type": "string", "title": "Text", "description": "Generated content text" }, "source_chunks": { "items": { "$ref": "#/components/schemas/SourceChunk" }, "type": "array", "title": "Source Chunks", "description": "Source chunks used for generation" }, "personality_used": { "$ref": "#/components/schemas/PersonalityType", "description": "Personality profile that was applied", "default": "default" }, "template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Id", "description": "ID of the template used" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id", "description": "Gypsum persona ID that was used" }, "template_enhanced": { "type": "boolean", "title": "Template Enhanced", "description": "Whether custom template was used", "default": false }, "persona_enhanced": { "type": "boolean", "title": "Persona Enhanced", "description": "Whether persona context was applied", "default": false }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "description": "Generation metadata including enhancement details" } }, "type": "object", "required": [ "text", "source_chunks" ], "title": "GeneratedContent", "description": "Response model for generated content." }, "GeneratedPrompt": { "properties": { "title": { "type": "string", "title": "Title", "description": "Short title for the prompt" }, "prompt": { "type": "string", "title": "Prompt", "description": "The actual prompt text" }, "platform": { "$ref": "#/components/schemas/ContentPlatform", "description": "Recommended platform" }, "tone": { "$ref": "#/components/schemas/ContentTone", "description": "Recommended tone" }, "funnel_stage": { "$ref": "#/components/schemas/FunnelStage", "description": "Target funnel stage" }, "category": { "type": "string", "title": "Category", "description": "Content category" }, "confidence": { "type": "number", "title": "Confidence", "description": "Confidence score 0-1" }, "reasoning": { "type": "string", "title": "Reasoning", "description": "Why this prompt was suggested" }, "keywords": { "items": { "type": "string" }, "type": "array", "title": "Keywords", "description": "Key topics/keywords from content" }, "persona_alignment": { "additionalProperties": true, "type": "object", "title": "Persona Alignment", "description": "How this aligns with target persona" }, "messaging_framework": { "additionalProperties": true, "type": "object", "title": "Messaging Framework", "description": "Messaging framework elements" } }, "type": "object", "required": [ "title", "prompt", "platform", "tone", "funnel_stage", "category", "confidence", "reasoning", "keywords", "persona_alignment", "messaging_framework" ], "title": "GeneratedPrompt", "description": "A generated prompt suggestion enhanced with Gypsum persona insights" }, "GitHubRepoHealth": { "properties": { "repo": { "type": "string", "title": "Repo" }, "stars": { "type": "integer", "title": "Stars", "default": 0 }, "open_issues": { "type": "integer", "title": "Open Issues", "default": 0 }, "recent_commits": { "type": "integer", "title": "Recent Commits", "default": 0 }, "contributors": { "type": "integer", "title": "Contributors", "default": 0 }, "last_commit_days_ago": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Last Commit Days Ago" }, "top_issue_themes": { "items": { "type": "string" }, "type": "array", "title": "Top Issue Themes", "default": [] }, "health_score": { "type": "integer", "title": "Health Score", "default": 0 } }, "type": "object", "required": [ "repo" ], "title": "GitHubRepoHealth", "description": "Health metrics for a GitHub repo" }, "GovDiscoveryRequest": { "properties": { "keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keywords" }, "verticals": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Verticals" }, "naics_codes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Naics Codes" }, "days_back": { "type": "integer", "title": "Days Back", "default": 30 }, "max_results": { "type": "integer", "title": "Max Results", "default": 50 } }, "type": "object", "title": "GovDiscoveryRequest" }, "GovernancePolicyCreate": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "version": { "type": "string", "title": "Version", "default": "1.0" }, "applies_to_entity_types": { "items": { "type": "string" }, "type": "array", "title": "Applies To Entity Types" }, "applies_to_field_paths": { "items": { "type": "string" }, "type": "array", "title": "Applies To Field Paths" }, "required_claim_types": { "items": { "type": "string" }, "type": "array", "title": "Required Claim Types" }, "required_actor_roles": { "items": { "type": "string" }, "type": "array", "title": "Required Actor Roles" }, "min_attestations": { "type": "integer", "minimum": 1.0, "title": "Min Attestations", "default": 1 }, "validation_schema": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Validation Schema" }, "is_active": { "type": "boolean", "title": "Is Active", "default": true } }, "type": "object", "required": [ "name" ], "title": "GovernancePolicyCreate", "description": "Create a governance policy" }, "GuidanceRequest": { "properties": { "prompt": { "type": "string", "title": "Prompt", "description": "The prompt that was tested" }, "brand_mentioned": { "type": "boolean", "title": "Brand Mentioned", "description": "Whether the brand was mentioned" }, "competitors_mentioned": { "items": { "type": "string" }, "type": "array", "title": "Competitors Mentioned", "description": "Competitors mentioned in response", "default": [] }, "ai_response": { "type": "string", "title": "Ai Response", "description": "The AI response text" }, "visibility_score": { "type": "number", "title": "Visibility Score", "description": "Visibility score", "default": 0.0 }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category", "description": "Prompt category" } }, "type": "object", "required": [ "prompt", "brand_mentioned", "ai_response" ], "title": "GuidanceRequest", "description": "Request for visibility gap guidance." }, "GypsumSyncRequest": { "properties": { "version_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Version Metadata" }, "change_source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Source", "default": "sync" }, "change_rationale": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Change Rationale" } }, "type": "object", "title": "GypsumSyncRequest", "description": "Optional metadata to include when syncing from Gypsum" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HealthSummaryResponse": { "properties": { "total": { "type": "integer", "title": "Total" }, "connected": { "type": "integer", "title": "Connected" }, "errors": { "type": "integer", "title": "Errors" }, "connected_integrations": { "items": { "$ref": "#/components/schemas/IntegrationResponse" }, "type": "array", "title": "Connected Integrations" }, "disconnected_integrations": { "items": { "$ref": "#/components/schemas/IntegrationResponse" }, "type": "array", "title": "Disconnected Integrations" }, "error_integrations": { "items": { "$ref": "#/components/schemas/IntegrationResponse" }, "type": "array", "title": "Error Integrations" } }, "type": "object", "required": [ "total", "connected", "errors", "connected_integrations", "disconnected_integrations", "error_integrations" ], "title": "HealthSummaryResponse" }, "HotTopicResponse": { "properties": { "query": { "type": "string", "title": "Query" }, "topic_cluster": { "type": "string", "title": "Topic Cluster" }, "impressions": { "type": "integer", "title": "Impressions" }, "clicks": { "type": "integer", "title": "Clicks" }, "ctr": { "type": "number", "title": "Ctr" }, "position": { "type": "number", "title": "Position" }, "trend": { "type": "string", "title": "Trend" }, "visibility_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Visibility Score" }, "ai_mentions": { "type": "integer", "title": "Ai Mentions" }, "competitor_mentions": { "items": { "type": "string" }, "type": "array", "title": "Competitor Mentions" }, "last_tested": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Tested" } }, "type": "object", "required": [ "query", "topic_cluster", "impressions", "clicks", "ctr", "position", "trend", "visibility_score", "ai_mentions", "competitor_mentions", "last_tested" ], "title": "HotTopicResponse" }, "HybridSearchRequest": { "properties": { "query": { "type": "string", "maxLength": 1000, "minLength": 1, "title": "Query", "description": "Search query" }, "strategy": { "type": "string", "enum": [ "hybrid", "semantic", "keyword", "domain" ], "title": "Strategy", "description": "Search strategy to use", "default": "hybrid" }, "top_k": { "type": "integer", "maximum": 50.0, "minimum": 1.0, "title": "Top K", "description": "Number of results to return", "default": 10 }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter by specific domain" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type", "description": "Filter by content type" } }, "type": "object", "required": [ "query" ], "title": "HybridSearchRequest", "description": "Request model for hybrid search." }, "HybridSearchResponse": { "properties": { "query": { "type": "string", "title": "Query" }, "results": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Results" }, "retrieval_stats": { "additionalProperties": true, "type": "object", "title": "Retrieval Stats" }, "timestamp": { "type": "string", "title": "Timestamp" }, "strategy_used": { "type": "string", "title": "Strategy Used" } }, "type": "object", "required": [ "query", "results", "retrieval_stats", "timestamp", "strategy_used" ], "title": "HybridSearchResponse", "description": "Response model for hybrid search." }, "ImportAuthoritativeContentRequest": { "properties": { "content": { "type": "string", "title": "Content", "description": "The full content of the file" }, "source_url": { "type": "string", "title": "Source Url", "description": "URL where the file was found" }, "file_type": { "type": "string", "title": "File Type", "description": "Type of file: 'llms.txt' or 'context.txt'" }, "domain": { "type": "string", "title": "Domain", "description": "Domain the file belongs to" } }, "type": "object", "required": [ "content", "source_url", "file_type", "domain" ], "title": "ImportAuthoritativeContentRequest", "description": "Request model for importing llms.txt or context.txt as authoritative content." }, "ImportQueriesRequest": { "properties": { "site_url": { "type": "string", "title": "Site Url" }, "query_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Query Ids" }, "topic": { "type": "string", "title": "Topic", "description": "Topic to assign to imported prompts", "default": "GSC Import" }, "min_impressions": { "type": "integer", "minimum": 0.0, "title": "Min Impressions", "description": "Minimum impressions filter", "default": 50 }, "min_position": { "type": "number", "minimum": 1.0, "title": "Min Position", "description": "Minimum position filter", "default": 1.0 }, "max_position": { "type": "number", "maximum": 100.0, "title": "Max Position", "description": "Maximum position filter", "default": 20.0 }, "limit": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Limit", "description": "Max queries to import", "default": 25 } }, "type": "object", "required": [ "site_url" ], "title": "ImportQueriesRequest", "description": "Request to import queries as target prompts" }, "ImportResult": { "properties": { "imported": { "type": "integer", "title": "Imported" }, "skipped": { "type": "integer", "title": "Skipped" }, "topic": { "type": "string", "title": "Topic" }, "prompts": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Prompts" } }, "type": "object", "required": [ "imported", "skipped", "topic", "prompts" ], "title": "ImportResult", "description": "Result of import operation" }, "InsightResponse": { "properties": { "insight_type": { "type": "string", "title": "Insight Type" }, "priority": { "type": "string", "title": "Priority" }, "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "topic": { "type": "string", "title": "Topic" }, "data": { "additionalProperties": true, "type": "object", "title": "Data" }, "recommendations": { "items": { "type": "string" }, "type": "array", "title": "Recommendations" }, "created_at": { "type": "string", "title": "Created At" } }, "type": "object", "required": [ "insight_type", "priority", "title", "description", "topic", "data", "recommendations", "created_at" ], "title": "InsightResponse" }, "IntegrationResponse": { "properties": { "integration_type": { "type": "string", "title": "Integration Type" }, "name": { "type": "string", "title": "Name" }, "icon": { "type": "string", "title": "Icon" }, "category": { "type": "string", "title": "Category" }, "is_connected": { "type": "boolean", "title": "Is Connected" }, "connection_status": { "type": "string", "title": "Connection Status" }, "last_sync_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Sync At" }, "last_sync_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Sync Status" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Error" }, "error_count_24h": { "type": "integer", "title": "Error Count 24H" }, "items_synced_today": { "type": "integer", "title": "Items Synced Today" } }, "type": "object", "required": [ "integration_type", "name", "icon", "category", "is_connected", "connection_status", "last_sync_at", "last_sync_status", "last_error", "error_count_24h", "items_synced_today" ], "title": "IntegrationResponse" }, "InviteRequest": { "properties": { "email": { "type": "string", "title": "Email" }, "role": { "type": "string", "title": "Role", "default": "org:member" } }, "type": "object", "required": [ "email" ], "title": "InviteRequest" }, "JobPosting": { "properties": { "title": { "type": "string", "title": "Title" }, "department": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Department" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "type": "object", "required": [ "title" ], "title": "JobPosting", "description": "A detected job posting" }, "LandscapeNormalizeRequest": { "properties": { "data": { "additionalProperties": true, "type": "object", "title": "Data", "description": "CNCF landscape JSON payload" } }, "type": "object", "required": [ "data" ], "title": "LandscapeNormalizeRequest" }, "LeaderCreate": { "properties": { "name": { "type": "string", "title": "Name" }, "title": { "type": "string", "title": "Title" }, "linkedin_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Linkedin Url" }, "twitter_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Twitter Url" }, "github_username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Github Username" } }, "type": "object", "required": [ "name", "title" ], "title": "LeaderCreate" }, "LeaderMetricsUpdate": { "properties": { "linkedin_followers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Linkedin Followers" }, "linkedin_posts_30d": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Linkedin Posts 30D" }, "linkedin_avg_engagement": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Linkedin Avg Engagement" }, "linkedin_last_post_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Linkedin Last Post Date" }, "twitter_followers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Twitter Followers" }, "twitter_posts_30d": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Twitter Posts 30D" }, "github_commits_30d": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Github Commits 30D" }, "github_repos_active": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Github Repos Active" } }, "type": "object", "title": "LeaderMetricsUpdate", "description": "All fields are measurable/verifiable." }, "LinkedInCadence": { "properties": { "estimated_posts_per_month": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Estimated Posts Per Month" }, "follower_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Follower Count" }, "company_page_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Page Url" }, "last_activity_detected": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Activity Detected" }, "activity_level": { "type": "string", "title": "Activity Level", "default": "unknown" } }, "type": "object", "title": "LinkedInCadence", "description": "LinkedIn activity metrics" }, "MCPEventContext": { "properties": { "sessionId": { "type": "string", "title": "Sessionid" }, "mcpServerId": { "type": "string", "title": "Mcpserverid" }, "environment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" }, "timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp" } }, "type": "object", "required": [ "sessionId", "mcpServerId" ], "title": "MCPEventContext", "description": "Context from standard MCP telemetry format" }, "MCPEventData": { "properties": { "tool": { "type": "string", "title": "Tool" }, "action": { "type": "string", "title": "Action" }, "duration_ms": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration Ms", "default": 0 }, "result": { "type": "string", "title": "Result", "default": "success" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "tool", "action" ], "title": "MCPEventData", "description": "Event data from standard MCP telemetry format" }, "MCPTelemetryEvent": { "properties": { "eventType": { "type": "string", "title": "Eventtype" }, "eventData": { "$ref": "#/components/schemas/MCPEventData" }, "context": { "$ref": "#/components/schemas/MCPEventContext" } }, "type": "object", "required": [ "eventType", "eventData", "context" ], "title": "MCPTelemetryEvent", "description": "Single event in standard MCP telemetry format" }, "MCPTelemetryRequest": { "properties": { "events": { "items": { "$ref": "#/components/schemas/MCPTelemetryEvent" }, "type": "array", "title": "Events" }, "source_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Id" }, "source_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Name" }, "user_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Agent" } }, "type": "object", "required": [ "events" ], "title": "MCPTelemetryRequest", "description": "Standard MCP telemetry batch request.\n\nThis is the format used by instrumented MCP servers.\nAny MCP server can use this format to report telemetry." }, "MapOrganizationRequest": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "github_usernames": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Github Usernames" }, "target_titles": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Target Titles" } }, "type": "object", "required": [ "company_name" ], "title": "MapOrganizationRequest" }, "MarketObservabilityReport": { "properties": { "competitor_name": { "type": "string", "title": "Competitor Name" }, "domain": { "type": "string", "title": "Domain" }, "monitored_at": { "type": "string", "title": "Monitored At" }, "messaging_framework": { "anyOf": [ { "$ref": "#/components/schemas/ExtractedMessagingFramework" }, { "type": "null" } ] }, "agent_readiness": { "anyOf": [ { "$ref": "#/components/schemas/AgentReadinessScore" }, { "type": "null" } ] }, "market_signals": { "additionalProperties": true, "type": "object", "title": "Market Signals" }, "positioning_comparison": { "anyOf": [ { "$ref": "#/components/schemas/PositioningComparison" }, { "type": "null" } ] }, "strategic_recommendations": { "items": { "type": "string" }, "type": "array", "title": "Strategic Recommendations" } }, "type": "object", "required": [ "competitor_name", "domain", "monitored_at" ], "title": "MarketObservabilityReport", "description": "Complete marketing observability report" }, "MarketTrend": { "properties": { "trend": { "type": "string", "title": "Trend" }, "impact": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Impact" }, "timeframe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timeframe" } }, "type": "object", "required": [ "trend" ], "title": "MarketTrend", "description": "A market trend identified in the report" }, "MessagingData": { "properties": { "headline": { "type": "string", "title": "Headline" }, "tagline": { "type": "string", "title": "Tagline" }, "value_proposition": { "type": "string", "title": "Value Proposition" }, "key_differentiators": { "items": { "type": "string" }, "type": "array", "title": "Key Differentiators", "default": [] }, "target_audience": { "type": "string", "title": "Target Audience" } }, "type": "object", "required": [ "headline", "tagline", "value_proposition", "target_audience" ], "title": "MessagingData", "description": "Generated high-level messaging" }, "ModulatorCreate": { "properties": { "name": { "type": "string", "title": "Name", "description": "Friendly name for the modulator" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "What this modulator is for" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id" }, "product_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Product Id" }, "use_case_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Use Case Id" }, "funnel_stage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Funnel Stage" }, "intent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Intent" }, "voice_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Voice Id", "description": "Content voice ID for tone/style modulation" }, "source_types": { "items": { "type": "string" }, "type": "array", "title": "Source Types" }, "context_stream_ids": { "items": { "type": "string" }, "type": "array", "title": "Context Stream Ids" }, "token_budget": { "type": "integer", "title": "Token Budget", "default": 8192 }, "version_preference": { "type": "string", "title": "Version Preference", "default": "standard" }, "is_public": { "type": "boolean", "title": "Is Public", "default": false }, "allowed_users": { "items": { "type": "string" }, "type": "array", "title": "Allowed Users" } }, "type": "object", "required": [ "name" ], "title": "ModulatorCreate" }, "ModulatorUpdate": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id" }, "product_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Product Id" }, "use_case_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Use Case Id" }, "funnel_stage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Funnel Stage" }, "intent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Intent" }, "voice_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Voice Id" }, "source_types": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Source Types" }, "context_stream_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Context Stream Ids" }, "token_budget": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Token Budget" }, "version_preference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version Preference" }, "is_public": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Public" }, "allowed_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Users" } }, "type": "object", "title": "ModulatorUpdate" }, "MutationCreate": { "properties": { "entity_type": { "type": "string", "title": "Entity Type", "description": "Type: persona, product, use_case, etc." }, "entity_id": { "type": "string", "title": "Entity Id", "description": "ID of the mutated entity" }, "entity_uri": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Uri", "description": "Full URI for linked data" }, "field_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Field Path", "description": "JSON path to the changed field" }, "previous_value": { "anyOf": [ {}, { "type": "null" } ], "title": "Previous Value" }, "new_value": { "anyOf": [ {}, { "type": "null" } ], "title": "New Value" }, "mutation_type": { "type": "string", "title": "Mutation Type", "description": "create, update, delete, merge, split", "default": "update" }, "semantic_delta": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Semantic Delta", "description": "Human-readable description of what changed" }, "attestations": { "items": { "$ref": "#/components/schemas/AttestationCreate" }, "type": "array", "title": "Attestations" } }, "type": "object", "required": [ "entity_type", "entity_id" ], "title": "MutationCreate", "description": "Create a new context mutation with attestations" }, "NotionConfig": { "properties": { "sync_enabled": { "type": "boolean", "title": "Sync Enabled", "default": false }, "sync_frequency": { "type": "string", "title": "Sync Frequency", "default": "daily" }, "selected_databases": { "items": { "type": "string" }, "type": "array", "title": "Selected Databases", "default": [] } }, "type": "object", "title": "NotionConfig" }, "OTLPAttribute": { "properties": { "key": { "type": "string", "title": "Key" }, "value": { "additionalProperties": true, "type": "object", "title": "Value" } }, "type": "object", "required": [ "key", "value" ], "title": "OTLPAttribute", "description": "OTLP attribute value wrapper" }, "OTLPResource": { "properties": { "attributes": { "items": { "$ref": "#/components/schemas/OTLPAttribute" }, "type": "array", "title": "Attributes", "default": [] } }, "type": "object", "title": "OTLPResource", "description": "OTLP resource" }, "OTLPResourceSpans": { "properties": { "resource": { "anyOf": [ { "$ref": "#/components/schemas/OTLPResource" }, { "type": "null" } ] }, "scopeSpans": { "items": { "$ref": "#/components/schemas/OTLPScopeSpans" }, "type": "array", "title": "Scopespans", "default": [] } }, "type": "object", "title": "OTLPResourceSpans", "description": "OTLP resource with scope spans" }, "OTLPScope": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, "type": "object", "title": "OTLPScope", "description": "OTLP instrumentation scope" }, "OTLPScopeSpans": { "properties": { "scope": { "anyOf": [ { "$ref": "#/components/schemas/OTLPScope" }, { "type": "null" } ] }, "spans": { "items": { "$ref": "#/components/schemas/OTLPSpan" }, "type": "array", "title": "Spans", "default": [] } }, "type": "object", "title": "OTLPScopeSpans", "description": "OTLP scope with spans" }, "OTLPSpan": { "properties": { "traceId": { "type": "string", "title": "Traceid" }, "spanId": { "type": "string", "title": "Spanid" }, "parentSpanId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Parentspanid" }, "name": { "type": "string", "title": "Name" }, "kind": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Kind", "default": 1 }, "startTimeUnixNano": { "type": "string", "title": "Starttimeunixnano" }, "endTimeUnixNano": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endtimeunixnano" }, "attributes": { "items": { "$ref": "#/components/schemas/OTLPAttribute" }, "type": "array", "title": "Attributes", "default": [] }, "status": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Status" } }, "type": "object", "required": [ "traceId", "spanId", "name", "startTimeUnixNano" ], "title": "OTLPSpan", "description": "OTLP span" }, "OTLPTraceRequest": { "properties": { "resourceSpans": { "items": { "$ref": "#/components/schemas/OTLPResourceSpans" }, "type": "array", "title": "Resourcespans", "default": [] } }, "type": "object", "title": "OTLPTraceRequest", "description": "OTLP/JSON trace export request" }, "OrgKeyRequest": { "properties": { "api_key": { "type": "string", "title": "Api Key" } }, "type": "object", "required": [ "api_key" ], "title": "OrgKeyRequest" }, "OrgListResponse": { "properties": { "orgs": { "items": { "$ref": "#/components/schemas/OrgSummary" }, "type": "array", "title": "Orgs" }, "total": { "type": "integer", "title": "Total" } }, "type": "object", "required": [ "orgs", "total" ], "title": "OrgListResponse" }, "OrgSettingsRequest": { "properties": { "primary_domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Primary Domain", "description": "Primary domain for this organization (e.g., buf.build)" }, "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name", "description": "Display name for the company" } }, "type": "object", "title": "OrgSettingsRequest" }, "OrgSettingsResponse": { "properties": { "primary_domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Primary Domain" }, "company_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Name" } }, "type": "object", "title": "OrgSettingsResponse" }, "OrgSummary": { "properties": { "org_id": { "type": "string", "title": "Org Id" }, "org_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Name" }, "context_streams": { "type": "integer", "title": "Context Streams", "default": 0 }, "content_chunks": { "type": "integer", "title": "Content Chunks", "default": 0 }, "unified_signals": { "type": "integer", "title": "Unified Signals", "default": 0 }, "competitors": { "type": "integer", "title": "Competitors", "default": 0 }, "target_prompts": { "type": "integer", "title": "Target Prompts", "default": 0 }, "last_activity": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Activity" } }, "type": "object", "required": [ "org_id" ], "title": "OrgSummary" }, "PersonEnrichmentRequest": { "properties": { "identifier": { "type": "string", "title": "Identifier", "description": "Email or LinkedIn URL" }, "identifier_type": { "type": "string", "title": "Identifier Type", "description": "Type of identifier: email or linkedin", "default": "email" }, "enable_ai_insights": { "type": "boolean", "title": "Enable Ai Insights", "description": "Generate AI-powered insights", "default": true }, "detect_buying_signals": { "type": "boolean", "title": "Detect Buying Signals", "description": "Detect buying signals", "default": true }, "generate_outreach": { "type": "boolean", "title": "Generate Outreach", "description": "Generate personalized outreach strategy", "default": true } }, "type": "object", "required": [ "identifier" ], "title": "PersonEnrichmentRequest", "description": "Request model for person enrichment" }, "PersonalityType": { "type": "string", "enum": [ "the_architect", "human_first_closer", "default" ], "title": "PersonalityType", "description": "Available personality types for content generation." }, "PositioningComparison": { "properties": { "your_framework": { "additionalProperties": true, "type": "object", "title": "Your Framework" }, "competitor_framework": { "$ref": "#/components/schemas/ExtractedMessagingFramework" }, "comparison_insights": { "items": { "type": "string" }, "type": "array", "title": "Comparison Insights" }, "differentiation_opportunities": { "items": { "type": "string" }, "type": "array", "title": "Differentiation Opportunities" }, "messaging_gaps": { "items": { "type": "string" }, "type": "array", "title": "Messaging Gaps" }, "competitive_advantages": { "items": { "type": "string" }, "type": "array", "title": "Competitive Advantages" }, "recommended_counter_positioning": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Recommended Counter Positioning" } }, "type": "object", "required": [ "your_framework", "competitor_framework" ], "title": "PositioningComparison", "description": "Side-by-side positioning comparison" }, "ProcessContentRequest": { "properties": { "content_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Id", "description": "ID of existing content to process" }, "text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Text", "description": "Raw text to process" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url", "description": "Source URL" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "description": "Initial metadata" }, "chunking_configs": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Chunking Configs", "description": "Custom chunking configurations" }, "create_streams": { "type": "boolean", "title": "Create Streams", "description": "Auto-create suggested context streams", "default": true } }, "type": "object", "title": "ProcessContentRequest", "description": "Request for processing content with intelligence" }, "PromptGenerationRequest": { "properties": { "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain", "description": "Filter by specific domain" }, "platform": { "anyOf": [ { "$ref": "#/components/schemas/ContentPlatform" }, { "type": "null" } ], "description": "Target platform" }, "funnel_stage": { "anyOf": [ { "$ref": "#/components/schemas/FunnelStage" }, { "type": "null" } ], "description": "Target funnel stage for content" }, "max_prompts": { "type": "integer", "maximum": 10.0, "minimum": 1.0, "title": "Max Prompts", "description": "Maximum prompts to generate", "default": 1 }, "focus_areas": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Focus Areas", "description": "Specific areas to focus on" }, "persona_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Persona Id", "description": "Target Gypsum persona ID" }, "include_messaging_framework": { "type": "boolean", "title": "Include Messaging Framework", "description": "Include messaging framework data", "default": true } }, "type": "object", "title": "PromptGenerationRequest", "description": "Request for generating prompts with Gypsum integration" }, "PromptGenerationResponse": { "properties": { "prompts": { "items": { "$ref": "#/components/schemas/GeneratedPrompt" }, "type": "array", "title": "Prompts", "description": "Generated prompt suggestions" }, "content_summary": { "additionalProperties": true, "type": "object", "title": "Content Summary", "description": "Summary of analyzed content" }, "persona_context": { "additionalProperties": true, "type": "object", "title": "Persona Context", "description": "Gypsum persona context" }, "messaging_insights": { "additionalProperties": true, "type": "object", "title": "Messaging Insights", "description": "Messaging framework insights" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "description": "Generation metadata" } }, "type": "object", "required": [ "prompts", "content_summary", "persona_context", "messaging_insights", "metadata" ], "title": "PromptGenerationResponse", "description": "Response containing generated prompts with Gypsum insights" }, "PromptResponse": { "properties": { "prompts": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Prompts" }, "generated_at": { "type": "string", "title": "Generated At" } }, "type": "object", "required": [ "prompts", "generated_at" ], "title": "PromptResponse", "description": "Response with generated prompts." }, "ProposePersonasRequest": { "properties": { "company_name": { "type": "string", "title": "Company Name" }, "products": { "items": { "type": "string" }, "type": "array", "title": "Products" }, "what_you_do": { "items": { "type": "string" }, "type": "array", "title": "What You Do", "default": [] }, "tagline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tagline" } }, "type": "object", "required": [ "company_name", "products" ], "title": "ProposePersonasRequest", "description": "Request to propose personas based on company/product context" }, "ProposePersonasResponse": { "properties": { "personas": { "items": { "$ref": "#/components/schemas/ProposedPersona" }, "type": "array", "title": "Personas" }, "reasoning": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning" } }, "type": "object", "required": [ "personas" ], "title": "ProposePersonasResponse", "description": "Response with proposed personas" }, "ProposedPersona": { "properties": { "name": { "type": "string", "title": "Name" }, "role": { "type": "string", "title": "Role" }, "company_context": { "type": "string", "title": "Company Context" }, "pain_points": { "items": { "type": "string" }, "type": "array", "title": "Pain Points" }, "product_benefits": { "items": { "type": "string" }, "type": "array", "title": "Product Benefits" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote" } }, "type": "object", "required": [ "name", "role", "company_context", "pain_points", "product_benefits" ], "title": "ProposedPersona", "description": "A proposed persona with their perspective" }, "ProspectingRequest": { "properties": { "job_titles": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Job Titles", "description": "Target job titles" }, "seniority_levels": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Seniority Levels", "description": "Target seniority levels" }, "company_sizes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Company Sizes", "description": "Company size ranges" }, "industries": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Industries", "description": "Target industries" }, "locations": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Locations", "description": "Target locations" }, "technologies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Technologies", "description": "Companies using these technologies" }, "limit": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Limit", "description": "Maximum prospects to return", "default": 10 }, "enable_ai_scoring": { "type": "boolean", "title": "Enable Ai Scoring", "description": "Score and rank prospects with AI", "default": true } }, "type": "object", "title": "ProspectingRequest", "description": "Request model for AI prospecting" }, "ProvenanceCreate": { "properties": { "source_entity_type": { "type": "string", "title": "Source Entity Type" }, "source_entity_id": { "type": "string", "title": "Source Entity Id" }, "source_entity_uri": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Entity Uri" }, "source_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Version" }, "derived_entity_type": { "type": "string", "title": "Derived Entity Type" }, "derived_entity_id": { "type": "string", "title": "Derived Entity Id" }, "derived_entity_uri": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Derived Entity Uri" }, "relationship_type": { "type": "string", "title": "Relationship Type", "description": "derived, informed, supersedes", "default": "derived" }, "transformation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transformation", "description": "How the derivation was performed" }, "transformation_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transformation Agent", "description": "Who/what performed the transformation" } }, "type": "object", "required": [ "source_entity_type", "source_entity_id", "derived_entity_type", "derived_entity_id" ], "title": "ProvenanceCreate", "description": "Create a provenance relationship between entities" }, "PublishRequest": { "properties": { "stream_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Stream Ids" }, "include_messaging": { "type": "boolean", "title": "Include Messaging", "default": true }, "include_personas": { "type": "boolean", "title": "Include Personas", "default": true }, "include_competitive": { "type": "boolean", "title": "Include Competitive", "default": true } }, "type": "object", "title": "PublishRequest", "description": "Request to publish knowledge to streaming topics" }, "PushChunksRequest": { "properties": { "stream_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Stream Name", "default": "Messaging Framework" }, "limit": { "type": "integer", "title": "Limit", "default": 50 } }, "type": "object", "title": "PushChunksRequest" }, "QualityProfileResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "content_type": { "type": "string", "title": "Content Type" }, "gold_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Gold Content Ids" }, "baseline_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Baseline Content Ids" }, "quality_markers": { "additionalProperties": true, "type": "object", "title": "Quality Markers" }, "baseline_gaps": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Baseline Gaps" }, "excellence_patterns": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Excellence Patterns" }, "scoring_rubric": { "additionalProperties": true, "type": "object", "title": "Scoring Rubric" }, "anti_patterns": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Anti Patterns" }, "training_confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Training Confidence" }, "status": { "type": "string", "title": "Status" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "last_trained_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Trained At" } }, "type": "object", "required": [ "id", "org_id", "content_type", "gold_content_ids", "baseline_content_ids", "quality_markers", "baseline_gaps", "excellence_patterns", "scoring_rubric", "anti_patterns", "training_confidence", "status", "created_at", "last_trained_at" ], "title": "QualityProfileResponse", "description": "Quality profile response." }, "RAGProcessRequest": { "properties": { "chunk_size": { "type": "integer", "maximum": 2048.0, "minimum": 128.0, "title": "Chunk Size", "description": "Characters per chunk", "default": 512 }, "chunk_overlap": { "type": "integer", "maximum": 512.0, "minimum": 0.0, "title": "Chunk Overlap", "description": "Overlap between chunks", "default": 50 }, "min_chunk_size": { "type": "integer", "maximum": 512.0, "minimum": 50.0, "title": "Min Chunk Size", "description": "Minimum chunk size", "default": 100 }, "embedding_model": { "type": "string", "title": "Embedding Model", "description": "OpenAI embedding model", "default": "text-embedding-3-small" } }, "type": "object", "title": "RAGProcessRequest", "description": "Request model for RAG processing." }, "RAGProcessResponse": { "properties": { "task_id": { "type": "string", "title": "Task Id" }, "status": { "type": "string", "title": "Status" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "task_id", "status", "message" ], "title": "RAGProcessResponse", "description": "Response model for RAG processing." }, "RankingOverrideRequest": { "properties": { "chunk_id": { "type": "string", "title": "Chunk Id", "description": "Chunk to override" }, "boost_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Boost Score", "description": "Boost score (positive or negative)" }, "pin_position": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Pin Position", "description": "Pin to position" }, "exclude": { "type": "boolean", "title": "Exclude", "description": "Exclude from results", "default": false }, "reason": { "type": "string", "title": "Reason", "description": "Reason for override" }, "context_stream_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context Stream Id", "description": "Apply to specific stream" } }, "type": "object", "required": [ "chunk_id", "reason" ], "title": "RankingOverrideRequest", "description": "Request for ranking override" }, "RecommendationResponse": { "properties": { "type": { "type": "string", "title": "Type" }, "priority": { "type": "string", "title": "Priority" }, "title": { "type": "string", "title": "Title" }, "reason": { "type": "string", "title": "Reason" }, "suggested_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Suggested Format" }, "target_keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Target Keywords" }, "suggested_prompt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Suggested Prompt" }, "suggested_actions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Suggested Actions" } }, "type": "object", "required": [ "type", "priority", "title", "reason" ], "title": "RecommendationResponse" }, "RedditMention": { "properties": { "subreddit": { "type": "string", "title": "Subreddit" }, "title": { "type": "string", "title": "Title" }, "url": { "type": "string", "title": "Url" }, "score": { "type": "integer", "title": "Score" }, "num_comments": { "type": "integer", "title": "Num Comments" }, "created_utc": { "type": "number", "title": "Created Utc" }, "sentiment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sentiment" }, "snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Snippet" } }, "type": "object", "required": [ "subreddit", "title", "url", "score", "num_comments", "created_utc" ], "title": "RedditMention", "description": "A Reddit mention of a competitor" }, "RefreshStaleResponse": { "properties": { "refreshed_count": { "type": "integer", "title": "Refreshed Count" }, "refreshed_battlecards": { "items": { "type": "string" }, "type": "array", "title": "Refreshed Battlecards" }, "errors": { "items": { "type": "string" }, "type": "array", "title": "Errors", "default": [] } }, "type": "object", "required": [ "refreshed_count", "refreshed_battlecards" ], "title": "RefreshStaleResponse", "description": "Response from refreshing stale battlecards." }, "RegisterAgentRequest": { "properties": { "agent_type": { "type": "string", "title": "Agent Type" }, "agent_name": { "type": "string", "title": "Agent Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "config": { "additionalProperties": true, "type": "object", "title": "Config" }, "schedule_interval_minutes": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Schedule Interval Minutes" }, "schedule_cron": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schedule Cron" } }, "type": "object", "required": [ "agent_type", "agent_name" ], "title": "RegisterAgentRequest" }, "RerankRequest": { "properties": { "chunk_ids": { "items": { "type": "string" }, "type": "array", "title": "Chunk Ids", "description": "Chunks to rerank" }, "ranking_criteria": { "additionalProperties": true, "type": "object", "title": "Ranking Criteria", "description": "Ranking criteria" }, "context_stream_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context Stream Id", "description": "Optional stream context" } }, "type": "object", "required": [ "chunk_ids", "ranking_criteria" ], "title": "RerankRequest", "description": "Request for reranking chunks" }, "ResolveBatchRequest": { "properties": { "items": { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array", "title": "Items", "description": "List of items to resolve" }, "text_key": { "type": "string", "title": "Text Key", "default": "title" }, "source_key": { "type": "string", "title": "Source Key", "default": "source" } }, "type": "object", "required": [ "items" ], "title": "ResolveBatchRequest" }, "ResolveRequest": { "properties": { "text": { "type": "string", "minLength": 1, "title": "Text", "description": "Text containing company mention" }, "source": { "type": "string", "title": "Source", "description": "Source channel (youtube, news, etc.)", "default": "unknown" }, "require_tech_context": { "type": "boolean", "title": "Require Tech Context", "default": true } }, "type": "object", "required": [ "text" ], "title": "ResolveRequest" }, "ResumeRequest": { "properties": { "kind": { "type": "string", "title": "Kind", "default": "confirm_personas" }, "selection": { "items": { "type": "string" }, "type": "array", "title": "Selection", "default": [] } }, "type": "object", "title": "ResumeRequest" }, "ReviewVideoScriptRequest": { "properties": { "status": { "type": "string", "title": "Status", "description": "Review status: approved, rejected, needs_revision" }, "review_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Notes", "description": "Review feedback" }, "rating": { "anyOf": [ { "type": "number", "maximum": 5.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Rating", "description": "Quality rating 1-5" } }, "type": "object", "required": [ "status" ], "title": "ReviewVideoScriptRequest", "description": "Request to review a video script" }, "RulesExport": { "properties": { "rules_count": { "type": "integer", "title": "Rules Count" }, "legal_rules": { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array", "title": "Legal Rules" }, "style_rules": { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array", "title": "Style Rules" }, "banned_terms": { "items": { "type": "string" }, "type": "array", "title": "Banned Terms" }, "system_prompt_section": { "type": "string", "title": "System Prompt Section" } }, "type": "object", "required": [ "rules_count", "legal_rules", "style_rules", "banned_terms", "system_prompt_section" ], "title": "RulesExport", "description": "Export format for system prompt injection" }, "RunRequest": { "properties": { "mode": { "type": "string", "title": "Mode", "default": "recommended" } }, "type": "object", "title": "RunRequest" }, "SaveContentTopicRequest": { "properties": { "prompt": { "type": "string", "title": "Prompt", "description": "The prompt/query that revealed the gap" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category", "description": "Prompt category" }, "source": { "type": "string", "title": "Source", "description": "Source: manual, signal, geo_visibility, competitor_gap", "default": "manual" }, "visibility_score": { "type": "number", "title": "Visibility Score", "default": 0.0 }, "brand_mentioned": { "type": "boolean", "title": "Brand Mentioned", "default": false }, "competitors_mentioned": { "items": { "type": "string" }, "type": "array", "title": "Competitors Mentioned", "default": [] }, "ai_response_summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ai Response Summary", "description": "Summary of AI response" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "Additional notes" }, "priority": { "type": "string", "title": "Priority", "description": "Priority: high, medium, low", "default": "medium" } }, "type": "object", "required": [ "prompt" ], "title": "SaveContentTopicRequest", "description": "Request to save a visibility gap as a content topic." }, "SaveLandscapeAnalysisRequest": { "properties": { "reasoning_text": { "type": "string", "title": "Reasoning Text", "description": "The full AI reasoning/analysis text" }, "competitors_analyzed": { "items": { "type": "string" }, "type": "array", "title": "Competitors Analyzed", "description": "Names of competitors in the analysis", "default": [] }, "additional_context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Additional Context", "description": "User-provided context" } }, "type": "object", "required": [ "reasoning_text" ], "title": "SaveLandscapeAnalysisRequest", "description": "Request to save a competitive landscape analysis." }, "SaveSessionRequest": { "properties": { "platform": { "type": "string", "title": "Platform", "description": "Platform: chatgpt, claude, or gemini" }, "cookies": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Cookies", "description": "Browser cookies" } }, "type": "object", "required": [ "platform", "cookies" ], "title": "SaveSessionRequest", "description": "Request to save session cookies for an AI platform." }, "SaveStrategyAnalysisRequest": { "properties": { "reasoning_text": { "type": "string", "title": "Reasoning Text", "description": "The full AI strategy analysis text" } }, "type": "object", "required": [ "reasoning_text" ], "title": "SaveStrategyAnalysisRequest", "description": "Request to save a competitor strategy analysis." }, "SaveVideoScriptRequest": { "properties": { "script_response": { "$ref": "#/components/schemas/VideoScriptResponse" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Custom title for the script" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "User notes about the script" } }, "type": "object", "required": [ "script_response" ], "title": "SaveVideoScriptRequest", "description": "Request to save a video script" }, "SavedVideoScriptDetail": { "properties": { "id": { "type": "string", "title": "Id" }, "script_id": { "type": "string", "title": "Script Id" }, "title": { "type": "string", "title": "Title" }, "company_name": { "type": "string", "title": "Company Name" }, "company_domain": { "type": "string", "title": "Company Domain" }, "script_text": { "type": "string", "title": "Script Text" }, "original_script": { "type": "string", "title": "Original Script" }, "total_duration": { "type": "integer", "title": "Total Duration" }, "funnel_stage": { "type": "string", "title": "Funnel Stage" }, "tone": { "type": "string", "title": "Tone" }, "status": { "type": "string", "title": "Status" }, "review_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Notes" }, "user_rating": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "User Rating" }, "user_feedback": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Feedback" }, "content_sources": { "items": { "type": "string" }, "type": "array", "title": "Content Sources" }, "video_generated": { "type": "boolean", "title": "Video Generated" }, "video_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Video Id" }, "created_at": { "type": "string", "title": "Created At" }, "updated_at": { "type": "string", "title": "Updated At" }, "last_edited_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Edited At" } }, "type": "object", "required": [ "id", "script_id", "title", "company_name", "company_domain", "script_text", "original_script", "total_duration", "funnel_stage", "tone", "status", "review_notes", "user_rating", "user_feedback", "content_sources", "video_generated", "video_id", "created_at", "updated_at", "last_edited_at" ], "title": "SavedVideoScriptDetail", "description": "Detailed view of a saved video script" }, "ScanJobResponse": { "properties": { "job_id": { "type": "string", "title": "Job Id" }, "status": { "type": "string", "title": "Status" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "job_id", "status", "message" ], "title": "ScanJobResponse", "description": "Response when starting an async scan job." }, "ScoreContentRequest": { "properties": { "content": { "type": "string", "title": "Content", "description": "Content text to score" }, "content_type": { "type": "string", "title": "Content Type", "description": "Type of content", "default": "blog" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title", "description": "Title for context" } }, "type": "object", "required": [ "content" ], "title": "ScoreContentRequest", "description": "Request to score content against the quality model." }, "SearchContentRequest": { "properties": { "query": { "type": "string", "title": "Query" }, "limit": { "type": "integer", "title": "Limit", "default": 20 } }, "type": "object", "required": [ "query" ], "title": "SearchContentRequest" }, "SearchPeopleRequest": { "properties": { "query": { "type": "string", "title": "Query" }, "company": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company" }, "limit": { "type": "integer", "title": "Limit", "default": 10 } }, "type": "object", "required": [ "query" ], "title": "SearchPeopleRequest" }, "SearchRequest": { "properties": { "query": { "type": "string", "title": "Query" }, "top_k": { "type": "integer", "title": "Top K", "default": 5 }, "context_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context Type" } }, "type": "object", "required": [ "query" ], "title": "SearchRequest" }, "SessionCaptureRequest": { "properties": { "cookies": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Cookies" }, "url": { "type": "string", "title": "Url" }, "userAgent": { "type": "string", "title": "Useragent" }, "timestamp": { "type": "integer", "title": "Timestamp" } }, "type": "object", "required": [ "cookies", "url", "userAgent", "timestamp" ], "title": "SessionCaptureRequest" }, "SignalSyncRequest": { "properties": { "signal_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Signal Ids", "description": "Specific signal IDs to sync" }, "start_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Start Date", "description": "Sync signals after this date" }, "end_date": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Date", "description": "Sync signals before this date" }, "platforms": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Platforms", "description": "Filter by signal platforms" } }, "type": "object", "title": "SignalSyncRequest", "description": "Signal sync request" }, "SimpleOnboardingRequest": { "properties": { "domain": { "type": "string", "title": "Domain" } }, "type": "object", "required": [ "domain" ], "title": "SimpleOnboardingRequest", "description": "Start simplified onboarding with just a domain" }, "SimpleOnboardingResponse": { "properties": { "session_id": { "type": "string", "title": "Session Id" }, "discovery": { "$ref": "#/components/schemas/DiscoveryData" }, "enrichment": { "anyOf": [ { "$ref": "#/components/schemas/EnrichmentData" }, { "type": "null" } ] }, "messaging": { "$ref": "#/components/schemas/MessagingData" }, "competitors": { "items": { "$ref": "#/components/schemas/CompetitorSuggestion" }, "type": "array", "title": "Competitors" } }, "type": "object", "required": [ "session_id", "discovery", "messaging", "competitors" ], "title": "SimpleOnboardingResponse", "description": "Complete response from simple onboarding discovery" }, "SinglePromptTestRequest": { "properties": { "prompt": { "type": "string", "title": "Prompt", "description": "The prompt to test" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models", "description": "Models to test" }, "brand_names": { "items": { "type": "string" }, "type": "array", "title": "Brand Names", "description": "Brand names to look for" } }, "type": "object", "required": [ "prompt", "brand_names" ], "title": "SinglePromptTestRequest", "description": "Request to test a single prompt." }, "SourceChunk": { "properties": { "chunk_id": { "type": "string", "title": "Chunk Id", "description": "ID of the source chunk" }, "text": { "type": "string", "title": "Text", "description": "Snippet of the chunk text" }, "similarity": { "type": "number", "title": "Similarity", "description": "Similarity score" }, "content_id": { "type": "string", "title": "Content Id", "description": "ID of the parent content" } }, "type": "object", "required": [ "chunk_id", "text", "similarity", "content_id" ], "title": "SourceChunk", "description": "Source chunk information for generated content." }, "StartScanRequest": { "properties": { "prompts": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Prompts", "description": "Prompts to test" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "description": "Models to test", "default": [ "claude", "gemini", "perplexity" ] }, "brand_names": { "items": { "type": "string" }, "type": "array", "title": "Brand Names", "description": "Brand names to look for" } }, "type": "object", "required": [ "prompts", "brand_names" ], "title": "StartScanRequest", "description": "Request to start an async visibility scan." }, "StreamingConfigRequest": { "properties": { "broker_url": { "type": "string", "title": "Broker Url", "description": "Kafka broker URL (e.g., cluster.redpanda.cloud:9092)" }, "sasl_username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sasl Username", "description": "SASL username for authentication" }, "sasl_password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sasl Password", "description": "SASL password for authentication" }, "schema_registry_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Schema Registry Url", "description": "Schema Registry URL" }, "enabled": { "type": "boolean", "title": "Enabled", "description": "Whether the integration is active", "default": true }, "out_enabled": { "type": "boolean", "title": "Out Enabled", "description": "Enable publishing knowledge to topics", "default": true }, "out_topic_prefix": { "type": "string", "title": "Out Topic Prefix", "description": "Topic prefix for outbound knowledge", "default": "voyant.knowledge" }, "out_include_messaging": { "type": "boolean", "title": "Out Include Messaging", "description": "Include messaging framework (legacy)", "default": true }, "out_include_personas": { "type": "boolean", "title": "Out Include Personas", "description": "Include personas (legacy)", "default": true }, "out_include_competitive": { "type": "boolean", "title": "Out Include Competitive", "description": "Include competitive intelligence (legacy)", "default": true }, "out_streams": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Out Streams", "description": "Stream IDs to publish (overrides legacy flags if set)" }, "in_enabled": { "type": "boolean", "title": "In Enabled", "description": "Enable ingesting signals from topics", "default": true }, "in_topics": { "items": { "type": "string" }, "type": "array", "title": "In Topics", "description": "Topic patterns to subscribe to" }, "in_consumer_group": { "type": "string", "title": "In Consumer Group", "description": "Consumer group ID", "default": "voyant-knowledge-ingestion" }, "in_stream_mappings": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "In Stream Mappings", "description": "Map topic patterns to stream IDs (e.g., {'events.pricing': 'pricing-rules'})" } }, "type": "object", "required": [ "broker_url" ], "title": "StreamingConfigRequest", "description": "Configuration for Kafka-compatible streaming connection (per org).\nWorks with Redpanda, Confluent, MSK, or any Kafka-protocol broker." }, "SubscribeRequest": { "properties": { "topics": { "items": { "type": "string" }, "type": "array", "title": "Topics" }, "consumer_group": { "type": "string", "title": "Consumer Group", "default": "voyant-knowledge-ingestion" } }, "type": "object", "required": [ "topics" ], "title": "SubscribeRequest", "description": "Request to subscribe to topics for signal ingestion" }, "SyncResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "message": { "type": "string", "title": "Message" }, "documents_synced": { "type": "integer", "title": "Documents Synced", "default": 0 }, "details": { "additionalProperties": true, "type": "object", "title": "Details", "default": {} } }, "type": "object", "required": [ "success", "message" ], "title": "SyncResponse" }, "TargetPromptCreate": { "properties": { "prompt_text": { "type": "string", "minLength": 5, "title": "Prompt Text" }, "topic": { "type": "string", "minLength": 1, "title": "Topic" }, "category": { "type": "string", "title": "Category", "default": "category_based" }, "priority": { "type": "integer", "maximum": 10.0, "minimum": 1.0, "title": "Priority", "default": 5 }, "intent": { "type": "string", "title": "Intent", "default": "informational" }, "target_keywords": { "items": { "type": "string" }, "type": "array", "title": "Target Keywords" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "prompt_text", "topic" ], "title": "TargetPromptCreate", "description": "Create a new target prompt." }, "TargetPromptResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "prompt_text": { "type": "string", "title": "Prompt Text" }, "topic": { "type": "string", "title": "Topic" }, "category": { "type": "string", "title": "Category" }, "status": { "type": "string", "title": "Status" }, "priority": { "type": "integer", "title": "Priority" }, "visibility_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Visibility Score" }, "last_tested_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Tested At" }, "intent": { "type": "string", "title": "Intent" }, "target_keywords": { "items": { "type": "string" }, "type": "array", "title": "Target Keywords" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "created_at": { "type": "string", "title": "Created At" }, "continuous_testing": { "type": "boolean", "title": "Continuous Testing", "default": false }, "test_frequency_minutes": { "type": "integer", "title": "Test Frequency Minutes", "default": 60 } }, "type": "object", "required": [ "id", "prompt_text", "topic", "category", "status", "priority", "visibility_score", "last_tested_at", "intent", "target_keywords", "notes", "created_at" ], "title": "TargetPromptResponse", "description": "Response for a target prompt." }, "TargetPromptUpdate": { "properties": { "prompt_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prompt Text" }, "topic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Topic" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "priority": { "anyOf": [ { "type": "integer", "maximum": 10.0, "minimum": 1.0 }, { "type": "null" } ], "title": "Priority" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "title": "TargetPromptUpdate", "description": "Update a target prompt." }, "TelemetryStatsResponse": { "properties": { "visitors": { "type": "integer", "title": "Visitors" }, "sessions": { "type": "integer", "title": "Sessions" }, "events": { "type": "integer", "title": "Events" }, "page_views": { "type": "integer", "title": "Page Views" }, "avg_session_duration_seconds": { "type": "number", "title": "Avg Session Duration Seconds" }, "enriched_visitors": { "type": "integer", "title": "Enriched Visitors" }, "enrichment_rate": { "type": "number", "title": "Enrichment Rate" }, "since": { "type": "string", "title": "Since" } }, "type": "object", "required": [ "visitors", "sessions", "events", "page_views", "avg_session_duration_seconds", "enriched_visitors", "enrichment_rate", "since" ], "title": "TelemetryStatsResponse", "description": "Summary statistics response." }, "TemplateCreateRequest": { "properties": { "name": { "type": "string", "title": "Name", "description": "Template name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Template description" }, "template_text": { "type": "string", "title": "Template Text", "description": "Template content" }, "platform": { "type": "string", "title": "Platform", "description": "Platform (email, twitter, linkedin, etc.)" }, "tone": { "type": "string", "title": "Tone", "description": "Tone (professional, casual, friendly, etc.)" }, "purpose": { "type": "string", "title": "Purpose", "description": "Purpose (outreach, follow_up, etc.)" }, "parameters": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Parameters", "description": "Template parameters", "default": [] } }, "type": "object", "required": [ "name", "template_text", "platform", "tone", "purpose" ], "title": "TemplateCreateRequest", "description": "Request model for creating templates" }, "TemplateResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "template_text": { "type": "string", "title": "Template Text" }, "platform": { "type": "string", "title": "Platform" }, "tone": { "type": "string", "title": "Tone" }, "purpose": { "type": "string", "title": "Purpose" }, "parameters": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Parameters" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" } }, "type": "object", "required": [ "id", "name", "description", "template_text", "platform", "tone", "purpose", "parameters", "created_at", "created_by" ], "title": "TemplateResponse", "description": "Response model for templates" }, "TemplateSearchRequest": { "properties": { "platform": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Platform" }, "tone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tone" }, "purpose": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purpose" }, "limit": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Limit", "default": 10 }, "offset": { "type": "integer", "minimum": 0.0, "title": "Offset", "default": 0 } }, "type": "object", "title": "TemplateSearchRequest", "description": "Request model for searching templates" }, "TerminologyRule": { "properties": { "incorrect_term": { "type": "string", "title": "Incorrect Term", "description": "The incorrect term or pattern to match" }, "correct_term": { "type": "string", "title": "Correct Term", "description": "The correct term to use instead" }, "category": { "type": "string", "title": "Category", "description": "Category: legal, style, or banned", "default": "style" }, "case_sensitive": { "type": "boolean", "title": "Case Sensitive", "description": "Whether matching is case-sensitive", "default": false }, "enforcement": { "type": "string", "title": "Enforcement", "description": "Enforcement level: block or warn", "default": "block" }, "use_regex": { "type": "boolean", "title": "Use Regex", "description": "Whether incorrect_term is a regex pattern", "default": false }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "Additional notes about this rule" }, "is_active": { "type": "boolean", "title": "Is Active", "description": "Whether this rule is active", "default": true }, "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "incorrect_term", "correct_term", "id", "org_id", "created_at", "updated_at" ], "title": "TerminologyRule" }, "TerminologyRuleCreate": { "properties": { "incorrect_term": { "type": "string", "title": "Incorrect Term", "description": "The incorrect term or pattern to match" }, "correct_term": { "type": "string", "title": "Correct Term", "description": "The correct term to use instead" }, "category": { "type": "string", "title": "Category", "description": "Category: legal, style, or banned", "default": "style" }, "case_sensitive": { "type": "boolean", "title": "Case Sensitive", "description": "Whether matching is case-sensitive", "default": false }, "enforcement": { "type": "string", "title": "Enforcement", "description": "Enforcement level: block or warn", "default": "block" }, "use_regex": { "type": "boolean", "title": "Use Regex", "description": "Whether incorrect_term is a regex pattern", "default": false }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes", "description": "Additional notes about this rule" }, "is_active": { "type": "boolean", "title": "Is Active", "description": "Whether this rule is active", "default": true } }, "type": "object", "required": [ "incorrect_term", "correct_term" ], "title": "TerminologyRuleCreate" }, "TerminologyRuleUpdate": { "properties": { "incorrect_term": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Incorrect Term" }, "correct_term": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correct Term" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "case_sensitive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Case Sensitive" }, "enforcement": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Enforcement" }, "use_regex": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use Regex" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } }, "type": "object", "title": "TerminologyRuleUpdate" }, "TestPromptsRequest": { "properties": { "prompts": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Prompts", "description": "Prompts to test" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models", "description": "Models to test (chatgpt, claude, gemini, grok)" }, "brand_names": { "items": { "type": "string" }, "type": "array", "title": "Brand Names", "description": "Brand names to look for in responses" }, "save_to_library": { "type": "boolean", "title": "Save To Library", "description": "Save prompts to the topic library after scanning", "default": false }, "default_topic": { "type": "string", "title": "Default Topic", "description": "Topic name for saved prompts", "default": "Scanned" } }, "type": "object", "required": [ "prompts", "brand_names" ], "title": "TestPromptsRequest", "description": "Request to test prompts for visibility." }, "TestSearchRequest": { "properties": { "query": { "type": "string", "title": "Query" }, "maxResults": { "type": "integer", "title": "Maxresults", "default": 3 } }, "type": "object", "required": [ "query" ], "title": "TestSearchRequest" }, "TopicCreate": { "properties": { "name": { "type": "string", "minLength": 1, "title": "Name" }, "color": { "type": "string", "title": "Color", "default": "#6366f1" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" } }, "type": "object", "required": [ "name" ], "title": "TopicCreate", "description": "Create a new topic." }, "TopicResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "color": { "type": "string", "title": "Color" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "prompt_count": { "type": "integer", "title": "Prompt Count" } }, "type": "object", "required": [ "id", "name", "color", "description", "prompt_count" ], "title": "TopicResponse", "description": "Response for a topic." }, "TrackRequest": { "properties": { "org_id": { "type": "string", "title": "Org Id", "description": "Organization ID" }, "fingerprint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fingerprint" }, "session_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Id" }, "events": { "items": { "$ref": "#/components/schemas/EventPayload" }, "type": "array", "maxItems": 50, "minItems": 1, "title": "Events" }, "landing_page": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Landing Page" }, "referrer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Referrer" }, "utm_source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Utm Source" }, "utm_medium": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Utm Medium" }, "utm_campaign": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Utm Campaign" }, "utm_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Utm Content" }, "utm_term": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Utm Term" } }, "type": "object", "required": [ "org_id", "events" ], "title": "TrackRequest", "description": "Request body for tracking events." }, "TrackResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "visitor_id": { "type": "string", "title": "Visitor Id" }, "session_id": { "type": "string", "title": "Session Id" }, "events_tracked": { "type": "integer", "title": "Events Tracked" } }, "type": "object", "required": [ "success", "visitor_id", "session_id", "events_tracked" ], "title": "TrackResponse", "description": "Response from tracking endpoint." }, "TrackingEvent": { "properties": { "site_id": { "type": "string", "title": "Site Id" }, "visitor_id": { "type": "string", "title": "Visitor Id" }, "session_id": { "type": "string", "title": "Session Id" }, "event_type": { "type": "string", "title": "Event Type" }, "event_data": { "additionalProperties": true, "type": "object", "title": "Event Data", "default": {} }, "timestamp": { "type": "string", "format": "date-time", "title": "Timestamp" }, "page": { "additionalProperties": true, "type": "object", "title": "Page" }, "browser": { "additionalProperties": true, "type": "object", "title": "Browser" }, "attribution": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Attribution" } }, "type": "object", "required": [ "site_id", "visitor_id", "session_id", "event_type", "timestamp", "page", "browser" ], "title": "TrackingEvent", "description": "Tracking event from website" }, "TrainQualityRequest": { "properties": { "gold_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Gold Content Ids", "description": "IDs of best/gold content samples" }, "baseline_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Baseline Content Ids", "description": "IDs of average/baseline content samples" }, "content_type": { "type": "string", "title": "Content Type", "description": "Type of content: blog, whitepaper, docs", "default": "blog" } }, "type": "object", "required": [ "gold_content_ids", "baseline_content_ids" ], "title": "TrainQualityRequest", "description": "Request to train a quality model from gold vs baseline content." }, "TrainingDataCreate": { "properties": { "source_type": { "type": "string", "title": "Source Type" }, "content": { "type": "string", "title": "Content" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags", "default": [] }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "default": {} } }, "type": "object", "required": [ "source_type", "content" ], "title": "TrainingDataCreate" }, "TrainingDataResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "source_type": { "type": "string", "title": "Source Type" }, "title": { "type": "string", "title": "Title" }, "source": { "type": "string", "title": "Source" }, "status": { "type": "string", "title": "Status" }, "content_preview": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Preview" }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "added_at": { "type": "string", "format": "date-time", "title": "Added At" }, "processed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Processed At" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "id", "source_type", "title", "source", "status", "tags", "added_at", "metadata" ], "title": "TrainingDataResponse" }, "TrainingRequest": { "properties": { "content": { "type": "string", "title": "Content" }, "feedback": { "type": "string", "title": "Feedback" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type", "default": "general" }, "conversation_history": { "anyOf": [ { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Conversation History" } }, "type": "object", "required": [ "content", "feedback" ], "title": "TrainingRequest" }, "TrainingSession": { "properties": { "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "content_type": { "type": "string", "title": "Content Type" }, "content_key": { "type": "string", "title": "Content Key" }, "original_content": { "type": "string", "title": "Original Content" }, "final_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Final Content" }, "conversation": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Conversation" }, "rules_detected": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Rules Detected" }, "rules_applied": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Rules Applied" }, "content_accepted": { "type": "boolean", "title": "Content Accepted" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "started_at": { "type": "string", "format": "date-time", "title": "Started At" }, "completed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Completed At" }, "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "id", "org_id", "content_type", "content_key", "original_content", "final_content", "conversation", "rules_detected", "rules_applied", "content_accepted", "created_by", "started_at", "completed_at", "status" ], "title": "TrainingSession" }, "TrainingSessionCreate": { "properties": { "content_type": { "type": "string", "title": "Content Type" }, "content_key": { "type": "string", "title": "Content Key" }, "original_content": { "type": "string", "title": "Original Content" } }, "type": "object", "required": [ "content_type", "content_key", "original_content" ], "title": "TrainingSessionCreate" }, "TrainingSessionUpdate": { "properties": { "final_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Final Content" }, "conversation": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Conversation" }, "rules_detected": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Rules Detected" }, "rules_applied": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Rules Applied" }, "content_accepted": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Content Accepted" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, "type": "object", "title": "TrainingSessionUpdate" }, "UpdateBattlecardStatusRequest": { "properties": { "status": { "type": "string", "title": "Status", "description": "New status: draft, published, or archived" } }, "type": "object", "required": [ "status" ], "title": "UpdateBattlecardStatusRequest", "description": "Request to update battlecard status." }, "UpdateCompetitorRequest": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tier" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "categories": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Categories" }, "scan_frequency_hours": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Scan Frequency Hours" }, "search_terms": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Search Terms" }, "search_exclusions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Search Exclusions" }, "github_org": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Github Org" }, "youtube_channel_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Youtube Channel Url" }, "twitter_handle": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Twitter Handle" }, "blog_rss_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Blog Rss Url" }, "linkedin_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Linkedin Url" }, "events_page_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Events Page Url" }, "careers_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Careers Url" }, "sitemap_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sitemap Url" } }, "type": "object", "title": "UpdateCompetitorRequest" }, "UpdatePersonaRequest": { "properties": { "content": { "additionalProperties": true, "type": "object", "title": "Content" }, "status": { "type": "string", "title": "Status", "default": "edited" } }, "type": "object", "required": [ "content" ], "title": "UpdatePersonaRequest", "description": "Update a specific persona" }, "UpdateVoiceRequest": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_default": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Default" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, "type": "object", "title": "UpdateVoiceRequest", "description": "Request to update a content voice." }, "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" }, "ValidationRequest": { "properties": { "draft_content": { "type": "string", "title": "Draft Content", "description": "The content the agent proposes to send" }, "context_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context Id", "description": "ID of the signal/context being responded to" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id", "description": "ID of the agent generating the content" }, "policy_overrides": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Policy Overrides", "description": "Optional temporary policy overrides" } }, "type": "object", "required": [ "draft_content" ], "title": "ValidationRequest" }, "ValidationResponse": { "properties": { "is_safe": { "type": "boolean", "title": "Is Safe", "description": "Whether the content is safe to send" }, "risk_score": { "type": "number", "title": "Risk Score", "description": "0.0 (Safe) to 1.0 (High Risk)" }, "violation_reasons": { "items": { "type": "string" }, "type": "array", "title": "Violation Reasons", "description": "List of policy violations if any" }, "correction_suggestion": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correction Suggestion", "description": "Suggested rewrite to make it safe" }, "censor_mask": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Censor Mask", "description": "Redacted version of the content" }, "timestamp": { "type": "string", "title": "Timestamp" } }, "type": "object", "required": [ "is_safe", "risk_score" ], "title": "ValidationResponse" }, "ValidationResult": { "properties": { "is_valid": { "type": "boolean", "title": "Is Valid" }, "violations": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Violations" }, "corrected_text": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Corrected Text" } }, "type": "object", "required": [ "is_valid", "violations" ], "title": "ValidationResult" }, "VendorMention": { "properties": { "vendor_name": { "type": "string", "title": "Vendor Name" }, "ranking": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ranking" }, "strengths": { "items": { "type": "string" }, "type": "array", "title": "Strengths" }, "weaknesses": { "items": { "type": "string" }, "type": "array", "title": "Weaknesses" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Quote" }, "context": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Context" } }, "type": "object", "required": [ "vendor_name" ], "title": "VendorMention", "description": "A vendor mentioned in an analyst report" }, "VideoGenerationRequest": { "properties": { "script_request": { "$ref": "#/components/schemas/VideoScriptRequest" }, "avatar_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Avatar Id", "description": "HeyGen avatar ID", "default": "default_presenter" }, "voice_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Voice Id", "description": "Voice ID for narration", "default": "professional_male" }, "background_style": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Background Style", "description": "Background style", "default": "office" }, "video_quality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Video Quality", "description": "Video quality setting", "default": "1080p" }, "generate_subtitles": { "type": "boolean", "title": "Generate Subtitles", "description": "Generate video with subtitles", "default": true } }, "type": "object", "required": [ "script_request" ], "title": "VideoGenerationRequest", "description": "Request for generating complete video" }, "VideoGenerationResponse": { "properties": { "video_id": { "type": "string", "title": "Video Id" }, "script_id": { "type": "string", "title": "Script Id" }, "company_name": { "type": "string", "title": "Company Name" }, "status": { "type": "string", "title": "Status" }, "heygen_video_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Heygen Video Id" }, "estimated_completion": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Estimated Completion" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "video_id", "script_id", "company_name", "status", "metadata" ], "title": "VideoGenerationResponse", "description": "Response from video generation request" }, "VideoGenerationStatus": { "properties": { "video_id": { "type": "string", "title": "Video Id" }, "status": { "type": "string", "title": "Status" }, "progress": { "type": "number", "title": "Progress" }, "created_at": { "type": "string", "title": "Created At" }, "updated_at": { "type": "string", "title": "Updated At" }, "download_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Download Url" }, "thumbnail_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Thumbnail Url" }, "duration": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Duration" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" } }, "type": "object", "required": [ "video_id", "status", "progress", "created_at", "updated_at" ], "title": "VideoGenerationStatus", "description": "Status of video generation" }, "VideoScene": { "properties": { "scene_id": { "type": "string", "title": "Scene Id" }, "duration": { "type": "integer", "title": "Duration" }, "scene_type": { "type": "string", "title": "Scene Type" }, "script_text": { "type": "string", "title": "Script Text" }, "visual_notes": { "type": "string", "title": "Visual Notes" }, "timestamp_start": { "type": "integer", "title": "Timestamp Start" }, "timestamp_end": { "type": "integer", "title": "Timestamp End" } }, "type": "object", "required": [ "scene_id", "duration", "scene_type", "script_text", "visual_notes", "timestamp_start", "timestamp_end" ], "title": "VideoScene", "description": "Individual video scene" }, "VideoScriptRequest": { "properties": { "company_domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company Domain", "description": "Specific company domain to focus on" }, "script_length": { "type": "integer", "maximum": 300.0, "minimum": 30.0, "title": "Script Length", "description": "Target script length in seconds", "default": 120 }, "funnel_stage": { "$ref": "#/components/schemas/FunnelStage", "description": "Target funnel stage", "default": "tofu" }, "tone": { "$ref": "#/components/schemas/ContentTone", "description": "Video tone", "default": "professional" }, "include_intro": { "type": "boolean", "title": "Include Intro", "description": "Include NextTechStack intro", "default": true }, "include_outro": { "type": "boolean", "title": "Include Outro", "description": "Include standard outro", "default": true }, "focus_areas": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Focus Areas", "description": "Specific topics to emphasize" } }, "type": "object", "title": "VideoScriptRequest", "description": "Request for generating video script" }, "VideoScriptResponse": { "properties": { "script_id": { "type": "string", "title": "Script Id" }, "company_name": { "type": "string", "title": "Company Name" }, "company_domain": { "type": "string", "title": "Company Domain" }, "total_duration": { "type": "integer", "title": "Total Duration" }, "script_text": { "type": "string", "title": "Script Text" }, "scenes": { "items": { "$ref": "#/components/schemas/VideoScene" }, "type": "array", "title": "Scenes" }, "generated_at": { "type": "string", "title": "Generated At" }, "content_sources": { "items": { "type": "string" }, "type": "array", "title": "Content Sources" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" } }, "type": "object", "required": [ "script_id", "company_name", "company_domain", "total_duration", "script_text", "scenes", "generated_at", "content_sources", "metadata" ], "title": "VideoScriptResponse", "description": "Generated video script response" }, "VideoScriptSummary": { "properties": { "id": { "type": "string", "title": "Id" }, "script_id": { "type": "string", "title": "Script Id" }, "title": { "type": "string", "title": "Title" }, "company_name": { "type": "string", "title": "Company Name" }, "status": { "type": "string", "title": "Status" }, "funnel_stage": { "type": "string", "title": "Funnel Stage" }, "duration": { "type": "integer", "title": "Duration" }, "created_at": { "type": "string", "title": "Created At" }, "updated_at": { "type": "string", "title": "Updated At" }, "video_generated": { "type": "boolean", "title": "Video Generated" }, "user_rating": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "User Rating" } }, "type": "object", "required": [ "id", "script_id", "title", "company_name", "status", "funnel_stage", "duration", "created_at", "updated_at", "video_generated", "user_rating" ], "title": "VideoScriptSummary", "description": "Summary of a saved video script" }, "VisibilityReportResponse": { "properties": { "brand_name": { "type": "string", "title": "Brand Name" }, "total_prompts_tested": { "type": "integer", "title": "Total Prompts Tested" }, "overall_visibility_score": { "type": "number", "title": "Overall Visibility Score" }, "model_breakdown": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Model Breakdown" }, "top_performing_prompts": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Top Performing Prompts" }, "needs_improvement": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Needs Improvement" }, "content_recommendations": { "items": { "type": "string" }, "type": "array", "title": "Content Recommendations" }, "generated_at": { "type": "string", "title": "Generated At" } }, "type": "object", "required": [ "brand_name", "total_prompts_tested", "overall_visibility_score", "model_breakdown", "top_performing_prompts", "needs_improvement", "content_recommendations", "generated_at" ], "title": "VisibilityReportResponse", "description": "Full visibility report response." }, "VisibilityResultResponse": { "properties": { "prompt": { "type": "string", "title": "Prompt" }, "visibility_score": { "type": "number", "title": "Visibility Score" }, "models_mentioned": { "type": "integer", "title": "Models Mentioned" }, "total_models": { "type": "integer", "title": "Total Models" }, "responses": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Responses" }, "tested_at": { "type": "string", "title": "Tested At" } }, "type": "object", "required": [ "prompt", "visibility_score", "models_mentioned", "total_models", "responses", "tested_at" ], "title": "VisibilityResultResponse", "description": "Response for a single prompt visibility test." }, "VisibilitySnapshotResponse": { "properties": { "snapshot_at": { "type": "string", "title": "Snapshot At" }, "overall_visibility": { "type": "number", "title": "Overall Visibility" }, "brand_mentions": { "type": "integer", "title": "Brand Mentions" }, "competitor_mentions": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Competitor Mentions" }, "model_scores": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Model Scores" }, "change_vs_yesterday": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Change Vs Yesterday" }, "change_vs_last_week": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Change Vs Last Week" }, "prompts_tested": { "type": "integer", "title": "Prompts Tested" } }, "type": "object", "required": [ "snapshot_at", "overall_visibility", "brand_mentions", "competitor_mentions", "model_scores", "change_vs_yesterday", "change_vs_last_week", "prompts_tested" ], "title": "VisibilitySnapshotResponse" }, "VoiceAnalytics": { "properties": { "total_items": { "type": "integer", "title": "Total Items" }, "processed_items": { "type": "integer", "title": "Processed Items" }, "voice_consistency_score": { "type": "integer", "title": "Voice Consistency Score" }, "content_types": { "additionalProperties": { "type": "integer" }, "type": "object", "title": "Content Types" }, "recent_additions": { "items": { "$ref": "#/components/schemas/TrainingDataResponse" }, "type": "array", "title": "Recent Additions" } }, "type": "object", "required": [ "total_items", "processed_items", "voice_consistency_score", "content_types", "recent_additions" ], "title": "VoiceAnalytics" }, "VoiceResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "org_id": { "type": "string", "title": "Org Id" }, "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "content_type": { "type": "string", "title": "Content Type" }, "source_urls": { "items": { "type": "string" }, "type": "array", "title": "Source Urls" }, "source_content_ids": { "items": { "type": "string" }, "type": "array", "title": "Source Content Ids" }, "tone_profile": { "additionalProperties": true, "type": "object", "title": "Tone Profile" }, "thought_leadership_themes": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Thought Leadership Themes" }, "writing_principles": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Writing Principles" }, "vocabulary_patterns": { "additionalProperties": true, "type": "object", "title": "Vocabulary Patterns" }, "example_passages": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Example Passages" }, "style_guide": { "additionalProperties": true, "type": "object", "title": "Style Guide" }, "extraction_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Extraction Model" }, "extraction_confidence": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Extraction Confidence" }, "status": { "type": "string", "title": "Status" }, "is_default": { "type": "boolean", "title": "Is Default" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated At" }, "last_extracted_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Extracted At" } }, "type": "object", "required": [ "id", "org_id", "name", "description", "content_type", "source_urls", "source_content_ids", "tone_profile", "thought_leadership_themes", "writing_principles", "vocabulary_patterns", "example_passages", "style_guide", "extraction_model", "extraction_confidence", "status", "is_default", "created_at", "updated_at", "last_extracted_at" ], "title": "VoiceResponse", "description": "Content voice response." }, "WebflowConfig": { "properties": { "selected_sites": { "items": { "type": "string" }, "type": "array", "title": "Selected Sites", "default": [] } }, "type": "object", "title": "WebflowConfig" }, "WebflowItemCreate": { "properties": { "fields": { "additionalProperties": true, "type": "object", "title": "Fields", "description": "Fields payload for Webflow CMS item" } }, "type": "object", "required": [ "fields" ], "title": "WebflowItemCreate" }, "WebflowPublishRequest": { "properties": { "collection_id": { "type": "string", "title": "Collection Id", "description": "Webflow collection ID" }, "title_field": { "type": "string", "title": "Title Field", "description": "Field key for the title", "default": "name" }, "slug_field": { "type": "string", "title": "Slug Field", "description": "Field key for the slug", "default": "slug" }, "content_field": { "type": "string", "title": "Content Field", "description": "Field key for the body content", "default": "content" }, "item_title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Item Title", "description": "Title override for the item" }, "item_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Item Slug", "description": "Slug override for the item" }, "include_paths": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Include Paths", "description": "URL path prefixes to include" }, "exclude_paths": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Exclude Paths", "description": "URL path prefixes to exclude" }, "max_pages": { "type": "integer", "maximum": 200.0, "minimum": 1.0, "title": "Max Pages", "default": 50 } }, "type": "object", "required": [ "collection_id" ], "title": "WebflowPublishRequest" }, "api__battlecards__ExportResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "file_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "File Id" }, "web_view_link": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Web View Link" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" } }, "type": "object", "required": [ "success" ], "title": "ExportResponse", "description": "Response from Google Drive export." }, "api__export__ExportResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "message": { "type": "string", "title": "Message" }, "export_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Export Id" }, "google_drive_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Drive Url" } }, "type": "object", "required": [ "success", "message" ], "title": "ExportResponse" }, "api__google_auth__CallbackRequest": { "properties": { "code": { "type": "string", "title": "Code" }, "state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State" } }, "type": "object", "required": [ "code" ], "title": "CallbackRequest" }, "api__hubspot_auth__CallbackRequest": { "properties": { "code": { "type": "string", "title": "Code" }, "state": { "type": "string", "title": "State" } }, "type": "object", "required": [ "code", "state" ], "title": "CallbackRequest" }, "api__notion_integration__CallbackRequest": { "properties": { "code": { "type": "string", "title": "Code" }, "state": { "type": "string", "title": "State" } }, "type": "object", "required": [ "code", "state" ], "title": "CallbackRequest" } }, "securitySchemes": { "HTTPBearer": { "type": "http", "scheme": "bearer" } } }, "tags": [ { "name": "context-intelligence", "description": "Context streams and brand knowledge management. Create, update, and query your organization's unified knowledge base." }, { "name": "context-modulators", "description": "Shape context output by persona, funnel stage, or use case. Dynamically adjust messaging for different audiences." }, { "name": "context-graph", "description": "Ontology and provenance tracking. Explore relationships between entities in your context graph." }, { "name": "context-streams", "description": "Individual context stream management. Each stream represents a category of brand knowledge." }, { "name": "context-streams-streaming", "description": "Real-time context streaming via Kafka-compatible brokers (Redpanda). Publish and subscribe to context updates." }, { "name": "messaging-framework", "description": "Core GTM messaging assets: personas, products, use cases, positioning, and value propositions." }, { "name": "brand-standards", "description": "Terminology rules, voice guidelines, and compliance checks. Ensure consistent brand language." }, { "name": "content-voices", "description": "Extracted writing style characteristics. Analyze and replicate your brand's unique voice." }, { "name": "rag", "description": "Retrieval-augmented generation. Search your knowledge base and generate brand-aware content." }, { "name": "Enhanced RAG", "description": "Advanced RAG with multi-source retrieval, re-ranking, and context fusion." }, { "name": "ai-assistant", "description": "Conversational AI with full brand context. Chat interface for content generation and Q&A." }, { "name": "content-analytics", "description": "Content performance tracking. Monitor engagement, reach, and effectiveness across platforms." }, { "name": "content-export", "description": "Export content in various formats (Markdown, JSON, PDF) for use in other tools." }, { "name": "content-search", "description": "Semantic search across all crawled and uploaded content." }, { "name": "content-versions", "description": "Content versioning and history. Track changes and roll back to previous versions." }, { "name": "signals", "description": "Unified signal ingestion across 10+ platforms: GitHub, Reddit, HackerNews, LinkedIn, Discord, Twitter/X, ProductHunt, Slack, YouTube, G2, and government sources (SAM.gov, FERC)." }, { "name": "github-org-intelligence", "description": "GitHub organization analysis: stars, forks, contributors, repository health, issue sentiment, and developer activity." }, { "name": "hackernews-signals", "description": "HackerNews front page monitoring, Show HN tracking, comment sentiment, and discussion threads." }, { "name": "reddit-lite-signals", "description": "Reddit monitoring across subreddits. Track brand mentions, competitor discussions, and community sentiment." }, { "name": "signals-discord", "description": "Discord server monitoring for developer communities. Track mentions and community discussions." }, { "name": "youtube-signals", "description": "YouTube video tracking: tutorials, reviews, mentions, and developer content about your product." }, { "name": "linkedin-signals", "description": "LinkedIn post monitoring: executive thought leadership, company mentions, and professional discussions." }, { "name": "twitter-signals", "description": "Twitter/X monitoring for brand mentions, industry discussions, and influencer content." }, { "name": "producthunt-signals", "description": "ProductHunt launch tracking, upvotes, comments, and competitive launches." }, { "name": "slack-signals", "description": "Slack community monitoring for developer discussions and support channels." }, { "name": "government-signals", "description": "Government contract signals from SAM.gov, FERC filings, and federal opportunity tracking." }, { "name": "DEO Signals", "description": "Developer Experience Optimization - track AI agent interactions, RAG queries, and tool integrations with your content." }, { "name": "unified-discovery", "description": "Automated discovery across all signal platforms. Schedule and manage discovery jobs." }, { "name": "discovery", "description": "One-time discovery runs and results." }, { "name": "discovery-scheduler", "description": "Configure recurring discovery schedules per platform." }, { "name": "competitive-intelligence", "description": "Automated competitor monitoring. Track positioning, messaging, and market moves." }, { "name": "Competitor Intelligence", "description": "Deep competitor analysis including feature comparisons and win/loss patterns." }, { "name": "battlecards", "description": "AI-generated competitive battlecards with objection handling and differentiators." }, { "name": "G2", "description": "G2 Crowd review monitoring: ratings, review sentiment, competitive comparisons, and category positioning." }, { "name": "target-graph", "description": "Account and contact intelligence. Build and enrich your target account list." }, { "name": "targetgraph", "description": "Target graph queries and relationship mapping." }, { "name": "target-graph-engagement", "description": "Track engagement with target accounts across channels." }, { "name": "crm", "description": "CRM integrations for syncing contacts, companies, and deal data." }, { "name": "CRM Context Stream", "description": "CRM data as a context stream. Query deal history, contact info, and account context." }, { "name": "hubspot", "description": "HubSpot CRM integration: contacts, companies, deals, and engagement." }, { "name": "hubspot-auth", "description": "HubSpot OAuth authentication flow." }, { "name": "lusha-intelligence", "description": "Lusha contact enrichment for lead data." }, { "name": "GEO/AEO", "description": "Generative Engine Optimization - monitor your visibility in AI search engines (ChatGPT, Claude, Perplexity)." }, { "name": "GEO Intelligence", "description": "Advanced GEO analytics with Google Search Console integration." }, { "name": "Google Search Console", "description": "GSC integration for search performance data." }, { "name": "aeo", "description": "Answer Engine Optimization monitoring and recommendations." }, { "name": "telemetry", "description": "Site visitor tracking with IP geolocation and company enrichment. Identify anonymous visitors." }, { "name": "analytics", "description": "Platform analytics and usage metrics." }, { "name": "Command Center", "description": "Real-time dashboard with live visitor feed and signal alerts." }, { "name": "cmo-intelligence", "description": "Executive-level metrics: AI readiness score, signal pulse, pipeline attribution." }, { "name": "attribution-intelligence", "description": "Connect signals to pipeline. Track which content and channels drive deals." }, { "name": "Leadership Audit", "description": "Analyze leadership team presence and thought leadership visibility." }, { "name": "crawler", "description": "Website crawling and content extraction. Ingest web pages, blogs, and documentation." }, { "name": "domains", "description": "Domain management for crawling and monitoring." }, { "name": "PDFs", "description": "PDF upload and processing. Extract text and structure from documents." }, { "name": "content_extraction", "description": "Extract structured content from raw HTML and documents." }, { "name": "google-auth", "description": "Google OAuth for Drive and Analytics integrations." }, { "name": "notion", "description": "Notion workspace integration for content sync." }, { "name": "notion-auth", "description": "Notion OAuth authentication flow." }, { "name": "webflow", "description": "Webflow CMS integration for publishing content." }, { "name": "webflow-auth", "description": "Webflow OAuth authentication flow." }, { "name": "Webflow", "description": "Webflow site management and content publishing." }, { "name": "airops", "description": "AirOps integration for workflow automation." }, { "name": "cncf-landscape", "description": "CNCF Landscape data for cloud-native ecosystem context." }, { "name": "linkedin-playwright", "description": "LinkedIn data extraction via browser automation." }, { "name": "well-known", "description": "Generate llms.txt, context.txt, and agents.json for AI discoverability." }, { "name": "llm-exports", "description": "Export context in LLM-friendly formats." }, { "name": "MCP", "description": "Model Context Protocol server. Expose your context to AI agents (Claude Code, Cursor, etc)." }, { "name": "Video Generation", "description": "AI video script generation and storyboarding." }, { "name": "Video Script Generation", "description": "Generate video scripts from your brand context." }, { "name": "Video Script Management", "description": "Manage and version video scripts." }, { "name": "video-template", "description": "Video template management for consistent production." }, { "name": "Voice Training", "description": "Train custom voice models on your brand content." }, { "name": "onboarding-wizard", "description": "AI-assisted onboarding. Generate messaging framework from your website." }, { "name": "simple-onboarding", "description": "Streamlined 5-step onboarding flow." }, { "name": "bootstrap", "description": "Initialize a new organization with default context streams." }, { "name": "org-settings", "description": "Organization settings: domain, company name, preferences." }, { "name": "api-keys", "description": "API key management for programmatic access and AI agents." }, { "name": "admin", "description": "Super admin endpoints for platform management." }, { "name": "admin-migration", "description": "Data migration and import tools." }, { "name": "governance", "description": "Content governance rules and approval workflows." }, { "name": "playbooks", "description": "GTM playbooks: sequences, triggers, and automated workflows." }, { "name": "pipeline", "description": "Pipeline framework for multi-step agent workflows (Blueprints)." }, { "name": "Pitch Deck Generator", "description": "Generate pitch decks from website content and context." }, { "name": "dashboard", "description": "Dashboard data endpoints for the web UI." }, { "name": "export", "description": "General export functionality." }, { "name": "stream", "description": "Server-sent events for real-time updates." }, { "name": "Intelligent Prompt Generation", "description": "Generate optimized prompts for various AI models." } ], "servers": [ { "url": "https://voice-forge-production.up.railway.app", "description": "Production" } ] }