{
  "opencollection": "1.0.0",
  "info": {
    "name": "VoyantIO API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "crawler",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Crawler Engines",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/engines",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List available crawler engines and their status.\n\nReturns engines with availability status based on configured credentials."
        },
        {
          "info": {
            "name": "Estimate Crawl Scope",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/estimate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Estimate number of URLs by checking sitemap.xml."
        },
        {
          "info": {
            "name": "Start Crawl",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/start",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start a new crawl job using Celery.\n\nThe crawl runs in a Celery worker and can be monitored via the status endpoint."
        },
        {
          "info": {
            "name": "Get Crawl Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/status/:crawl_id",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of a crawl job."
        },
        {
          "info": {
            "name": "Get Crawl Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/summary/:crawl_id",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get summary of a completed crawl job."
        },
        {
          "info": {
            "name": "List Crawl Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/jobs",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all crawl jobs for organization."
        },
        {
          "info": {
            "name": "Cancel Crawl",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/cancel",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Cancel a running crawl job."
        },
        {
          "info": {
            "name": "Stream Crawl Events",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/stream/:crawl_id",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Stream crawl progress and newly captured content via SSE."
        },
        {
          "info": {
            "name": "List Crawl Contents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/contents",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "since",
                "value": "",
                "type": "query",
                "description": "Return items extracted after this ISO timestamp"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return captured content rows for a crawl to support polling UI updates."
        },
        {
          "info": {
            "name": "Debug Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/debug/health"
          },
          "docs": "Debug endpoint to check crawler and Celery health."
        },
        {
          "info": {
            "name": "Import Authoritative Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/import-authoritative",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Cleanup All Crawl Data",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/cleanup/all",
            "params": [
              {
                "name": "confirm",
                "value": "",
                "type": "query",
                "description": "Must be true to confirm deletion"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Cleanup External Content",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/cleanup/external-content",
            "params": [
              {
                "name": "domain_pattern",
                "value": "",
                "type": "query",
                "description": "URL pattern to match (e.g., 'grafana.com')"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        }
      ]
    },
    {
      "info": {
        "name": "rag",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Process Rag",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/process-rag",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Rag Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/rag-status",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of RAG processing for a crawl."
        },
        {
          "info": {
            "name": "Delete Rag Chunks",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/rag-chunks",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete all RAG chunks for a crawl to allow reprocessing."
        },
        {
          "info": {
            "name": "Get Rag Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/stats/:org_id",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get aggregate RAG statistics for the dashboard."
        }
      ]
    },
    {
      "info": {
        "name": "signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Signal Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/stats",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform (github, reddit, linkedin)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return counts of signals for the current org (optionally per platform)."
        },
        {
          "info": {
            "name": "Get Top Signals By Engagement",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/top-by-engagement",
            "params": [
              {
                "name": "limit_per_platform",
                "value": "",
                "type": "query"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get top signals by engagement grouped by platform.\nUsed by Content Strategist Community tab."
        },
        {
          "info": {
            "name": "Get Signal Trends",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/trends",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "company_keywords",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Configured Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/configured-sources",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Competitor Trends",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/competitor-trends",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "competitors",
                "value": "",
                "type": "query"
              },
              {
                "name": "company_keywords",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get competitor mention trends over time.\nShows how often competitors are mentioned in community signals vs your company."
        },
        {
          "info": {
            "name": "Get Publishing Comparison",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/publishing-comparison",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Signal Count",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/count",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return a simple signal count for the current organization."
        },
        {
          "info": {
            "name": "Get Github Monthly Signal Count",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/github/monthly",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Count GitHub signals discovered in the last 30 days."
        },
        {
          "info": {
            "name": "Get Github Profile",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/profile/:username",
            "params": [
              {
                "name": "username",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get GitHub profile data for a specific user to test social link extraction"
        },
        {
          "info": {
            "name": "Get System Alerts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/alerts",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get active system alerts for the organization"
        },
        {
          "info": {
            "name": "Resolve System Alert",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/alerts/:alert_id/resolve",
            "params": [
              {
                "name": "alert_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Mark a system alert as resolved"
        },
        {
          "info": {
            "name": "Discover Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "List Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/list",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform (github, reddit, linkedin)"
              },
              {
                "name": "signal_type",
                "value": "",
                "type": "query",
                "description": "Filter by signal type"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List discovered signals"
        },
        {
          "info": {
            "name": "Search Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/search",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query",
                "description": "Search query for competitor name"
              },
              {
                "name": "competitor_id",
                "value": "",
                "type": "query",
                "description": "Competitor ID to load search config"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "List Signal Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List signal sources"
        },
        {
          "info": {
            "name": "Add Signal Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add a new signal source (GitHub, Reddit, YouTube, etc.)"
        },
        {
          "info": {
            "name": "Delete Signal Source",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a signal source"
        },
        {
          "info": {
            "name": "Health Check",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/health"
          },
          "docs": "Health check endpoint"
        },
        {
          "info": {
            "name": "Baseline Discovery",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/baseline-discovery",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Clear All Signals",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/signals/clear",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Clear all signals for the organization"
        },
        {
          "info": {
            "name": "Bulk Add Signal Sources",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources/bulk",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Get Source Presets",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources/presets",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get available preset signal source configurations"
        },
        {
          "info": {
            "name": "Load Source Preset",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/sources/load-preset/:preset_name",
            "params": [
              {
                "name": "preset_name",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "Discover By Topics",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discover-topics",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Generate Topic Suggestions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/generate-topics",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "context-streams",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform"
              },
              {
                "name": "signal_type",
                "value": "",
                "type": "query",
                "description": "Filter by signal type"
              },
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              },
              {
                "name": "min_relevance",
                "value": "",
                "type": "query",
                "description": "Minimum relevance score"
              },
              {
                "name": "source_id",
                "value": "",
                "type": "query",
                "description": "Filter by source"
              },
              {
                "name": "days_back",
                "value": "",
                "type": "query",
                "description": "How many days back to look"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query",
                "description": "Sort by: discovered_at, priority_score, relevance_score"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List signals with filtering and sorting"
        },
        {
          "info": {
            "name": "List Signal Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/sources",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query",
                "description": "Filter by platform"
              },
              {
                "name": "is_active",
                "value": "",
                "type": "query",
                "description": "Filter by active status"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all signal sources"
        },
        {
          "info": {
            "name": "Create Signal Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/sources",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new signal source"
        },
        {
          "info": {
            "name": "Update Signal Source",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a signal source"
        },
        {
          "info": {
            "name": "Engage With Signal",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/:signal_id/engage",
            "params": [
              {
                "name": "signal_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Record engagement with a signal"
        },
        {
          "info": {
            "name": "Get Signal Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/stats",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get signal statistics"
        },
        {
          "info": {
            "name": "Get Trending Topics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/trending-topics",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of topics to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get trending topics from signals"
        }
      ]
    },
    {
      "info": {
        "name": "stream",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Stream Context Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/stream/subscribe",
            "params": [
              {
                "name": "channels",
                "value": "",
                "type": "query",
                "description": "Filter by channels/platforms"
              },
              {
                "name": "min_relevance",
                "value": "",
                "type": "query",
                "description": "Minimum relevance score"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Subscribe to a real-time stream of context signals.\nUses Server-Sent Events (SSE)."
        }
      ]
    },
    {
      "info": {
        "name": "governance",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Validate Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/governance/validate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Validate a draft response against the organization's governance policies.\nThis acts as the 'Firewall' for Agent Inference."
        },
        {
          "info": {
            "name": "Get Active Policy",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/governance/policy/active",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the currently active governance policy (merged from context.txt + Gypsum).\nDefined by Strategy, not just 'Tone'."
        }
      ]
    },
    {
      "info": {
        "name": "Default",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Track Event",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/track",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Receive tracking events from websites and match to signals"
        },
        {
          "info": {
            "name": "Generate Attribution Link",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/generate",
            "params": [
              {
                "name": "signal_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "base_url",
                "value": "",
                "type": "query"
              },
              {
                "name": "param_name",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Generate an attribution link for a signal"
        },
        {
          "info": {
            "name": "Get Attribution Funnel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/funnel/:signal_id",
            "params": [
              {
                "name": "signal_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get the complete attribution funnel for a signal"
        },
        {
          "info": {
            "name": "Get Attribution Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/report",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get attribution report for all signals"
        },
        {
          "info": {
            "name": "List Templates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/templates/",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "query"
              },
              {
                "name": "tone",
                "value": "",
                "type": "query"
              },
              {
                "name": "purpose",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List templates with optional filtering"
        },
        {
          "info": {
            "name": "Create Template",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/templates/",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new marketing template"
        },
        {
          "info": {
            "name": "Search Templates",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/templates/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search templates with filters"
        },
        {
          "info": {
            "name": "Get Template",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/templates/:template_id",
            "params": [
              {
                "name": "template_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific template"
        },
        {
          "info": {
            "name": "Update Template",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/templates/:template_id",
            "params": [
              {
                "name": "template_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a template"
        },
        {
          "info": {
            "name": "Delete Template",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/templates/:template_id",
            "params": [
              {
                "name": "template_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a template"
        },
        {
          "info": {
            "name": "Templates Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/templates/health"
          },
          "docs": "Health check for templates API - explicitly no auth required"
        },
        {
          "info": {
            "name": "Test Templates Auth",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/templates/test-auth",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Test authentication for templates API"
        },
        {
          "info": {
            "name": "Discover Linkedin Signals Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/discover-stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover LinkedIn signals using Playwright-based browser automation.\nRedirects to Playwright implementation which bypasses authwall issues."
        },
        {
          "info": {
            "name": "Discover Linkedin Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover LinkedIn signals using built-in agent with user's session"
        },
        {
          "info": {
            "name": "Get Linkedin Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get stored LinkedIn signals/prospects from database"
        },
        {
          "info": {
            "name": "Import Linkedin Signals Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/import-stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Import LinkedIn posts/profiles and stream them into the signals database."
        },
        {
          "info": {
            "name": "Get Linkedin Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get LinkedIn signals statistics"
        },
        {
          "info": {
            "name": "Generate Linkedin Response",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/generate-response",
            "params": [
              {
                "name": "signal_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "tone",
                "value": "",
                "type": "query"
              },
              {
                "name": "response_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "include_context",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate AI response for LinkedIn prospect engagement"
        },
        {
          "info": {
            "name": "Capture Linkedin Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/session",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Capture LinkedIn session from browser extension or manual input\nStores session for future use"
        },
        {
          "info": {
            "name": "Check Linkedin Session",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/session-status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check if user has a valid LinkedIn session configured"
        },
        {
          "info": {
            "name": "Get Linkedin Enrichment Settings",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/enrichment-settings",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Linkedin Enrichment Settings"
        },
        {
          "info": {
            "name": "Save Linkedin Enrichment Settings",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/enrichment-settings",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Save Linkedin Enrichment Settings"
        },
        {
          "info": {
            "name": "Discover Decision Makers From Target Graph",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/discover-decision-makers",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover decision-makers on LinkedIn at companies from Target Graph\nReturns all results at once (for backward compatibility)"
        },
        {
          "info": {
            "name": "Map Organization Step",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/map-organization-step",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Test Linkedin Agent Connection",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-signals/test-agent"
          },
          "docs": "Test connection to LinkedIn agent and trigger a small discovery"
        },
        {
          "info": {
            "name": "Capture Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/capture-session",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Capture LinkedIn session data from Chrome extension."
        },
        {
          "info": {
            "name": "Test Search",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/test-search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Test LinkedIn search functionality using captured session.\nThis is a placeholder - you'll need to implement actual LinkedIn API integration."
        },
        {
          "info": {
            "name": "Get Session Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/session-status"
          },
          "docs": "Check if we have an active LinkedIn session."
        },
        {
          "info": {
            "name": "Get Session",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/get-session"
          },
          "docs": "Get the stored LinkedIn session data for use by other endpoints."
        },
        {
          "info": {
            "name": "List Companies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all companies detected from GitHub signals"
        },
        {
          "info": {
            "name": "Get Company Details",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies/:company_id",
            "params": [
              {
                "name": "company_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed information about a specific company"
        },
        {
          "info": {
            "name": "Analyze Github Signals For Companies",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/companies/analyze",
            "params": [
              {
                "name": "force_refresh",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Analyze GitHub signals to detect companies and tech stacks"
        },
        {
          "info": {
            "name": "Get Tech Stack Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies/tech-stack/summary",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a summary of tech stacks across all companies"
        },
        {
          "info": {
            "name": "Get Company Interests",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies/:company_id/interests",
            "params": [
              {
                "name": "company_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed analysis of a company's interests based on starred repositories"
        },
        {
          "info": {
            "name": "Search Companies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies/search",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query"
              },
              {
                "name": "tech_filter",
                "value": "",
                "type": "query"
              },
              {
                "name": "min_team_size",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search companies by name, tech stack, or other criteria"
        },
        {
          "info": {
            "name": "Companies Health Check",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/companies/health",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Health check for company detection features"
        },
        {
          "info": {
            "name": "Global Options Handler",
            "type": "http"
          },
          "http": {
            "method": "OPTIONS",
            "url": "https://voice-forge-production.up.railway.app/:path",
            "params": [
              {
                "name": "path",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Global Options Handler"
        },
        {
          "info": {
            "name": "Root",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/"
          },
          "docs": "Root"
        },
        {
          "info": {
            "name": "Health Check",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/health"
          },
          "docs": "Health Check"
        },
        {
          "info": {
            "name": "Health Check Db",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/health/db"
          },
          "docs": "Deep health check that verifies all critical database tables exist."
        },
        {
          "info": {
            "name": "Get Current User Info",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/auth/me",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Current User Info"
        },
        {
          "info": {
            "name": "Auth Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/auth/health"
          },
          "docs": "Auth Health"
        },
        {
          "info": {
            "name": "Dashboard Page",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/dashboard"
          },
          "docs": "Dashboard Page"
        },
        {
          "info": {
            "name": "Targets Dashboard Page",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/targets"
          },
          "docs": "Targets Dashboard Page"
        },
        {
          "info": {
            "name": "Attribution Dashboard Page",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/attribution"
          },
          "docs": "Attribution Dashboard Page"
        },
        {
          "info": {
            "name": "Generate Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/rag/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate content using RAG."
        },
        {
          "info": {
            "name": "Search Chunks",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/rag/chunks/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search for content chunks for RAG."
        },
        {
          "info": {
            "name": "Generate Content Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/rag/generate-stream",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Generate content using streaming Claude response."
        }
      ]
    },
    {
      "info": {
        "name": "Intelligent Prompt Generation",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Intelligent Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/prompts/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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): Co"
        },
        {
          "info": {
            "name": "Get Sample Prompts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/prompts/sample",
            "params": [
              {
                "name": "business_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "persona_role",
                "value": "",
                "type": "query"
              },
              {
                "name": "funnel_stage",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Prompt Generation Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/prompts/health"
          },
          "docs": "Health check for enhanced prompt generation service"
        }
      ]
    },
    {
      "info": {
        "name": "PDFs",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Upload Pdf",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/upload",
            "body": {
              "type": "multipart-form",
              "data": []
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Upload Pdf Options",
            "type": "http"
          },
          "http": {
            "method": "OPTIONS",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/upload"
          },
          "docs": "Handle OPTIONS preflight request for PDF upload"
        },
        {
          "info": {
            "name": "Process Pdf",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/process",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Pdf Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/status",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Cancel Pdf Processing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/cancel",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Retry Pdf Processing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/retry",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Retry processing a failed PDF.\n\n- **pdf_id**: ID of the PDF to retry\n- Returns new task information"
        },
        {
          "info": {
            "name": "List Pdfs Root",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Delete Pdf",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Pdf Chunks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/chunks",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "page_number",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Analyze Pdf",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:pdf_id/analyze",
            "params": [
              {
                "name": "pdf_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "form-urlencoded",
              "data": []
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Generate Content With Pdfs",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/generate-content",
            "body": {
              "type": "form-urlencoded",
              "data": []
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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 sourc"
        },
        {
          "info": {
            "name": "Pdf Health Check",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/health"
          },
          "docs": "Health check for PDF functionality.\nVerifies that required dependencies are available."
        },
        {
          "info": {
            "name": "Pdf Test Endpoint",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/test"
          },
          "docs": "Simple test endpoint to verify PDF router is working."
        },
        {
          "info": {
            "name": "Pdf Options Handler",
            "type": "http"
          },
          "http": {
            "method": "OPTIONS",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/:path",
            "params": [
              {
                "name": "path",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Handle OPTIONS preflight requests for all PDF endpoints"
        },
        {
          "info": {
            "name": "Get Pdf Usage",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pdfs/usage",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get PDF usage statistics for the organization.\n\nReturns current usage against limits for the organization."
        }
      ]
    },
    {
      "info": {
        "name": "google-auth",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Authorization Url",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/google-drive/authorize",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Google OAuth2 authorization URL for user"
        },
        {
          "info": {
            "name": "Oauth Callback",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/google-drive/callback",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Handle OAuth2 callback and store tokens"
        },
        {
          "info": {
            "name": "Disconnect Google Drive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/google-drive/disconnect",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Disconnect user's Google Drive"
        }
      ]
    },
    {
      "info": {
        "name": "notion-auth",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Authorize Notion",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/notion/authorize",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start Notion OAuth flow"
        },
        {
          "info": {
            "name": "Notion Callback",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/notion/callback",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Handle Notion OAuth callback"
        },
        {
          "info": {
            "name": "Disconnect Notion",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/notion/disconnect",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Disconnect Notion workspace"
        }
      ]
    },
    {
      "info": {
        "name": "notion",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Notion Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/notion/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Notion connection status"
        },
        {
          "info": {
            "name": "Update Notion Config",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/notion/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update Notion sync configuration"
        },
        {
          "info": {
            "name": "Sync Notion",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/notion/sync",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Manually trigger Notion sync"
        }
      ]
    },
    {
      "info": {
        "name": "webflow-auth",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Connect Webflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/webflow/connect",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Connect a Webflow account using a Site API Token.\n\nCustomer generates token at: Webflow → Site Settings → Apps & Integrations → Generate API Token"
        },
        {
          "info": {
            "name": "Disconnect Webflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/webflow/disconnect",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Disconnect Webflow integration"
        }
      ]
    },
    {
      "info": {
        "name": "webflow",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Webflow Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Webflow connection status"
        },
        {
          "info": {
            "name": "Update Webflow Config",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update Webflow configuration (selected sites)"
        },
        {
          "info": {
            "name": "List Webflow Sites",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/sites",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all accessible Webflow sites"
        },
        {
          "info": {
            "name": "List Site Collections",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/sites/:site_id/collections",
            "params": [
              {
                "name": "site_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List CMS collections for a specific site"
        }
      ]
    },
    {
      "info": {
        "name": "Webflow",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Items",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/collections/:collection_id/items",
            "params": [
              {
                "name": "collection_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Items"
        },
        {
          "info": {
            "name": "Create Item",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/collections/:collection_id/items",
            "params": [
              {
                "name": "collection_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create Item"
        },
        {
          "info": {
            "name": "Webflow Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/health",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Webflow Health"
        },
        {
          "info": {
            "name": "List Collections",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/collections",
            "params": [
              {
                "name": "site_id",
                "value": "",
                "type": "query",
                "description": "Webflow site ID"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Collections"
        },
        {
          "info": {
            "name": "Get Collection",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/webflow/collections/:collection_id",
            "params": [
              {
                "name": "collection_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Collection"
        }
      ]
    },
    {
      "info": {
        "name": "hubspot-auth",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Authorization Url",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/hubspot/authorize",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Oauth Callback",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/auth/hubspot/callback",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Handle OAuth callback and store tokens.\n\nValidates state token server-side to prevent CSRF/tampering."
        }
      ]
    },
    {
      "info": {
        "name": "hubspot",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Hubspot Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Refresh Token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/refresh",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Refresh the HubSpot access token."
        },
        {
          "info": {
            "name": "Disconnect Hubspot",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/disconnect",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Disconnect HubSpot integration."
        },
        {
          "info": {
            "name": "Get Mqls",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/mqls",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days to look back"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max MQLs to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Marketing Qualified Leads from HubSpot.\n\nReturns contacts who reached MQL lifecycle stage within the specified period."
        },
        {
          "info": {
            "name": "Get Mql Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/mqls/summary",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "quarterly_target",
                "value": "",
                "type": "query",
                "description": "Quarterly MQL target"
              },
              {
                "name": "annual_target",
                "value": "",
                "type": "query",
                "description": "Annual MQL target"
              },
              {
                "name": "budget_spent",
                "value": "",
                "type": "query",
                "description": "Budget spent this period"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get MQL summary metrics for CMO dashboard.\n\nIncludes current count, targets, cost per MQL, and trend data."
        },
        {
          "info": {
            "name": "Get Mql Trends",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/mqls/trends",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "group_by",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get MQL counts grouped by time period.\n\nUsed for trend charts showing MQL generation over time."
        },
        {
          "info": {
            "name": "Get Campaigns",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/campaigns",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get email campaign performance with MQL attribution.\n\nReturns campaigns with open rates, click rates, conversions, and MQL generation."
        },
        {
          "info": {
            "name": "Get Gated Content",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/gated-content",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get gated content (forms) performance stats.\n\nReturns views, submissions, conversion rates, and MQL generation by content."
        },
        {
          "info": {
            "name": "Get Mql Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/context/mqls",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate MQL context data for RAG/AI consumption.\n\nReturns structured data about MQL performance, trends, and insights."
        },
        {
          "info": {
            "name": "Get Campaign Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hubspot/context/campaigns",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate campaign context data for RAG/AI consumption.\n\nReturns structured data about campaign performance and insights."
        }
      ]
    },
    {
      "info": {
        "name": "content-export",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Drive Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content/drive-status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Google Drive connection status"
        },
        {
          "info": {
            "name": "Check Google Drive Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content/drive-health",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check Google Drive API connection health"
        },
        {
          "info": {
            "name": "Update Drive Config",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/content/drive-config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update Google Drive configuration"
        },
        {
          "info": {
            "name": "Export Content To Google Drive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content/export-to-drive",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export content to Google Drive"
        },
        {
          "info": {
            "name": "Get User Exports",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content/exports",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get list of user's exports"
        }
      ]
    },
    {
      "info": {
        "name": "content-search",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Search Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Basic content search for the UI. Currently uses the simple content summary."
        }
      ]
    },
    {
      "info": {
        "name": "Voice Training",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Training Data",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all voice training data"
        },
        {
          "info": {
            "name": "Add Training Data",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add new content for voice training"
        },
        {
          "info": {
            "name": "Delete Training Data",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/:training_id",
            "params": [
              {
                "name": "training_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete voice training data"
        },
        {
          "info": {
            "name": "Get Voice Analytics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/analytics",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get voice training analytics"
        },
        {
          "info": {
            "name": "Get Persona Training Data",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all training data for a specific persona"
        },
        {
          "info": {
            "name": "Voice Training Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/voice-training/health"
          },
          "docs": "Health check for voice training service"
        }
      ]
    },
    {
      "info": {
        "name": "export",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Export Document",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/export/document",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export document to Google Drive"
        },
        {
          "info": {
            "name": "Get Export History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/export/history",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get export history for user"
        }
      ]
    },
    {
      "info": {
        "name": "context-modulators",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Modulators",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Modulators"
        },
        {
          "info": {
            "name": "Create Modulator",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create Modulator"
        },
        {
          "info": {
            "name": "Get Modulator",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/:modulator_id",
            "params": [
              {
                "name": "modulator_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Modulator"
        },
        {
          "info": {
            "name": "Update Modulator",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/:modulator_id",
            "params": [
              {
                "name": "modulator_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update Modulator"
        },
        {
          "info": {
            "name": "Delete Modulator",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/:modulator_id",
            "params": [
              {
                "name": "modulator_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete Modulator"
        },
        {
          "info": {
            "name": "List Canonical Streams",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/canonical/streams"
          },
          "docs": "Return explicit canonical context streams for ontology/UI."
        },
        {
          "info": {
            "name": "List Canonical Modulators",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/canonical/modulators"
          },
          "docs": "Return explicit canonical modulators (epistemic shapers)."
        },
        {
          "info": {
            "name": "Export Modulator Ontology",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/:modulator_id/ontology",
            "params": [
              {
                "name": "modulator_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export a single modulator and its linked streams/targets as JSON-LD for ontology ingestion."
        },
        {
          "info": {
            "name": "Get Modulator Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-modulators/:modulator_id/context",
            "params": [
              {
                "name": "modulator_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "target_node_id",
                "value": "",
                "type": "query",
                "description": "Ontology node to modulate (e.g., persona:head_of_product_marketing)"
              },
              {
                "name": "funnel_stage",
                "value": "",
                "type": "query",
                "description": "Funnel stage shaping hint"
              },
              {
                "name": "risk_tolerance",
                "value": "",
                "type": "query",
                "description": "Risk tolerance shaping hint"
              },
              {
                "name": "regulatory_sensitivity",
                "value": "",
                "type": "query",
                "description": "Regulatory sensitivity shaping hint"
              },
              {
                "name": "stream_type",
                "value": "",
                "type": "query",
                "description": "Canonical stream id (e.g., CompanyIdentityStream)"
              },
              {
                "name": "max_chunks",
                "value": "",
                "type": "query",
                "description": "How many RAG evidence chunks to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        }
      ]
    },
    {
      "info": {
        "name": "brand-standards",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Terminology Rules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules",
            "params": [
              {
                "name": "category",
                "value": "",
                "type": "query"
              },
              {
                "name": "is_active",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all terminology rules for the organization"
        },
        {
          "info": {
            "name": "Create Terminology Rule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new terminology rule"
        },
        {
          "info": {
            "name": "Get Terminology Rule",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules/:rule_id",
            "params": [
              {
                "name": "rule_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific terminology rule"
        },
        {
          "info": {
            "name": "Update Terminology Rule",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules/:rule_id",
            "params": [
              {
                "name": "rule_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a terminology rule"
        },
        {
          "info": {
            "name": "Delete Terminology Rule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules/:rule_id",
            "params": [
              {
                "name": "rule_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a terminology rule"
        },
        {
          "info": {
            "name": "Validate Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/validate",
            "params": [
              {
                "name": "content",
                "value": "",
                "type": "query"
              },
              {
                "name": "auto_correct",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Validate content against terminology rules.\nReturns violations and optionally auto-corrected text."
        },
        {
          "info": {
            "name": "Export Rules For Prompt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/export",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export rules in a format suitable for system prompt injection."
        },
        {
          "info": {
            "name": "Bulk Create Rules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/brand-standards/rules/bulk",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create multiple terminology rules at once"
        }
      ]
    },
    {
      "info": {
        "name": "content-versions",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Version History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/versions/:content_type/:content_key",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "path"
              },
              {
                "name": "content_key",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get version history for a specific content piece"
        },
        {
          "info": {
            "name": "Get Current Version",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/versions/:content_type/:content_key/current",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "path"
              },
              {
                "name": "content_key",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the current (latest) version of a content piece"
        },
        {
          "info": {
            "name": "Create Version",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/versions",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new version of content (automatically handles version numbering)"
        },
        {
          "info": {
            "name": "Rollback To Version",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/versions/:version_id/rollback",
            "params": [
              {
                "name": "version_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Rollback to a previous version (creates a new version with the old content)"
        },
        {
          "info": {
            "name": "List Training Sessions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/training-sessions",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List training sessions for the org"
        },
        {
          "info": {
            "name": "Create Training Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/training-sessions",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start a new training session"
        },
        {
          "info": {
            "name": "Update Training Session",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/training-sessions/:session_id",
            "params": [
              {
                "name": "session_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a training session (add conversation, mark complete, etc.)"
        },
        {
          "info": {
            "name": "Get All Current Versions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-versions/all-current",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all current versions, optionally filtered by content type.\nReturns nested dict: {content_type: {content_key: version}}"
        }
      ]
    },
    {
      "info": {
        "name": "cncf-landscape",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Normalize Landscape",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/cncf-landscape/normalize",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Normalize Landscape"
        },
        {
          "info": {
            "name": "Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cncf-landscape/health"
          },
          "docs": "Health"
        }
      ]
    },
    {
      "info": {
        "name": "reddit-lite-signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Reddit Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/health"
          },
          "docs": "Check Reddit integration health"
        },
        {
          "info": {
            "name": "Discover Reddit Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/signals/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover Reddit signals by searching subreddits for keywords\nSimilar to GitHub discovery but for Reddit content"
        },
        {
          "info": {
            "name": "Discover Reddit Signals Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/signals/discover-stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover Reddit Signals Stream"
        },
        {
          "info": {
            "name": "List Reddit Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/signals",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "subreddit",
                "value": "",
                "type": "query"
              },
              {
                "name": "keyword",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Reddit signals with filtering options"
        },
        {
          "info": {
            "name": "Delete All Reddit Signals",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/signals",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete all Reddit signals for the organization"
        },
        {
          "info": {
            "name": "Summarize Reddit Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/signals/summarize",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate AI summaries for Reddit signals (on demand)."
        },
        {
          "info": {
            "name": "Follow Reddit User",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/users/:username/follow",
            "params": [
              {
                "name": "username",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Follow a Reddit user (requires authenticated Reddit account)"
        },
        {
          "info": {
            "name": "Get Reddit Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get configured Reddit sources for this organization"
        },
        {
          "info": {
            "name": "Get Competitor Reddit Mentions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/reddit-lite/mentions",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query",
                "description": "Competitor name to search for"
              },
              {
                "name": "competitor_id",
                "value": "",
                "type": "query",
                "description": "Competitor ID for smart filtering"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search Reddit for mentions of a competitor.\nUsed by the competitor dashboard to find Reddit discussions.\nSimilar to YouTube mentions endpoint."
        }
      ]
    },
    {
      "info": {
        "name": "signals-discord",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Discord Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/health"
          },
          "docs": "Check Discord integration health"
        },
        {
          "info": {
            "name": "Get Discord Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get configured Discord sources (servers to monitor) for this org"
        },
        {
          "info": {
            "name": "Add Discord Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/sources",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add a new Discord source (server to monitor)"
        },
        {
          "info": {
            "name": "Update Discord Source",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a Discord source configuration"
        },
        {
          "info": {
            "name": "Delete Discord Source",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a Discord source"
        },
        {
          "info": {
            "name": "Discover Discord Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover signals from configured Discord servers.\nUses the org's configured sources from signal_sources table."
        },
        {
          "info": {
            "name": "Get Discord Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/signals",
            "params": [
              {
                "name": "server",
                "value": "",
                "type": "query",
                "description": "Filter by server name"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get stored Discord signals for this org."
        },
        {
          "info": {
            "name": "Get Discord Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/discord/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get statistics for Discord signal discovery."
        }
      ]
    },
    {
      "info": {
        "name": "linkedin-playwright",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/status"
          },
          "docs": "Check Playwright browser connection status"
        },
        {
          "info": {
            "name": "Check Linkedin Login",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/check-login"
          },
          "docs": "Check if we're logged into LinkedIn"
        },
        {
          "info": {
            "name": "Search People",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/search-people",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search for people on LinkedIn"
        },
        {
          "info": {
            "name": "Map Organization",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/map-organization",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Map people at an organization.\n\nThis is the KILLER feature: find engineering leadership at a company,\noptionally matching GitHub usernames to LinkedIn profiles."
        },
        {
          "info": {
            "name": "Search Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/search-content",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search for content/posts on LinkedIn"
        },
        {
          "info": {
            "name": "Get Profile",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/profile/:profile_id",
            "params": [
              {
                "name": "profile_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed profile information"
        },
        {
          "info": {
            "name": "Get Leadership Metrics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/leadership-metrics/:profile_id",
            "params": [
              {
                "name": "profile_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get leadership metrics from a LinkedIn profile for GTM Intelligence Report.\nReturns: followers, connections, posts_30d, avg_engagement"
        },
        {
          "info": {
            "name": "Disconnect Browser",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/disconnect"
          },
          "docs": "Disconnect from the browser"
        },
        {
          "info": {
            "name": "Inject Linkedin Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/inject-session"
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Discover Signals Streaming",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/linkedin-playwright/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "messaging-framework",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Gypsum Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/health"
          },
          "docs": "Check Gypsum API health and connection status."
        },
        {
          "info": {
            "name": "Get Connection Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/connection-status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Gypsum connection status for the frontend."
        },
        {
          "info": {
            "name": "Get Full Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/full-context",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all context needed for content generation.\nPulls from ALL Context Streams for the organization.\nThis is the single endpoint the frontend should use."
        },
        {
          "info": {
            "name": "Get Personas",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/personas",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all personas for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Create Persona",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/personas",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new persona via Gypsum API.\nTODO: Implement persona creation via Gypsum API."
        },
        {
          "info": {
            "name": "Get Persona",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific persona by ID from Gypsum API."
        },
        {
          "info": {
            "name": "Update Persona",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a persona via Gypsum API.\nTODO: Implement persona updates via Gypsum API."
        },
        {
          "info": {
            "name": "Delete Persona",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a persona via Gypsum API.\nTODO: Implement persona deletion via Gypsum API."
        },
        {
          "info": {
            "name": "Get Products",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/products",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all products for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Product",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/products/:product_id",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific product by ID from Gypsum API."
        },
        {
          "info": {
            "name": "Get Use Cases",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/use-cases",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all use cases for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Use Case",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/use-cases/:use_case_id",
            "params": [
              {
                "name": "use_case_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific use case by ID from Gypsum API."
        },
        {
          "info": {
            "name": "Get Industries",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/industries",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all industries for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Industry",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/industries/:industry_id",
            "params": [
              {
                "name": "industry_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific industry by ID from Gypsum API."
        },
        {
          "info": {
            "name": "Get Messaging",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/messaging",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get messaging framework for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Positioning",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/positioning",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get positioning framework for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Testimonials",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/testimonials",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get testimonials for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Featured Testimonials",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/testimonials/featured",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get featured testimonials for the current organization from Gypsum API."
        },
        {
          "info": {
            "name": "Get Testimonial",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/testimonials/:testimonial_id",
            "params": [
              {
                "name": "testimonial_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific testimonial by ID from Gypsum API."
        },
        {
          "info": {
            "name": "Get Campaign Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/campaigns/:campaign_id/context",
            "params": [
              {
                "name": "campaign_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get campaign context from Gypsum API for content generation."
        },
        {
          "info": {
            "name": "Get Complete Marketing Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/messaging-framework/marketing-context",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "dashboard",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Dashboard Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/summary",
            "params": [
              {
                "name": "days_back",
                "value": "",
                "type": "query",
                "description": "Number of days to look back"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get high-level dashboard summary statistics.\nThis is the main dashboard view."
        },
        {
          "info": {
            "name": "Get Active Companies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/active-companies",
            "params": [
              {
                "name": "days_back",
                "value": "",
                "type": "query",
                "description": "Number of days to look back"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of companies to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the most active companies based on recent signals.\nSimple view showing companies with the most activity."
        },
        {
          "info": {
            "name": "Get Recent Activity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/recent-activity",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of activities to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a feed of recent activity across all tracked entities.\nSimple timeline view of what's happening."
        },
        {
          "info": {
            "name": "Get Company Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/company/:company_id",
            "params": [
              {
                "name": "company_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed view of a single company and its team."
        },
        {
          "info": {
            "name": "Get People List",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/people",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of people to return"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Offset for pagination"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a list of all tracked people."
        },
        {
          "info": {
            "name": "Get Organizations List",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/organizations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of organizations to return"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Offset for pagination"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a list of all organizations with velocity metrics."
        },
        {
          "info": {
            "name": "Create Organization",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/organizations",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new organization manually."
        },
        {
          "info": {
            "name": "Sync Signals To Target Graph",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/sync-signals",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of signals to process"
              },
              {
                "name": "detect_tech",
                "value": "",
                "type": "query",
                "description": "Detect tech stacks"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync recent signals into the target graph.\nThis processes raw signals and creates Person/Organization records.\nNow also detects tech stacks from signal content."
        },
        {
          "info": {
            "name": "Sync Signals With Agent",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/agent/sync-signals",
            "headers": [
              {
                "name": "X-Agent-API-Key",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of signals to process"
              },
              {
                "name": "detect_tech",
                "value": "",
                "type": "query",
                "description": "Detect tech stacks"
              }
            ]
          },
          "docs": "Sync Signals With Agent"
        },
        {
          "info": {
            "name": "Get Organization Tech Stack",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/organizations/:org_id/tech-stack",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the detected tech stack for an organization."
        },
        {
          "info": {
            "name": "Detect All Tech Stacks",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/detect-tech-stacks",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of organizations to process"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Detect tech stacks for organizations that don't have them yet."
        },
        {
          "info": {
            "name": "Update Person",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/people/:person_id",
            "params": [
              {
                "name": "person_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a person's information, including organization assignment."
        },
        {
          "info": {
            "name": "Dashboard Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/dashboard/health"
          },
          "docs": "Health check for dashboard API"
        }
      ]
    },
    {
      "info": {
        "name": "github-org-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Github Organizations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/organizations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search organization names"
              },
              {
                "name": "min_targets",
                "value": "",
                "type": "query",
                "description": "Minimum target count"
              },
              {
                "name": "min_members",
                "value": "",
                "type": "query",
                "description": "Minimum member count"
              },
              {
                "name": "topic_filter",
                "value": "",
                "type": "query",
                "description": "Filter by topic (e.g., 'fintech', 'kubernetes')"
              },
              {
                "name": "company_size",
                "value": "",
                "type": "query",
                "description": "Filter by company size category"
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query",
                "description": "Sort by: target_count, member_count, followers, relevance_score"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List GitHub organizations with intelligence and target counts"
        },
        {
          "info": {
            "name": "Get Github Organization Details",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/organizations/:login",
            "params": [
              {
                "name": "login",
                "value": "",
                "type": "path"
              },
              {
                "name": "include_targets",
                "value": "",
                "type": "query",
                "description": "Include target list"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed information about a specific GitHub organization"
        },
        {
          "info": {
            "name": "Get Github Org Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get comprehensive GitHub organization intelligence statistics"
        },
        {
          "info": {
            "name": "Refresh Github Org Intelligence",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/refresh-intelligence",
            "params": [
              {
                "name": "github_token",
                "value": "",
                "type": "query",
                "description": "Optional GitHub token for higher rate limits"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Refresh GitHub organization intelligence (runs in background)"
        },
        {
          "info": {
            "name": "List Popular Topics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/topics",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "min_org_count",
                "value": "",
                "type": "query",
                "description": "Minimum number of organizations using this topic"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List most popular topics across tracked GitHub organizations"
        },
        {
          "info": {
            "name": "Get Company Size Distribution",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/github-orgs/company-sizes",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get distribution of company sizes we're tracking"
        }
      ]
    },
    {
      "info": {
        "name": "Enhanced RAG",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Hybrid Search",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/search",
            "headers": [
              {
                "name": "Authorization",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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 —\nan API key is bound to exactly one org, so retrieval stays tenant-isolated."
        },
        {
          "info": {
            "name": "Generate Content Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/generate-stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Generate With Hybrid Rag",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Generate With Gypsum And Rag Non Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/generate-with-gypsum",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "NON-STREAMING content generation using Gypsum + RAG.\nReturns complete content in a single response."
        },
        {
          "info": {
            "name": "Get Available Strategies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/rag/strategies"
          },
          "docs": "Get information about available search strategies."
        },
        {
          "info": {
            "name": "Get Rag Statistics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/rag/stats/:org_id",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get RAG statistics for an organization.\n\nReturns information about content availability, embeddings, and readiness."
        },
        {
          "info": {
            "name": "Debug Search Strategies",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/debug/search",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query",
                "description": "Search query to debug"
              },
              {
                "name": "org_id",
                "value": "",
                "type": "query",
                "description": "Organization ID"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Debug endpoint to test individual search strategies.\n\nReturns results from each strategy separately for comparison and debugging."
        },
        {
          "info": {
            "name": "Generate With Gypsum And Rag Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/generate-with-gypsum-stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Enhanced streaming content generation using both Gypsum and RAG with real-time output."
        },
        {
          "info": {
            "name": "Sync Gypsum To Rag",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/rag/sync-gypsum",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Gypsum Sync Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/rag/gypsum-sync-status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check if Gypsum data has been synced to RAG and when."
        }
      ]
    },
    {
      "info": {
        "name": "Video Script Generation",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Video Script",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/video-scripts/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Available Companies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-scripts/companies",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get list of companies available for video script generation.\n\nReturns companies in your VoiceForge database with sufficient content\nfor creating quality video scripts."
        },
        {
          "info": {
            "name": "Get Script Templates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-scripts/templates"
          },
          "docs": "Get available video script templates.\n\nReturns the different funnel stages and styles available for video generation."
        },
        {
          "info": {
            "name": "Video Script Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-scripts/health"
          },
          "docs": "Health check for video script generation service"
        }
      ]
    },
    {
      "info": {
        "name": "ai-assistant",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Chat With Assistant",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/ai-assistant/",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Chat with the AI assistant"
        },
        {
          "info": {
            "name": "Get Suggestions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/ai-assistant/suggestions",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get contextual suggestions based on current state"
        },
        {
          "info": {
            "name": "Get Intro Prompts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/ai-assistant/intro-prompts",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get organization-specific suggested prompts for the assistant intro screen."
        },
        {
          "info": {
            "name": "Train Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/ai-assistant/train",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Training endpoint for active learning on content.\nStreams regenerated content and extracts terminology rules from feedback."
        },
        {
          "info": {
            "name": "Apply Training Rules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/ai-assistant/train/apply-rules",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Apply detected rules from training session to Brand Standards.\nCalled when user approves rules from the training drawer."
        }
      ]
    },
    {
      "info": {
        "name": "domains",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Domains",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/domains",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return the domains that already exist in the content index for this org."
        }
      ]
    },
    {
      "info": {
        "name": "well-known",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Context Txt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/well-known/context.txt"
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Generate Llms Txt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/well-known/llms.txt"
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Generate Ontology Jsonld",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/well-known/ontology.jsonld"
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Generate Trust Txt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/well-known/trust.txt"
          },
          "docs": "Generate a trust.txt file for the user's organization.\nDeclares security posture and verifiable credentials."
        },
        {
          "info": {
            "name": "Generate Well Known Files",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/well-known/generate-both",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Generate both context.txt and llms.txt files with custom configuration."
        }
      ]
    },
    {
      "info": {
        "name": "Video Generation",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Complete Video",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/video-generation/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Video Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-generation/status/:video_id",
            "params": [
              {
                "name": "video_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "heygen_video_id",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the status of video generation.\n\nReturns current status, progress, and download URL when complete."
        },
        {
          "info": {
            "name": "Get Available Avatars",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-generation/avatars"
          },
          "docs": "Get list of available HeyGen avatars for video generation."
        },
        {
          "info": {
            "name": "Get Video Templates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-generation/templates"
          },
          "docs": "Get available video templates and settings."
        },
        {
          "info": {
            "name": "Video Generation Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-generation/health"
          },
          "docs": "Health check for video generation service"
        }
      ]
    },
    {
      "info": {
        "name": "Video Script Management",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Save Video Script",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/save",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Save a generated video script for review and editing.\n\nThis allows users to review AI-generated scripts before creating videos."
        },
        {
          "info": {
            "name": "Get Saved Scripts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/scripts",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get user's saved video scripts.\n\nOptionally filter by status: draft, under_review, approved, rejected"
        },
        {
          "info": {
            "name": "Get Script Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/scripts/:script_id",
            "params": [
              {
                "name": "script_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed view of a specific saved script."
        },
        {
          "info": {
            "name": "Edit Video Script",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/scripts/:script_id",
            "params": [
              {
                "name": "script_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Edit a saved video script.\n\nThis resets the script status to 'draft' after editing."
        },
        {
          "info": {
            "name": "Review Video Script",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/scripts/:script_id/review",
            "params": [
              {
                "name": "script_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Review a video script (approve, reject, or request revision).\n\nAvailable statuses: approved, rejected, needs_revision"
        },
        {
          "info": {
            "name": "Generate Video From Script",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/scripts/:script_id/generate-video",
            "params": [
              {
                "name": "script_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "avatar_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "voice_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "background_style",
                "value": "",
                "type": "query"
              },
              {
                "name": "template_style",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate video from an approved script.\n\nThis endpoint creates a video using the saved script content."
        },
        {
          "info": {
            "name": "Video Script Management Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/video-script-management/health"
          },
          "docs": "Health check for video script management service"
        }
      ]
    },
    {
      "info": {
        "name": "unified-discovery",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Discovery Config",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current discovery configuration"
        },
        {
          "info": {
            "name": "Create Or Update Discovery Config",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create or update daily discovery configuration"
        },
        {
          "info": {
            "name": "Delete Discovery Config",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete discovery configuration and cancel scheduled jobs"
        },
        {
          "info": {
            "name": "Run Discovery Now",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/run-now",
            "params": [
              {
                "name": "force",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Run discovery immediately (respects 24-hour limit unless forced)"
        },
        {
          "info": {
            "name": "Get Discovery Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get discovery schedule status and last run info"
        },
        {
          "info": {
            "name": "Get Discovery History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/history",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get history of discovery runs"
        },
        {
          "info": {
            "name": "Test Digest",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/test-digest",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Send a test digest to configured channels"
        }
      ]
    },
    {
      "info": {
        "name": "discovery",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Discovery Insights",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/insights",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "days_back",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Discovery Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/sources",
            "params": [
              {
                "name": "active_only",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Mark Insight Action Taken",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/insights/:insight_id/action",
            "params": [
              {
                "name": "insight_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Patterns By Type",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/discovery/patterns/:pattern_type",
            "params": [
              {
                "name": "pattern_type",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        }
      ]
    },
    {
      "info": {
        "name": "context-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Process Content With Intelligence",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/process",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Process Content Immediate",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/process/immediate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Process content immediately (for smaller content)"
        },
        {
          "info": {
            "name": "List Context Streams",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams",
            "params": [
              {
                "name": "include_public",
                "value": "",
                "type": "query",
                "description": "Include public streams"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List available context streams"
        },
        {
          "info": {
            "name": "Create Context Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new context stream"
        },
        {
          "info": {
            "name": "Refresh Gypsum Messaging Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/gypsum-messaging",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Refresh Competitor Intelligence Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/competitor-intelligence",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Touch Context Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/:stream_id/touch",
            "params": [
              {
                "name": "stream_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Touch a context stream to refresh the 'last_accessed' timestamp."
        },
        {
          "info": {
            "name": "Refresh Context Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/:stream_id/refresh",
            "params": [
              {
                "name": "stream_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "chunk_size",
                "value": "",
                "type": "query",
                "description": "Override chunk size (tokens)"
              },
              {
                "name": "chunk_overlap",
                "value": "",
                "type": "query",
                "description": "Override chunk overlap (tokens)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Rebuilds the chunk/embedding data for a context stream."
        },
        {
          "info": {
            "name": "Purge Context Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/:stream_id/purge",
            "params": [
              {
                "name": "stream_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Purge all derived content for a stream — chunks, embeddings, versions —\nwhile keeping the stream so Refresh can repopulate it. Tenant-scoped."
        },
        {
          "info": {
            "name": "Get Stream Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/:stream_id",
            "params": [
              {
                "name": "stream_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed information about a specific stream including quality metrics"
        },
        {
          "info": {
            "name": "Get Stream Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/streams/:stream_id/context",
            "params": [
              {
                "name": "stream_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "query",
                "value": "",
                "type": "query",
                "description": "Additional query filter"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum chunks to return"
              },
              {
                "name": "token_limit",
                "value": "",
                "type": "query",
                "description": "Maximum total tokens"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get context chunks for a specific stream"
        },
        {
          "info": {
            "name": "Generate Context Txt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/context.txt",
            "params": [
              {
                "name": "stream_ids",
                "value": "",
                "type": "query",
                "description": "Context stream IDs"
              },
              {
                "name": "purpose",
                "value": "",
                "type": "query",
                "description": "Purpose of context"
              },
              {
                "name": "technical_level",
                "value": "",
                "type": "query",
                "description": "Technical level"
              },
              {
                "name": "industry",
                "value": "",
                "type": "query",
                "description": "Industry focus"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate context.txt file for AI agents"
        },
        {
          "info": {
            "name": "Optimize Chunk",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/chunks/optimize",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Optimize a chunk for specific token window (including 18-token challenge)"
        },
        {
          "info": {
            "name": "Rerank Chunks",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/chunks/rerank",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Rerank chunks based on custom criteria"
        },
        {
          "info": {
            "name": "Override Chunk Ranking",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/chunks/override-ranking",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Override ranking for specific chunk"
        },
        {
          "info": {
            "name": "Get Metadata Coverage",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/analytics/metadata-coverage",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get analytics on metadata coverage across content"
        },
        {
          "info": {
            "name": "Get Task Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/task/:task_id",
            "params": [
              {
                "name": "task_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of async task"
        },
        {
          "info": {
            "name": "Get Chunk Version History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/chunks/versions/:block_label",
            "params": [
              {
                "name": "block_label",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get version history for a specific content block (e.g., 'Headline', 'Persona: CTO')"
        },
        {
          "info": {
            "name": "Get Current Chunks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-intelligence/chunks/current",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all current (latest version) chunks, optionally filtered by content_type"
        }
      ]
    },
    {
      "info": {
        "name": "Strategy Pipeline",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/health"
          },
          "docs": "Health"
        },
        {
          "info": {
            "name": "List Engagements",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Engagements"
        },
        {
          "info": {
            "name": "Create Engagement",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create Engagement"
        },
        {
          "info": {
            "name": "Usage",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/usage",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Per-user + per-source token usage for the caller's org (metering/cost)."
        },
        {
          "info": {
            "name": "Get Org Key",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/org-key",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Whether this org runs on its own Anthropic key (BYOK) or the platform key."
        },
        {
          "info": {
            "name": "Set Org Key",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/org-key",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Set Org Key"
        },
        {
          "info": {
            "name": "Clear Org Key",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/org-key",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Remove BYOK → fall back to the platform key."
        },
        {
          "info": {
            "name": "Get Engagement",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements/:engagement_id",
            "params": [
              {
                "name": "engagement_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Engagement"
        },
        {
          "info": {
            "name": "Run",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements/:engagement_id/run",
            "params": [
              {
                "name": "engagement_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Run"
        },
        {
          "info": {
            "name": "Resume",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements/:engagement_id/resume",
            "params": [
              {
                "name": "engagement_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Resume"
        },
        {
          "info": {
            "name": "Stream",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/v1/strategy/engagements/:engagement_id/stream",
            "params": [
              {
                "name": "engagement_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "SSE live pulse feed — 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."
        }
      ]
    },
    {
      "info": {
        "name": "target-graph",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Organization Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/organizations/:org_id",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed information about a specific organization."
        },
        {
          "info": {
            "name": "Get Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get target graph statistics"
        },
        {
          "info": {
            "name": "List Organizations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/organizations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search organization names"
              },
              {
                "name": "min_members",
                "value": "",
                "type": "query",
                "description": "Minimum member count"
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query",
                "description": "Sort by: member_count, total_signals, last_updated_at"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all discovered organizations"
        },
        {
          "info": {
            "name": "List People",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/people",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search names"
              },
              {
                "name": "organization_id",
                "value": "",
                "type": "query",
                "description": "Filter by organization ID"
              },
              {
                "name": "has_contact",
                "value": "",
                "type": "query",
                "description": "Has contact info"
              },
              {
                "name": "min_signals",
                "value": "",
                "type": "query",
                "description": "Minimum signal count"
              },
              {
                "name": "repository_filter",
                "value": "",
                "type": "query",
                "description": "Filter by repository"
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query",
                "description": "Sort by: total_signals, last_signal_at"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all discovered people"
        },
        {
          "info": {
            "name": "Framework Personas",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/framework-personas",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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 — intended persona vs. who's actually out there."
        },
        {
          "info": {
            "name": "Discover Decision Makers",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/discover-decision-makers",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover decision makers on LinkedIn for a specific organization"
        },
        {
          "info": {
            "name": "Get High Value Targets",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/high-value-targets",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Identify High Value Targets (companies/orgs with multiple developers)\nbased on signal analysis."
        },
        {
          "info": {
            "name": "Get Hvt Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/high-value-targets/summary",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get HVT rollup summary by CRM stage for CMO dashboard.\nReturns counts and totals by pipeline phase."
        },
        {
          "info": {
            "name": "Log Interaction",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/organizations/:target_org_id/interactions",
            "params": [
              {
                "name": "target_org_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Log an interaction with an organization (call, email, meeting, etc.)"
        },
        {
          "info": {
            "name": "Update Hypothesis",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/organizations/:target_org_id/hypothesis",
            "params": [
              {
                "name": "target_org_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update sales hypothesis for an organization (F.I.R.E. methodology)"
        },
        {
          "info": {
            "name": "Get Organization Details",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/organizations/:target_org_id/details",
            "params": [
              {
                "name": "target_org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get full organization details including hypothesis and interaction history"
        },
        {
          "info": {
            "name": "Get Clustering Modes",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/clustering-modes"
          },
          "docs": "Get available clustering modes for the graph visualization."
        },
        {
          "info": {
            "name": "Get Clustered Graph",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/graph-clustered",
            "params": [
              {
                "name": "clustering_mode",
                "value": "",
                "type": "query",
                "description": "Clustering mode: none, tech_stack, journey_stage, industry, crm_stage, subreddit, github_repo"
              },
              {
                "name": "limit_orgs",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit_people",
                "value": "",
                "type": "query"
              },
              {
                "name": "include_people",
                "value": "",
                "type": "query",
                "description": "Include people nodes"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Load Demo Data",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/load-demo-data",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Load demo data to simulate CRM integration.\nCreates sample organizations, people, and signals for demonstration."
        },
        {
          "info": {
            "name": "Clear Demo Data",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/target-graph/clear-demo-data",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Clear demo data from the target graph.\nOnly removes data that was created by the demo loader."
        }
      ]
    },
    {
      "info": {
        "name": "targetgraph",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Organizations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/targetGraph/listOrganizations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of organizations to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get organizations in the format expected by the frontend."
        },
        {
          "info": {
            "name": "List People",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/targetGraph/listPeople",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of people to return"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get people in the format expected by the frontend."
        },
        {
          "info": {
            "name": "List Repositories",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/targetGraph/listRepositories",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get repositories being monitored.\nFor now, return empty as we're not tracking repos separately."
        },
        {
          "info": {
            "name": "Get Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/targetGraph/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get overall statistics for the target graph."
        }
      ]
    },
    {
      "info": {
        "name": "ontology",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Packs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/ontology/packs",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Ontology packs present in this org's brand graph (e.g. mmm)."
        },
        {
          "info": {
            "name": "Get Graph",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/ontology/graph",
            "params": [
              {
                "name": "ontology",
                "value": "",
                "type": "query",
                "description": "Filter to one ontology pack, e.g. 'mmm'"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "The knowledge graph as {nodes, edges}. Edges carry numeric model output\n(e.g. contributes_to.incr_roas); nodes carry type + provenance."
        },
        {
          "info": {
            "name": "Resolve Audience People",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/ontology/audience/people",
            "params": [
              {
                "name": "label",
                "value": "",
                "type": "query",
                "description": "Audience node label, e.g. 'In-market truck intenders'"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "lusha-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Enrich Person",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/enrich/person",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Enrich Company",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/enrich/company",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Ai Powered Prospecting",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/prospect/ai-discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Track Champion Changes",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/champion/track",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Bulk Enrichment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/enrich/bulk",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Enrichment Insights",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/insights/summary",
            "params": [
              {
                "name": "time_period",
                "value": "",
                "type": "query",
                "description": "Time period: 1d, 7d, 30d"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get insights from enrichment activities\n\nReturns:\n- Enrichment statistics\n- Top buying signals detected\n- Champion movement trends\n- AI-generated recommendations"
        },
        {
          "info": {
            "name": "Get Usage Statistics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/usage/stats",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Lusha API usage statistics"
        },
        {
          "info": {
            "name": "Get Enrichment Queue Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/enrichment-queue/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the status of the automatic organization enrichment queue"
        },
        {
          "info": {
            "name": "Process Enrichment Queue",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/lusha-intelligence/enrichment-queue/process",
            "params": [
              {
                "name": "batch_size",
                "value": "",
                "type": "query",
                "description": "Number of organizations to enrich"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Process the organization enrichment queue.\n\nThis enriches organizations that were discovered through signals\nbut haven't been enriched yet."
        }
      ]
    },
    {
      "info": {
        "name": "crm",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Available Crms",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm/available",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get list of available CRM integrations and their requirements"
        },
        {
          "info": {
            "name": "Get Available Crms Post",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/available",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Available Crms Post"
        },
        {
          "info": {
            "name": "Available Crms Options",
            "type": "http"
          },
          "http": {
            "method": "OPTIONS",
            "url": "https://voice-forge-production.up.railway.app/api/crm/available"
          },
          "docs": "Available Crms Options"
        },
        {
          "info": {
            "name": "Get Crm Config",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current CRM configuration for organization"
        },
        {
          "info": {
            "name": "Configure Crm",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Configure CRM for organization"
        },
        {
          "info": {
            "name": "Sync Contacts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/sync/contacts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync contacts between VoiceForge and CRM"
        },
        {
          "info": {
            "name": "Sync Contacts Immediate",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/sync/contacts/immediate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync contacts immediately (for small batches)"
        },
        {
          "info": {
            "name": "Sync Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/sync/signals",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync signals as CRM activities"
        },
        {
          "info": {
            "name": "Add Contacts To Campaign",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/campaigns/add-contacts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add contacts to a CRM campaign/list"
        },
        {
          "info": {
            "name": "Get Sync Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm/sync/status/:task_id",
            "params": [
              {
                "name": "task_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of a sync task"
        },
        {
          "info": {
            "name": "Sync From Crm",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm/sync-from-crm",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync data FROM CRM into the Target Graph"
        },
        {
          "info": {
            "name": "Test Crm Connection",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm/test-connection",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Test CRM connection for current organization"
        }
      ]
    },
    {
      "info": {
        "name": "content-analytics",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Content Performance Overview",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/performance/overview",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Persona Content Engagement",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/persona-engagement",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              },
              {
                "name": "persona_id",
                "value": "",
                "type": "query",
                "description": "Filter by specific persona ID"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Content Gaps Analysis",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/content-gaps",
            "params": [
              {
                "name": "threshold",
                "value": "",
                "type": "query",
                "description": "Minimum content count threshold"
              },
              {
                "name": "persona_id",
                "value": "",
                "type": "query",
                "description": "Focus on specific persona"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Realtime Content Metrics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/realtime-metrics",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Content Optimization Insights",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/optimization-insights",
            "params": [
              {
                "name": "content_id",
                "value": "",
                "type": "query",
                "description": "Get insights for specific content"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Limit number of recommendations"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get specific optimization recommendations for content.\n\nReturns:\n- Content performance analysis\n- Specific improvement recommendations\n- Expected impact estimates\n- Implementation priorities"
        },
        {
          "info": {
            "name": "Get Content Analytics Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/summary",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a comprehensive summary of content analytics.\nCombines all major metrics into a single dashboard-ready response."
        },
        {
          "info": {
            "name": "Sync Ga Metrics",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/ga-sync",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Stream GA metrics so the UI can show live analytics population."
        },
        {
          "info": {
            "name": "Seed Demo Content Performance",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/seed-demo",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Seed demo content performance data for testing."
        },
        {
          "info": {
            "name": "Get Traffic Trends",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/traffic-trends",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get daily traffic trends for total web and blog traffic.\nData comes from Google Analytics."
        },
        {
          "info": {
            "name": "Get Gated Content Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/gated-content",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get gated content performance stats.\nData comes from HubSpot forms and landing pages.\nReturns views, conversions, and rates by content item and group."
        },
        {
          "info": {
            "name": "Get Campaign Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-analytics/campaigns",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        }
      ]
    },
    {
      "info": {
        "name": "CRM Context Stream",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Crm Context Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm-context/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Available Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm-context/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get available CRM sources and their configuration status for this org."
        },
        {
          "info": {
            "name": "Sync Hubspot To Context",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm-context/sync/hubspot",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days of data to sync"
              },
              {
                "name": "include_mqls",
                "value": "",
                "type": "query"
              },
              {
                "name": "include_campaigns",
                "value": "",
                "type": "query"
              },
              {
                "name": "include_gated_content",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Sync Demo Data",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crm-context/sync/demo",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days of data to generate"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync demo CRM data into the context stream.\n\nUseful for testing and demonstrations when no CRM is connected."
        },
        {
          "info": {
            "name": "Get Context By Type",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crm-context/context/:context_type",
            "params": [
              {
                "name": "context_type",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        }
      ]
    },
    {
      "info": {
        "name": "analytics",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Google Analytics Config",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/analytics/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return the GA4 configuration saved for the current org."
        },
        {
          "info": {
            "name": "Save Google Analytics Config",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/analytics/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Persist the GA4 property and credentials for this organization."
        },
        {
          "info": {
            "name": "Test Google Analytics Connection",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/analytics/config/test",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Run a minimal GA4 query to verify this org's credentials + property ID."
        }
      ]
    },
    {
      "info": {
        "name": "llm-exports",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Download Llms Txt",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/llms-txt",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "include_paths",
                "value": "",
                "type": "query",
                "description": "Comma-separated path prefixes"
              },
              {
                "name": "exclude_paths",
                "value": "",
                "type": "query",
                "description": "Comma-separated path prefixes"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Download Llms Txt"
        },
        {
          "info": {
            "name": "Export Ai Friendly Pack",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/ai-export",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export Ai Friendly Pack"
        },
        {
          "info": {
            "name": "Publish Llms To Webflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/llms-txt/webflow",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Publish Llms To Webflow"
        },
        {
          "info": {
            "name": "Publish Ai Export To Webflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/crawl/:crawl_id/ai-export/webflow",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Publish Ai Export To Webflow"
        }
      ]
    },
    {
      "info": {
        "name": "airops",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Airops Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/airops/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check AirOps integration status."
        },
        {
          "info": {
            "name": "Sync Messaging Framework",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/airops/sync/messaging-framework",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync the Messaging Framework context stream to AirOps vector store.\n\nPushes personas, use cases, products, and positioning documents."
        },
        {
          "info": {
            "name": "Sync All Streams",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/airops/sync/all-streams",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync all context streams to AirOps vector store.\n\nPushes:\n- Messaging Framework (personas, use cases, products, positioning)\n- Competitor Intelligence\n- Social Signals"
        },
        {
          "info": {
            "name": "Push Chunks To Airops",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/airops/push-chunks",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Push specific context stream chunks to AirOps.\n\nThis gives fine-grained control over what gets synced."
        },
        {
          "info": {
            "name": "Search Airops",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/airops/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search the AirOps vector store.\n\nReturns semantically similar documents to the query."
        },
        {
          "info": {
            "name": "Export Content Topics Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/airops/export/content-topics",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export content topics as CSV for AirOps Grid import."
        },
        {
          "info": {
            "name": "Export Geo Prompts Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/airops/export/geo-prompts",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export GEO prompts as CSV for AirOps Grid import."
        },
        {
          "info": {
            "name": "Export Full Content Grid Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/airops/export/full-grid",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export comprehensive content grid CSV for AirOps.\n\nCreates a Persona × Use Case × Product matrix with all workflow columns."
        }
      ]
    },
    {
      "info": {
        "name": "bootstrap",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Start Bootstrap",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/bootstrap/start",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start the organization bootstrap process.\n\nReturns a streaming response with progress updates."
        },
        {
          "info": {
            "name": "Generate Element",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/bootstrap/generate-element",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Bootstrap Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/bootstrap/status/:org_id",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the current bootstrap status for an organization.\n\nChecks what's set up and what's missing."
        }
      ]
    },
    {
      "info": {
        "name": "playbooks",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Playbooks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/playbooks"
          },
          "docs": "List all available playbooks."
        },
        {
          "info": {
            "name": "Get Playbook By Slug",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/playbooks/:slug",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific playbook by slug."
        },
        {
          "info": {
            "name": "Get Campaign Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/playbooks/:slug/campaign-context",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              },
              {
                "name": "target_company",
                "value": "",
                "type": "query",
                "description": "Target company name for personalization"
              },
              {
                "name": "target_persona",
                "value": "",
                "type": "query",
                "description": "Target persona/role"
              }
            ]
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Email Sequence",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/playbooks/:slug/email-sequence",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              },
              {
                "name": "sequence_type",
                "value": "",
                "type": "query",
                "description": "Type of sequence"
              }
            ]
          },
          "docs": "Get email sequence templates for a playbook."
        },
        {
          "info": {
            "name": "Get Objection Handler",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/playbooks/:slug/objection-handler",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              },
              {
                "name": "objection",
                "value": "",
                "type": "query",
                "description": "Specific objection to handle"
              }
            ]
          },
          "docs": "Get objection handling guidance for a playbook."
        }
      ]
    },
    {
      "info": {
        "name": "government-signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Gov Keywords",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/keywords",
            "params": [
              {
                "name": "verticals",
                "value": "",
                "type": "query",
                "description": "Comma-separated vertical slugs to filter"
              }
            ]
          },
          "docs": "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 → change your signals."
        },
        {
          "info": {
            "name": "Discover Sam Gov Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/discover/sam",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)."
        },
        {
          "info": {
            "name": "Discover Ferc Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/discover/ferc",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Discover All Gov Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/discover/all",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover signals from all government sources\n\nRuns SAM.gov and FERC discovery in parallel for comprehensive coverage."
        },
        {
          "info": {
            "name": "Get Gov Signals Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/status"
          },
          "docs": "Check status of government signal sources"
        },
        {
          "info": {
            "name": "Health Check",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/health"
          },
          "docs": "Health check for government signals API"
        },
        {
          "info": {
            "name": "Get Buyer Algorithm",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/buyer-algorithm"
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Vertical Algorithm",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/buyer-algorithm/:vertical",
            "params": [
              {
                "name": "vertical",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get the GTM Buyer Algorithm for a specific vertical.\n\nReturns interpretation rules, priority signals, and recommended\nactions for the specified vertical."
        },
        {
          "info": {
            "name": "Interpret Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/signals/gov/interpret",
            "params": [
              {
                "name": "vertical",
                "value": "",
                "type": "query",
                "description": "Vertical context for interpretation"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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"
        }
      ]
    },
    {
      "info": {
        "name": "G2",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "G2 Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/status"
          },
          "docs": "Check if G2 integration is configured"
        },
        {
          "info": {
            "name": "Get G2 Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/signals",
            "params": [
              {
                "name": "include_competitors",
                "value": "",
                "type": "query",
                "description": "Include competitor G2 data"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get G2 signals for the current org.\nAuto-discovers company from org settings or Gypsum positioning data."
        },
        {
          "info": {
            "name": "Search Products",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/search",
            "params": [
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Product name to search"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search for products by name to find product IDs"
        },
        {
          "info": {
            "name": "Get Product",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get product info from G2"
        },
        {
          "info": {
            "name": "Get Product Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/summary",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get product summary with ratings"
        },
        {
          "info": {
            "name": "Get Reviews",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/reviews",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "page",
                "value": "",
                "type": "query"
              },
              {
                "name": "per_page",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get reviews for a product"
        },
        {
          "info": {
            "name": "Get Competitors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/competitors",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get competitor products from G2"
        },
        {
          "info": {
            "name": "Get Dashboard Data",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/dashboard",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all G2 data for dashboard display"
        },
        {
          "info": {
            "name": "Get Buyer Intent",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/buyer-intent",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get buyer intent signals"
        },
        {
          "info": {
            "name": "Get Market Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/market-signals",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get market signals"
        },
        {
          "info": {
            "name": "Get Features",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/features",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get feature ratings"
        },
        {
          "info": {
            "name": "Get Competitive Comparison",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/product/:product_id/competitive-comparison",
            "params": [
              {
                "name": "product_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get full competitive comparison with ratings and features"
        },
        {
          "info": {
            "name": "Scan G2",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/g2/scan",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Scan Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/g2/scan/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current G2 scan status - shows what's been scanned"
        }
      ]
    },
    {
      "info": {
        "name": "competitive-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Scan Competitor",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/scan",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Run a full competitive intelligence scan on a competitor.\nPersists results to the competitor record if it exists."
        },
        {
          "info": {
            "name": "Scan Competitors Batch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/scan-batch",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Scan multiple competitors and return comparison.\nPersists results to competitor records."
        },
        {
          "info": {
            "name": "Quick Scan Domain",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/quick-scan/:domain",
            "params": [
              {
                "name": "domain",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Quick agent-readiness scan of a domain (no Reddit/GitHub)."
        },
        {
          "info": {
            "name": "Monitor Competitor Messaging",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/monitor/messaging/:domain",
            "params": [
              {
                "name": "domain",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Monitor a competitor's messaging by extracting their positioning framework using Claude.\nThis is the core of marketing observability - understanding how competitors position themselves."
        },
        {
          "info": {
            "name": "Compare Positioning",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/monitor/compare",
            "params": [
              {
                "name": "competitor_domain",
                "value": "",
                "type": "query",
                "description": "Competitor domain to compare against"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Compare your messaging framework against a competitor's.\nProvides strategic insights for differentiation."
        },
        {
          "info": {
            "name": "Generate Observability Report",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/monitor/full-report",
            "params": [
              {
                "name": "include_messaging",
                "value": "",
                "type": "query",
                "description": "Extract messaging framework"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Generate a complete marketing observability report for a competitor.\nCombines: messaging extraction, agent readiness, market signals, and positioning comparison."
        },
        {
          "info": {
            "name": "Get Analyst Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/monitor/analyst-context/:domain",
            "params": [
              {
                "name": "domain",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get analyst report context for a competitor (if available).\nSearches stored analyst reports for mentions and insights."
        },
        {
          "info": {
            "name": "List Analyst Reports",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/analyst-reports"
          },
          "docs": "List all available analyst reports in the system."
        },
        {
          "info": {
            "name": "Extract Analyst Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/analyst-reports/:filename/extract",
            "params": [
              {
                "name": "filename",
                "value": "",
                "type": "path"
              },
              {
                "name": "competitors",
                "value": "",
                "type": "query",
                "description": "Comma-separated list of competitors to focus on"
              }
            ]
          },
          "docs": "Extract competitive intelligence from a specific analyst report using Claude."
        },
        {
          "info": {
            "name": "Generate Analyst Briefing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/analyst-reports/briefing",
            "params": [
              {
                "name": "your_company",
                "value": "",
                "type": "query",
                "description": "Your company name"
              },
              {
                "name": "competitors",
                "value": "",
                "type": "query",
                "description": "Comma-separated list of competitors"
              }
            ]
          },
          "docs": "Generate a competitive briefing based on all available analyst reports.\nAggregates insights about you and your competitors across all reports."
        },
        {
          "info": {
            "name": "Get Cadence Score",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/cadence/:domain",
            "params": [
              {
                "name": "domain",
                "value": "",
                "type": "path"
              },
              {
                "name": "company_name",
                "value": "",
                "type": "query",
                "description": "Company name for LinkedIn lookup"
              }
            ]
          },
          "docs": "Get content marketing cadence score for a competitor.\nMeasures blog freshness, LinkedIn activity, and overall content velocity."
        },
        {
          "info": {
            "name": "Compare Cadence Scores",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitive-intel/cadence/compare",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Compare cadence scores across multiple competitors.\nReturns ranked list by content marketing velocity."
        }
      ]
    },
    {
      "info": {
        "name": "Competitor Intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Resolve Company Mention",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/resolve",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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.)"
        },
        {
          "info": {
            "name": "Resolve Company Mentions Batch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/resolve/batch",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Resolve multiple mentions in batch.\n\nEfficient for processing feeds of content."
        },
        {
          "info": {
            "name": "Suggest Competitor Matches",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/resolve/suggest",
            "params": [
              {
                "name": "text",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get multiple possible competitor matches with confidence scores.\n\nUseful for:\n- UI autocomplete/suggestions\n- Manual disambiguation when confidence is low"
        },
        {
          "info": {
            "name": "Get All Company Identities",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/identities",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get canonical identities for all competitors.\n\nUseful for debugging and understanding how companies are identified."
        },
        {
          "info": {
            "name": "Discover Competitors Simple",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "AI-powered competitor discovery using org context.\n\nUses existing context streams to reason about competitive landscape.\nReturns competitors directly (non-streaming)."
        },
        {
          "info": {
            "name": "Discover Competitors Stream",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/discover/stream",
            "params": [
              {
                "name": "additional_context",
                "value": "",
                "type": "query",
                "description": "Extra context for pivots/changes"
              },
              {
                "name": "competitors",
                "value": "",
                "type": "query",
                "description": "Comma-separated confirmed competitor names — analysis focuses on these instead of discovering"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Add Multiple Competitors",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/add-multiple",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add multiple competitors at once (from discovery results)."
        },
        {
          "info": {
            "name": "Get Landscape Analyses",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/landscape-analysis",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get recent competitive landscape analyses."
        },
        {
          "info": {
            "name": "Save Landscape Analysis",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/landscape-analysis",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Save a competitive landscape analysis for future reference and context.\nThe analysis is also ingested into the RAG pipeline for use in content generation."
        },
        {
          "info": {
            "name": "Get Strategy Analyses",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/strategy-analysis/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get recent strategy analyses for a specific competitor."
        },
        {
          "info": {
            "name": "Save Strategy Analysis",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/strategy-analysis/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Save a strategy analysis for a specific competitor.\nThe analysis is also ingested into the RAG pipeline for competitive context."
        },
        {
          "info": {
            "name": "Debug Landscape Analysis Schema",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/debug/schema",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Debug endpoint to check the competitive_landscape_analyses table schema.\nReturns the column names and types."
        },
        {
          "info": {
            "name": "Search Github Organizations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/github/search",
            "params": [
              {
                "name": "pattern",
                "value": "",
                "type": "query",
                "description": "Search pattern (e.g., 'confluent' or 'confluent*')"
              },
              {
                "name": "include_users",
                "value": "",
                "type": "query",
                "description": "Include user accounts (many companies use these)"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Github Org Info",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/github/org/:org_login",
            "params": [
              {
                "name": "org_login",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Dashboard",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/dashboard",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get competitor intelligence dashboard summary"
        },
        {
          "info": {
            "name": "Get Competitor Comparison",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/comparison",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "Get Competitor Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/context/stream",
            "params": [
              {
                "name": "view",
                "value": "",
                "type": "query",
                "description": "Context view: full, positioning, battlecard, technical, market, summary"
              },
              {
                "name": "tier",
                "value": "",
                "type": "query",
                "description": "Filter by tier"
              },
              {
                "name": "max_tokens",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get competitor context for content generation"
        },
        {
          "info": {
            "name": "Get Positioning Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/context/positioning",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get positioning context for primary competitors"
        },
        {
          "info": {
            "name": "List Alerts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/alerts",
            "params": [
              {
                "name": "unacknowledged_only",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get competitor alerts"
        },
        {
          "info": {
            "name": "Acknowledge Alert",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/alerts/:alert_id/acknowledge",
            "params": [
              {
                "name": "alert_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Acknowledge an alert"
        },
        {
          "info": {
            "name": "Trigger Scan All",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/scan/all",
            "params": [
              {
                "name": "tier",
                "value": "",
                "type": "query",
                "description": "Only scan this tier"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Trigger positioning scans for all competitors"
        },
        {
          "info": {
            "name": "Sync All Signal Sources",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/sync-signal-sources/all",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync signal sources for all competitors in the organization"
        },
        {
          "info": {
            "name": "List Competitors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors",
            "params": [
              {
                "name": "tier",
                "value": "",
                "type": "query",
                "description": "Filter by tier"
              },
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all competitors for the organization"
        },
        {
          "info": {
            "name": "Add Competitor",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add a new competitor to track"
        },
        {
          "info": {
            "name": "Get Competitor",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get full competitor details"
        },
        {
          "info": {
            "name": "Update Competitor",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update competitor settings"
        },
        {
          "info": {
            "name": "Delete Competitor",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Remove a competitor from tracking"
        },
        {
          "info": {
            "name": "Get Competitor Signal Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/signal-sources",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all signal sources linked to a competitor"
        },
        {
          "info": {
            "name": "Sync Competitor Signal Sources Endpoint",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/sync-signal-sources",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Manually sync signal sources for a competitor"
        },
        {
          "info": {
            "name": "Trigger Scan",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/scan",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Trigger a positioning scan for a competitor (quick - extracts messaging/positioning)"
        },
        {
          "info": {
            "name": "Trigger Deep Scan",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/deep-scan",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Trigger a deep scan for a competitor (slow - Lusha enrichment, leadership, funding, battlecard)"
        },
        {
          "info": {
            "name": "Get Scan Progress",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/scan/progress",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get progress of an ongoing scan"
        },
        {
          "info": {
            "name": "Get Competitor Activity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/activity",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get activity feed for a competitor"
        },
        {
          "info": {
            "name": "Get Competitor Authors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/authors",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Competitor Strategic Moves",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/strategic-moves",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "months_back",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Competitor Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/jobs",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Fetch job listings for a competitor.\nUses Playwright for JS-rendered job boards (Ashby, Lever, Greenhouse, etc.)"
        },
        {
          "info": {
            "name": "Get Competitor Linkedin Mentions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/linkedin",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search for LinkedIn content mentioning a competitor.\nUses DuckDuckGo with site:linkedin.com query (no API key needed)."
        },
        {
          "info": {
            "name": "Get Competitor Youtube Channel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/youtube-channel",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "max_results",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get videos from the competitor's official YouTube channel.\nThis returns their own content (Key Creators), not influencer mentions."
        },
        {
          "info": {
            "name": "Analyze Competitor Strategy",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/analyze-strategy",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)."
        },
        {
          "info": {
            "name": "Check Competitor Updates",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/check-updates",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Trigger a check for new competitor updates (sitemap, GitHub, etc.)"
        },
        {
          "info": {
            "name": "Discover Competitor Sources",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/discover-sources",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Auto-discover RSS, GitHub, and events sources for a competitor"
        },
        {
          "info": {
            "name": "Get Battlecard",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/battlecard",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get sales battlecard for a competitor"
        },
        {
          "info": {
            "name": "Get Competitor History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/history",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get historical snapshots for trending"
        },
        {
          "info": {
            "name": "Search G2 Products",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/g2/search",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "q",
                "value": "",
                "type": "query",
                "description": "Search query (defaults to competitor name)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Search G2 for products matching the competitor."
        },
        {
          "info": {
            "name": "Link G2 Product",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/g2/link",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Link a G2 product to a competitor."
        },
        {
          "info": {
            "name": "Get G2 Themes",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/g2/themes",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get cached G2 theme analysis for a competitor."
        },
        {
          "info": {
            "name": "Analyze G2 Themes",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/g2/analyze-themes",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Analyze G2 reviews and extract positive/negative themes."
        },
        {
          "info": {
            "name": "Create Topics From G2 Themes",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/competitors/:competitor_id/g2/create-topics",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create ContentTopics from G2 review themes."
        }
      ]
    },
    {
      "info": {
        "name": "Pitch Deck Generator",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Deck Templates",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/templates",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List available deck templates."
        },
        {
          "info": {
            "name": "Generate With Positioning",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/position",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Generate With Positioning Html",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/position/html",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate a pitch deck with positioning and return as HTML."
        },
        {
          "info": {
            "name": "Generate Pitch Deck",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Generate Pitch Deck Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/generate/stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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\": {...}}"
        },
        {
          "info": {
            "name": "Generate Pitch Deck Html",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/generate/html",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Preview Website Content",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pitch-deck/preview",
            "params": [
              {
                "name": "url",
                "value": "",
                "type": "query",
                "description": "Website URL to preview"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Preview what content will be extracted from a website.\nUseful for debugging before generating a full deck."
        }
      ]
    },
    {
      "info": {
        "name": "GEO/AEO",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Generate Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/generate-prompts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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, "
        },
        {
          "info": {
            "name": "Generate Prompts Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/generate-prompts/stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Test Single Prompt",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/test-prompt",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Test a single prompt across AI models to check brand visibility.\n\nReturns visibility score and individual model responses."
        },
        {
          "info": {
            "name": "Run Visibility Scan",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/run-scan",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Run Visibility Scan Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/run-scan/stream",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Available Models",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/models"
          },
          "docs": "Get list of available AI models for visibility testing."
        },
        {
          "info": {
            "name": "Get Prompt Categories",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompt-categories"
          },
          "docs": "Get list of prompt categories for organization."
        },
        {
          "info": {
            "name": "Get Session Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/sessions"
          },
          "docs": "Check session status for all AI platforms.\nReturns which platforms have valid sessions for web-based queries."
        },
        {
          "info": {
            "name": "Save Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/sessions/:platform",
            "params": [
              {
                "name": "platform",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Query Mode",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/query-mode"
          },
          "docs": "Get the current query mode (API or Web)."
        },
        {
          "info": {
            "name": "Set Query Mode",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/query-mode/:mode",
            "params": [
              {
                "name": "mode",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Set the query mode (api or web)."
        },
        {
          "info": {
            "name": "List Prompts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts",
            "params": [
              {
                "name": "topic",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "category",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all target prompts for the org."
        },
        {
          "info": {
            "name": "Create Prompt",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new target prompt."
        },
        {
          "info": {
            "name": "Bulk Create Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/bulk",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Bulk create target prompts."
        },
        {
          "info": {
            "name": "Update Prompt",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/:prompt_id",
            "params": [
              {
                "name": "prompt_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a target prompt."
        },
        {
          "info": {
            "name": "Delete Prompt",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/:prompt_id",
            "params": [
              {
                "name": "prompt_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a target prompt."
        },
        {
          "info": {
            "name": "List Topics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/topics",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all topics for the org."
        },
        {
          "info": {
            "name": "Create Topic",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/topics",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new topic."
        },
        {
          "info": {
            "name": "Delete Topic",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/topics/:topic_name",
            "params": [
              {
                "name": "topic_name",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a topic (prompts with this topic will have topic set to 'Uncategorized')."
        },
        {
          "info": {
            "name": "Toggle Continuous Testing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/:prompt_id/continuous-testing",
            "params": [
              {
                "name": "prompt_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "enabled",
                "value": "",
                "type": "query"
              },
              {
                "name": "frequency_minutes",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Mark a prompt for continuous testing.\nThese prompts will be tested on every hourly scan."
        },
        {
          "info": {
            "name": "Bulk Update Schedule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/bulk-schedule",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Bulk enable/disable continuous testing for multiple prompts."
        },
        {
          "info": {
            "name": "Get Continuous Testing Prompts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/continuous",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all prompts marked for continuous testing."
        },
        {
          "info": {
            "name": "Get Latest Visibility Results",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/results/latest",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the latest visibility scan results.\nReturns the most recent snapshot plus top/bottom performing prompts."
        },
        {
          "info": {
            "name": "Get Prompt Responses",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/:prompt_id/responses",
            "params": [
              {
                "name": "prompt_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the last AI responses for a specific prompt.\nShows what each AI model said when tested."
        },
        {
          "info": {
            "name": "Scan Saved Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/scan",
            "params": [
              {
                "name": "topic",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Run visibility scan on saved prompts.\nEither provide prompt_ids or topic to select prompts."
        },
        {
          "info": {
            "name": "Generate And Save Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/prompts/generate-and-save",
            "params": [
              {
                "name": "default_topic",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate prompts from context and save them to the library.\nFetches context from org's Messaging Framework if not provided."
        },
        {
          "info": {
            "name": "Start Visibility Scan",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/scan/start",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Scan Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/scan/:job_id/status",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check the status of an async visibility scan job.\n\nReturns progress, current state, and results when complete."
        },
        {
          "info": {
            "name": "Stream Visibility Guidance",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/guidance/stream",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "List Content Topics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics",
            "params": [
              {
                "name": "source",
                "value": "",
                "type": "query"
              },
              {
                "name": "category",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)."
        },
        {
          "info": {
            "name": "Save Content Topic",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Sync To Airops",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/sync",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Context For Airops",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/context",
            "params": [
              {
                "name": "context_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Search Airops",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/search",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query"
              },
              {
                "name": "context_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "top_k",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "Export Content Topics Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/export/content-topics.csv",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Export Use Cases Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/export/use-cases.csv",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export use cases as CSV for AirOps Grid import.\n\nFetches use cases from Gypsum and formats for content generation workflows."
        },
        {
          "info": {
            "name": "Export Personas Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/export/personas.csv",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export personas as CSV for AirOps Grid import.\n\nFetches personas from Gypsum and formats for targeted content workflows."
        },
        {
          "info": {
            "name": "Export Geo Prompts Csv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/airops/export/geo-prompts.csv",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export generated GEO prompts as CSV for AirOps Grid import.\n\nUseful for batch visibility testing workflows in AirOps."
        },
        {
          "info": {
            "name": "Update Content Topic",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics/:topic_id",
            "params": [
              {
                "name": "topic_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "prompt",
                "value": "",
                "type": "query"
              },
              {
                "name": "category",
                "value": "",
                "type": "query"
              },
              {
                "name": "source",
                "value": "",
                "type": "query"
              },
              {
                "name": "notes",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a content topic's prompt, category, source, or notes."
        },
        {
          "info": {
            "name": "Delete Content Topic",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics/:topic_id",
            "params": [
              {
                "name": "topic_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a content topic (prune from the topic library)."
        },
        {
          "info": {
            "name": "Create Topics From Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics/from-signals",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Create Topics From Competitor",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics/from-competitor/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "activity_types",
                "value": "",
                "type": "query",
                "description": "Filter by activity types"
              },
              {
                "name": "only_significant",
                "value": "",
                "type": "query",
                "description": "Only significant activities"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max activities to process"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Create Topics From All Competitors",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/content-topics/from-all-competitors",
            "params": [
              {
                "name": "only_significant",
                "value": "",
                "type": "query",
                "description": "Only significant activities"
              },
              {
                "name": "days_back",
                "value": "",
                "type": "query",
                "description": "Days to look back"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate content topics from all competitors' recent activities.\n\nScans all active competitors for significant activities and creates\ncontent topics for the backlog."
        },
        {
          "info": {
            "name": "Get Daily Brand Snapshots",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/brand-snapshots/daily",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Weekly Brand Insights",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/brand-snapshots/weekly",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Run Brand Snapshot",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/brand-snapshots/run",
            "params": [
              {
                "name": "company_name",
                "value": "",
                "type": "query"
              },
              {
                "name": "force",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Run Baseline Probe",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/baseline-probe/run",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Baseline Probe History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/baseline-probe/history",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "company_name",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get baseline probe history for charting.\nReturns daily snapshots showing awareness and accuracy trends over time."
        },
        {
          "info": {
            "name": "Get Latest Baseline Probe",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-aeo/baseline-probe/latest",
            "params": [
              {
                "name": "company_name",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the most recent baseline probe results.\nReturns the latest snapshot plus individual model responses."
        }
      ]
    },
    {
      "info": {
        "name": "context-graph",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Context Graph Ontology",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/"
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Context Graph Ontology",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph"
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Jsonld Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/context.jsonld"
          },
          "docs": "Get the JSON-LD context file.\n\nUse this in your JSON-LD documents:\n{\"@context\": \"https://voyant.io/context-graph/context.jsonld\", ...}"
        },
        {
          "info": {
            "name": "Get Claim Types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/claims"
          },
          "docs": "Get all supported claim types."
        },
        {
          "info": {
            "name": "Get Claim Type",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/claims/:claim_id",
            "params": [
              {
                "name": "claim_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific claim type definition."
        },
        {
          "info": {
            "name": "Get Schema",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/schema"
          },
          "docs": "Get the full ontology schema."
        },
        {
          "info": {
            "name": "List Mutations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/mutations",
            "params": [
              {
                "name": "entity_type",
                "value": "",
                "type": "query",
                "description": "Filter by entity type"
              },
              {
                "name": "entity_id",
                "value": "",
                "type": "query",
                "description": "Filter by entity ID"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List context mutations for the organization."
        },
        {
          "info": {
            "name": "Create Mutation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/mutations",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new context mutation with attestations.\n\nThis is the primary API for tracking context changes with provenance."
        },
        {
          "info": {
            "name": "Get Mutation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/mutations/:mutation_id",
            "params": [
              {
                "name": "mutation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific mutation by ID."
        },
        {
          "info": {
            "name": "Create Provenance",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/provenance",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a provenance relationship between entities."
        },
        {
          "info": {
            "name": "Get Entity Provenance",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/entities/:entity_type/:entity_id/provenance",
            "params": [
              {
                "name": "entity_type",
                "value": "",
                "type": "path"
              },
              {
                "name": "entity_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "direction",
                "value": "",
                "type": "query",
                "description": "up (ancestors), down (descendants), or both"
              },
              {
                "name": "depth",
                "value": "",
                "type": "query",
                "description": "How many levels to traverse"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the provenance graph for an entity.\n\nReturns all derivation relationships up to the specified depth."
        },
        {
          "info": {
            "name": "List Policies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/policies",
            "params": [
              {
                "name": "active_only",
                "value": "",
                "type": "query",
                "description": "Only return active policies"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List governance policies for the organization."
        },
        {
          "info": {
            "name": "Create Policy",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/policies",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a governance policy for context changes."
        },
        {
          "info": {
            "name": "Get Policy",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-graph/policies/:policy_id",
            "params": [
              {
                "name": "policy_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific governance policy."
        }
      ]
    },
    {
      "info": {
        "name": "Google Search Console",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Gsc Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check if GSC is connected and available"
        },
        {
          "info": {
            "name": "List Gsc Sites",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/sites",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all verified sites in Google Search Console"
        },
        {
          "info": {
            "name": "Get Search Queries",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/queries",
            "params": [
              {
                "name": "site_url",
                "value": "",
                "type": "query",
                "description": "Site URL from /sites endpoint"
              },
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days to look back"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max queries to return"
              },
              {
                "name": "filter_query",
                "value": "",
                "type": "query",
                "description": "Filter queries containing this text"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get top search queries for a site"
        },
        {
          "info": {
            "name": "Get Query Opportunities",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/opportunities",
            "params": [
              {
                "name": "site_url",
                "value": "",
                "type": "query",
                "description": "Site URL"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "min_impressions",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Import Queries To Prompts",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/import-to-prompts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Import GSC queries as target prompts for GEO/AEO tracking.\n\nConverts search queries into prompts that can be tracked\nfor AI search visibility."
        },
        {
          "info": {
            "name": "Get Page Queries",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/gsc/page-queries",
            "params": [
              {
                "name": "site_url",
                "value": "",
                "type": "query",
                "description": "Site URL"
              },
              {
                "name": "page_url",
                "value": "",
                "type": "query",
                "description": "Specific page URL to analyze"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get search queries driving traffic to a specific page"
        }
      ]
    },
    {
      "info": {
        "name": "Command Center",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Stream Activity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/activity/stream",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "SSE endpoint for real-time activity stream.\n\nConnect to this endpoint to receive live updates."
        },
        {
          "info": {
            "name": "Get Recent Activity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/activity",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "activity_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "source",
                "value": "",
                "type": "query"
              },
              {
                "name": "unread_only",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get recent activity from the stream"
        },
        {
          "info": {
            "name": "Mark Activity Read",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/activity/read",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Mark activities as read"
        },
        {
          "info": {
            "name": "List Agents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all registered agents"
        },
        {
          "info": {
            "name": "Register Agent",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Register a new agent"
        },
        {
          "info": {
            "name": "Pause Agent",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents/:agent_id/pause",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Pause an agent"
        },
        {
          "info": {
            "name": "Resume Agent",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents/:agent_id/resume",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Resume a paused agent"
        },
        {
          "info": {
            "name": "Trigger Agent Run",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents/:agent_id/run",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Manually trigger an agent run"
        },
        {
          "info": {
            "name": "Get Agent Types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/agents/types"
          },
          "docs": "Get available agent types"
        },
        {
          "info": {
            "name": "Get Integration Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/integrations/health",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get health status of all integrations"
        },
        {
          "info": {
            "name": "Get Integration Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/integrations/:integration_type/status",
            "params": [
              {
                "name": "integration_type",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed status of a specific integration"
        },
        {
          "info": {
            "name": "Get Latest Visibility",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/visibility/latest",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get most recent visibility snapshot"
        },
        {
          "info": {
            "name": "Get Visibility History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/visibility/history",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get visibility history over time"
        },
        {
          "info": {
            "name": "Get Dashboard Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/dashboard",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get complete dashboard summary for initial page load.\n\nReturns all widgets data in one request for fast initial render."
        },
        {
          "info": {
            "name": "Get Geo Prompts Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/command-center/geo-prompts",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get GEO prompts status and recent test results.\nShows which prompts are being used for visibility tracking."
        }
      ]
    },
    {
      "info": {
        "name": "GEO Intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Intelligence Dashboard",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/dashboard",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Hot Topics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/hot-topics",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Visibility Gaps",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/visibility-gaps",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get visibility gaps - topics with high search demand but low AI visibility.\n\nThese are your biggest opportunities to improve AI presence."
        },
        {
          "info": {
            "name": "Get Competitor Insights",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/competitor-insights",
            "params": [
              {
                "name": "competitors",
                "value": "",
                "type": "query",
                "description": "Competitor names (auto-fetched if not provided)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Recommendations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/recommendations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "Generate Prompts From Gsc",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/prompts/generate-from-gsc",
            "params": [
              {
                "name": "topic_filter",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Geo Activity Stream",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/stream",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the GEO activity stream - recent test results, visibility changes, insights.\n\nThis is the real-time feed of GEO intelligence activity."
        },
        {
          "info": {
            "name": "Sync Gsc Queries",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/gsc/sync",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync search queries from Google Search Console.\n\nThis pulls your top search queries and stores them for\nhot topic analysis and prompt generation."
        },
        {
          "info": {
            "name": "Get Gsc Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/gsc/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check GSC connection status and query stats."
        },
        {
          "info": {
            "name": "Get Daily Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/daily-report",
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate a daily GEO intelligence report.\n\n- format=json: Returns structured report data\n- format=slack: Returns Slack Block Kit formatted message"
        },
        {
          "info": {
            "name": "Send Slack Report",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/geo-intelligence/send-slack-report",
            "params": [
              {
                "name": "webhook_url",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate and send the daily GEO report to Slack.\n\nRequires a Slack incoming webhook URL."
        }
      ]
    },
    {
      "info": {
        "name": "telemetry",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Track Events",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/track",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Track events from frontend.\n\nThis endpoint is public - no auth required.\nRate limited by IP."
        },
        {
          "info": {
            "name": "End Session",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/end-session",
            "params": [
              {
                "name": "session_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "org_id",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Mark a session as ended (called on page unload)."
        },
        {
          "info": {
            "name": "Get Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/stats",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get summary statistics for the organization."
        },
        {
          "info": {
            "name": "Get Visitors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/visitors",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "enriched_only",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get list of visitors."
        },
        {
          "info": {
            "name": "Get Visitor Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/visitors/:visitor_id",
            "params": [
              {
                "name": "visitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed visitor info with sessions."
        },
        {
          "info": {
            "name": "Get Session Events",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/sessions/:session_id/events",
            "params": [
              {
                "name": "session_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all events for a session."
        },
        {
          "info": {
            "name": "Get Companies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/companies",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get identified companies from IP enrichment."
        },
        {
          "info": {
            "name": "Get Top Pages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/pages",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get top pages by views."
        },
        {
          "info": {
            "name": "Get Events By Type",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/events/by-type",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get event counts grouped by type."
        },
        {
          "info": {
            "name": "Get Search Terms",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/search-terms",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Google Search Console search terms driving traffic.\n\nRequires GSC to be connected via Google OAuth."
        },
        {
          "info": {
            "name": "Get Likely Search Term Public",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/likely-search-term/public",
            "params": [
              {
                "name": "page_path",
                "value": "",
                "type": "query",
                "description": "Landing page path, e.g. /blog/ai-agents"
              },
              {
                "name": "org_id",
                "value": "",
                "type": "query",
                "description": "Organization ID"
              }
            ]
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Likely Search Term",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/likely-search-term",
            "params": [
              {
                "name": "page_path",
                "value": "",
                "type": "query",
                "description": "Landing page path, e.g. /blog/ai-agents"
              },
              {
                "name": "site_url",
                "value": "",
                "type": "query",
                "description": "Override site URL"
              },
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Visitors By Geo",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/telemetry/visitors/geo",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get visitor counts grouped by geography."
        }
      ]
    },
    {
      "info": {
        "name": "DEO Signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Ingest Deo Events",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/deo/ingest",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "List Agents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/deo/agents",
            "params": [
              {
                "name": "agent_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "journey_stage",
                "value": "",
                "type": "query"
              },
              {
                "name": "converted_only",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List AI agents that have interacted with your product"
        },
        {
          "info": {
            "name": "Get Dashboard Stats",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/deo/stats",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get DEO dashboard statistics"
        },
        {
          "info": {
            "name": "List Interactions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/deo/interactions",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "touchpoint",
                "value": "",
                "type": "query"
              },
              {
                "name": "success_only",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List DEO interactions"
        },
        {
          "info": {
            "name": "Register Deo Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/deo/sources/register",
            "params": [
              {
                "name": "source_name",
                "value": "",
                "type": "query"
              },
              {
                "name": "touchpoint",
                "value": "",
                "type": "query"
              },
              {
                "name": "telemetry_endpoint",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Register a new DEO source (MCP server, API, SDK, etc.)"
        },
        {
          "info": {
            "name": "List Deo Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/deo/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List registered DEO sources"
        },
        {
          "info": {
            "name": "Ingest Otlp Traces",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/deo/v1/traces",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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 → source_name\n- mcp.tool.name → tool_name\n- rpc.method → action\n- mcp.server.id → mcp_server_id"
        },
        {
          "info": {
            "name": "Ingest Mcp Telemetry",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/deo/mcp-telemetry",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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        \"metadat"
        },
        {
          "info": {
            "name": "Ingest Mcp Telemetry",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/deo/v1/telemetry/events",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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        \"metadat"
        },
        {
          "info": {
            "name": "Get Journey Funnel",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/deo/funnel",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the DEO journey funnel with conversion rates between stages"
        }
      ]
    },
    {
      "info": {
        "name": "battlecards",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Battlecards",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/battlecards",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              },
              {
                "name": "include_archived",
                "value": "",
                "type": "query",
                "description": "Include archived battlecards"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Battlecards"
        },
        {
          "info": {
            "name": "Get Battlecard",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Battlecard"
        },
        {
          "info": {
            "name": "Delete Battlecard",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete Battlecard"
        },
        {
          "info": {
            "name": "Get Battlecard For Competitor",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/battlecards/competitor/:competitor_id",
            "params": [
              {
                "name": "competitor_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Battlecard For Competitor"
        },
        {
          "info": {
            "name": "Generate Battlecard",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/battlecards/generate",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate Battlecard"
        },
        {
          "info": {
            "name": "Update Battlecard Status",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id/status",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update Battlecard Status"
        },
        {
          "info": {
            "name": "Export To Google Drive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id/export-drive",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export To Google Drive"
        },
        {
          "info": {
            "name": "Refresh Stale Battlecards",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/battlecards/refresh-stale",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Refresh Battlecard",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id/refresh",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Refresh a specific battlecard with the latest competitor data.\nThis regenerates the battlecard even if it's not marked as stale."
        },
        {
          "info": {
            "name": "Get Battlecard Markdown",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/battlecards/:battlecard_id/markdown",
            "params": [
              {
                "name": "battlecard_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get Battlecard Markdown"
        }
      ]
    },
    {
      "info": {
        "name": "youtube-signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Youtube Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/health"
          },
          "docs": "Check YouTube integration health"
        },
        {
          "info": {
            "name": "Debug Brand Keywords",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/debug/brand-keywords",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Debug endpoint to see what brand keywords are detected for the current tenant."
        },
        {
          "info": {
            "name": "Get Youtube Mentions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/mentions",
            "params": [
              {
                "name": "query",
                "value": "",
                "type": "query"
              },
              {
                "name": "competitor_id",
                "value": "",
                "type": "query",
                "description": "Competitor ID to load search config"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "days_back",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Brand Youtube Mentions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/brand-mentions",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "days_back",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "List Creators",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all tracked creators for the organization"
        },
        {
          "info": {
            "name": "Add Creator",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Get Suggested Creators",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/suggested",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get suggested tech creators to track"
        },
        {
          "info": {
            "name": "Add Creators Bulk",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/bulk",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Update Creator",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/:creator_id",
            "params": [
              {
                "name": "creator_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a creator's tracking configuration"
        },
        {
          "info": {
            "name": "Delete Creator",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/:creator_id",
            "params": [
              {
                "name": "creator_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Stop tracking a creator"
        },
        {
          "info": {
            "name": "Get Creator Videos",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/:creator_id/videos",
            "params": [
              {
                "name": "creator_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "max_results",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get recent videos from a tracked creator"
        },
        {
          "info": {
            "name": "Check All Creators",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/check-all",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Discover Youtube Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/signals/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "List Youtube Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/signals",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List YouTube signals"
        },
        {
          "info": {
            "name": "Delete Youtube Signals",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/signals",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete all YouTube signals"
        },
        {
          "info": {
            "name": "Get Video Transcript",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/videos/:video_id/transcript",
            "params": [
              {
                "name": "video_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the transcript for a specific YouTube video.\nReturns timestamped segments."
        },
        {
          "info": {
            "name": "Scan Video For Mentions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/videos/:video_id/scan-mentions",
            "params": [
              {
                "name": "video_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Scan Creator For Mentions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/creators/:creator_id/scan-mentions",
            "params": [
              {
                "name": "creator_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Scan All Creators For Mentions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/scan-all-creators",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "List Blacklist",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/blacklist",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all blacklist entries for the org."
        },
        {
          "info": {
            "name": "Add To Blacklist",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/blacklist",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "Remove From Blacklist",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/youtube/blacklist/:entry_id",
            "params": [
              {
                "name": "entry_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Remove an entry from the blacklist."
        }
      ]
    },
    {
      "info": {
        "name": "hackernews-signals",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Hackernews Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/health"
          },
          "docs": "Check Hacker News integration health"
        },
        {
          "info": {
            "name": "Discover Hackernews Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/signals/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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}"
        },
        {
          "info": {
            "name": "List Hackernews Signals",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/signals",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "min_score",
                "value": "",
                "type": "query"
              },
              {
                "name": "keyword",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List Hacker News signals with filtering options"
        },
        {
          "info": {
            "name": "Delete All Hackernews Signals",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/signals",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete all Hacker News signals for the organization"
        },
        {
          "info": {
            "name": "Scan Top Stories With Keywords",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/scan-with-keywords",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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 /n"
        },
        {
          "info": {
            "name": "Get Top Stories",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/top-stories",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current top stories from Hacker News"
        },
        {
          "info": {
            "name": "Get Hackernews Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/sources",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get configured Hacker News sources (keywords to monitor)"
        },
        {
          "info": {
            "name": "Add Hackernews Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/sources",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add a new Hacker News source (keyword to monitor)"
        },
        {
          "info": {
            "name": "Delete Hackernews Source",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/hackernews/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a Hacker News source"
        }
      ]
    },
    {
      "info": {
        "name": "org-settings",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Org Settings",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/org-settings",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get organization settings."
        },
        {
          "info": {
            "name": "Update Org Settings",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/org-settings",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update organization settings."
        },
        {
          "info": {
            "name": "Get Primary Domain",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/org-settings/domain",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the primary domain for this org.\nReturns user-set domain if available, otherwise falls back to most common content domain."
        }
      ]
    },
    {
      "info": {
        "name": "api-keys",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Api Keys",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/api-keys",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all API keys for the current organization."
        },
        {
          "info": {
            "name": "Create Api Key",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/api-keys",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new API key.\n\nIMPORTANT: The full key is only returned once during creation.\nStore it securely - it cannot be retrieved again."
        },
        {
          "info": {
            "name": "Get Api Key",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/api-keys/:key_id",
            "params": [
              {
                "name": "key_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get details of a specific API key."
        },
        {
          "info": {
            "name": "Revoke Api Key",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/api-keys/:key_id",
            "params": [
              {
                "name": "key_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Revoke an API key. This cannot be undone."
        }
      ]
    },
    {
      "info": {
        "name": "context-streams-streaming",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Streaming Config",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get streaming knowledge base configuration for this org."
        },
        {
          "info": {
            "name": "Update Streaming Config",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/config",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Configure streaming knowledge base connection for this org (Kafka-compatible)."
        },
        {
          "info": {
            "name": "Disconnect Streaming",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/config",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Disconnect/disable streaming knowledge base for this org."
        },
        {
          "info": {
            "name": "Get Connection Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current streaming knowledge base connection status for this org."
        },
        {
          "info": {
            "name": "Get Available Streams",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/available-streams",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get list of context streams available for publishing.\nReturns both built-in and custom streams for this org."
        },
        {
          "info": {
            "name": "Publish Knowledge To Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/publish",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Publish curated knowledge to streaming topics (OUT).\n\nThis makes curated GTM context available to any AI agent\nconnected to the Kafka-compatible broker."
        },
        {
          "info": {
            "name": "Subscribe To Signal Topics",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/subscribe",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Subscribe to streaming topics for signal ingestion (IN).\n\nIngest streaming signals (events, telemetry, etc.) as\ncontext for VoyantIO's continuous context engine."
        },
        {
          "info": {
            "name": "Get Integration Architecture",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/context-streams/streaming/architecture"
          },
          "docs": "Return integration architecture documentation for\nVoyantIO + Streaming Knowledge Base (Kafka-compatible)."
        }
      ]
    },
    {
      "info": {
        "name": "attribution-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Narratives",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/narratives",
            "params": [
              {
                "name": "active_only",
                "value": "",
                "type": "query",
                "description": "Only return active narratives"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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\")."
        },
        {
          "info": {
            "name": "Create Narrative",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/narratives",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new narrative to track.\n\nKeywords are used to automatically classify signals and content\nthat belong to this narrative."
        },
        {
          "info": {
            "name": "Delete Narrative",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/narratives/:narrative_id",
            "params": [
              {
                "name": "narrative_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Soft-delete a narrative (sets is_active=False)"
        },
        {
          "info": {
            "name": "Get Narrative Attribution Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/reports/narrative",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Campaign Performance Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/reports/campaigns",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Gated Content Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/reports/gated-content",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Traffic Attribution Report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/reports/traffic-sources",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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\")"
        },
        {
          "info": {
            "name": "Get Traffic Anomalies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/anomalies",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Acknowledge Anomaly",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/anomalies/:anomaly_id/acknowledge",
            "params": [
              {
                "name": "anomaly_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Mark a traffic anomaly as acknowledged"
        },
        {
          "info": {
            "name": "Sync Traffic Attribution",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/sync/traffic",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync traffic attribution from Google Analytics.\n\nPulls traffic sources and matches them to known signals.\nDetects anomalies (unexpected spikes)."
        },
        {
          "info": {
            "name": "Sync Campaign Performance",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/sync/campaigns",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync campaign performance from HubSpot.\n\nPulls campaign metrics and attributes them to narratives."
        },
        {
          "info": {
            "name": "Sync Gated Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/sync/gated-content",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync gated content performance from HubSpot.\n\nPulls content downloads, views, and conversion metrics."
        },
        {
          "info": {
            "name": "Generate Narrative Snapshots",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/sync/snapshots",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate daily snapshots for all narratives.\n\nThis aggregates signals, traffic, and conversions by narrative.\nTypically run once daily by a scheduled job."
        },
        {
          "info": {
            "name": "Get Latest Briefing",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/briefing",
            "params": [
              {
                "name": "briefing_type",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Generate Intelligence Briefing",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/briefing",
            "params": [
              {
                "name": "briefing_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "use_llm",
                "value": "",
                "type": "query",
                "description": "Use LLM for intelligent briefing generation"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate a new intelligence briefing using LLM.\n\nAnalyzes recent signals, campaigns, and traffic to produce\nan executive summary with actionable insights."
        },
        {
          "info": {
            "name": "Get Community Digest",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/briefing/community-digest",
            "params": [
              {
                "name": "narrative_id",
                "value": "",
                "type": "query",
                "description": "Filter to specific narrative"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the latest community digest for Reddit/HN discussions.\n\nReturns AI-generated summary of community threads, content opportunities,\nand posts from watched users."
        },
        {
          "info": {
            "name": "Generate Community Digest",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/briefing/community-digest",
            "params": [
              {
                "name": "narrative_id",
                "value": "",
                "type": "query",
                "description": "Scope to specific narrative"
              },
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days to look back (default 7)"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Tag Signals With Narratives",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/attribution/signals/tag-narratives",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Days of signals to tag"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Bulk-tag existing signals with narrative IDs.\n\nRun this after creating narratives to backfill narrative_id\non existing signals based on keyword matching."
        }
      ]
    },
    {
      "info": {
        "name": "cmo-intelligence",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Ai Readiness Score",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/ai-readiness",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Signal Pulse",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/signal-pulse",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Pipeline Progress",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/pipeline-progress",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Mql Hvt Conversion",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/mql-hvt",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Cmo Dashboard",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/dashboard",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all CMO dashboard data in one call.\n\nReturns:\n- AI Readiness Score\n- Signal Pulse\n- Pipeline Progress\n- MQL → HVT Conversion\n- Traffic Anomalies\n- Top Campaigns"
        },
        {
          "info": {
            "name": "Get Campaign Performance",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/campaigns",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Traffic Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/traffic-sources",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get traffic sources with attribution.\n\nReturns table-ready data:\n- Source\n- Sessions\n- MQLs\n- Pipeline attributed"
        },
        {
          "info": {
            "name": "Get Traffic Comparison",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/traffic-comparison",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query",
                "description": "Number of days to analyze"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Traffic Anomalies",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/cmo/anomalies",
            "params": [
              {
                "name": "days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get traffic anomalies (spikes to capitalize on)."
        }
      ]
    },
    {
      "info": {
        "name": "Leadership Audit",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Leaders",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/leaders",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all company leaders for the organization."
        },
        {
          "info": {
            "name": "Add Leader",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/leaders",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Add a new company leader."
        },
        {
          "info": {
            "name": "Update Leader Metrics",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/leaders/:leader_id/metrics",
            "params": [
              {
                "name": "leader_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a leader's social metrics."
        },
        {
          "info": {
            "name": "Sync Leader Linkedin",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/leaders/:leader_id/sync-linkedin",
            "params": [
              {
                "name": "leader_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync a leader's metrics from LinkedIn using Playwright.\nRequires LinkedIn session to be active."
        },
        {
          "info": {
            "name": "Sync All Leaders Linkedin",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/sync-all-linkedin",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Sync LinkedIn metrics for all leaders in the organization."
        },
        {
          "info": {
            "name": "Delete Leader",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/leaders/:leader_id",
            "params": [
              {
                "name": "leader_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Remove a leader from tracking."
        },
        {
          "info": {
            "name": "Get Audit Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/leadership/audit-summary",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get leadership audit summary for GTM report - measurable metrics only."
        }
      ]
    },
    {
      "info": {
        "name": "admin",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List All Orgs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all organizations with data in the system."
        },
        {
          "info": {
            "name": "Get Org Details",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs/:org_id/details",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get detailed information about a specific organization."
        },
        {
          "info": {
            "name": "Impersonate Org",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs/:org_id/impersonate",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Invite To Org",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs/:org_id/invite",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Invite a user to an organization via Clerk."
        },
        {
          "info": {
            "name": "List Org Invitations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs/:org_id/invitations",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List pending invitations for an organization."
        },
        {
          "info": {
            "name": "List Org Members",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/orgs/:org_id/members",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List members of an organization."
        }
      ]
    },
    {
      "info": {
        "name": "admin-migration",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Import Json Data",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/admin/migration/import-json",
            "body": {
              "type": "multipart-form",
              "data": []
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Import data from a JSON or gzipped JSON file.\n\nUpload the scylladb_export.json.gz file to import all data."
        },
        {
          "info": {
            "name": "Get Import Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/migration/import-status/:import_id",
            "params": [
              {
                "name": "import_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of a background import."
        },
        {
          "info": {
            "name": "Migration Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/admin/migration/health"
          },
          "docs": "Health check for migration API."
        },
        {
          "info": {
            "name": "Fix Embedding Dimension",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/admin/migration/fix-embedding-dimension",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)."
        },
        {
          "info": {
            "name": "Regenerate Embeddings",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/admin/migration/regenerate-embeddings/:org_id",
            "params": [
              {
                "name": "org_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)."
        }
      ]
    },
    {
      "info": {
        "name": "onboarding-wizard",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Discover Company",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/discover",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Quick discovery of company information from their website.\nFetches homepage and uses AI to extract: company name, tagline, products, what they do."
        },
        {
          "info": {
            "name": "Confirm Discovery",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/confirm-discovery",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Save user-confirmed discovery data to the session/framework."
        },
        {
          "info": {
            "name": "Propose Personas",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/propose-personas",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Propose buyer personas based on company and product context.\nEach persona speaks about their pain points and what they'd value."
        },
        {
          "info": {
            "name": "Start Onboarding",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/start",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start a new onboarding session or resume existing one.\nCreates a draft MessagingFramework if none exists."
        },
        {
          "info": {
            "name": "Get Session",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/session",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get current onboarding session state."
        },
        {
          "info": {
            "name": "Reset Session",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/session",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Reset onboarding session and start fresh."
        },
        {
          "info": {
            "name": "Update Session Step",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/session/step",
            "params": [
              {
                "name": "step",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update the current step in the session."
        },
        {
          "info": {
            "name": "Start Domain Crawl",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/crawl",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Start crawling a domain to build context.\nUses existing Firecrawl infrastructure."
        },
        {
          "info": {
            "name": "Get Crawl Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/crawl/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get status of current crawl operation."
        },
        {
          "info": {
            "name": "Upload Document",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/documents/upload",
            "body": {
              "type": "multipart-form",
              "data": []
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Upload a PDF or text file for context.\nAccepts: .pdf, .txt, .md"
        },
        {
          "info": {
            "name": "List Documents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/documents",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List uploaded documents for this session."
        },
        {
          "info": {
            "name": "Delete Document",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/documents/:document_id",
            "params": [
              {
                "name": "document_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Remove an uploaded document."
        },
        {
          "info": {
            "name": "Generate Framework Step",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/generate/:step",
            "params": [
              {
                "name": "step",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Generate content for a specific framework step using AI.\n\nSteps: core_messaging, positioning, personas, products, use_cases, competitive, brand_voice"
        },
        {
          "info": {
            "name": "Generate Framework Step Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/generate/:step/stream",
            "params": [
              {
                "name": "step",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Stream AI generation for framework step.\nReturns Server-Sent Events for real-time display."
        },
        {
          "info": {
            "name": "Approve Framework Step",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/approve/:step",
            "params": [
              {
                "name": "step",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Approve and save generated content for a step.\nMarks step as completed and advances wizard."
        },
        {
          "info": {
            "name": "Get Personas",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/personas",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all personas for current framework."
        },
        {
          "info": {
            "name": "Update Persona",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a specific persona."
        },
        {
          "info": {
            "name": "Delete Persona",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/personas/:persona_id",
            "params": [
              {
                "name": "persona_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a persona."
        },
        {
          "info": {
            "name": "Get Framework",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/framework",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get complete framework with all components."
        },
        {
          "info": {
            "name": "Complete Framework",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/framework/complete",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Mark framework as complete.\nCreates Context Stream from framework for use in content generation."
        },
        {
          "info": {
            "name": "Export Framework",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/framework/export",
            "params": [
              {
                "name": "format",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Export framework in specified format (json or markdown)."
        }
      ]
    },
    {
      "info": {
        "name": "simple-onboarding",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Start Simple Onboarding",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/simple/start",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Confirm Simple Onboarding",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/simple/confirm",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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)"
        },
        {
          "info": {
            "name": "Get Simple Onboarding Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/onboarding/simple/status",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the current simple onboarding status/data if any"
        }
      ]
    },
    {
      "info": {
        "name": "content-voices",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Content Types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/content-types"
          },
          "docs": "List available content types for voice profiles."
        },
        {
          "info": {
            "name": "List Crawled Content",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/crawled-content",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query",
                "description": "Filter by content type"
              },
              {
                "name": "include_voice_training",
                "value": "",
                "type": "query",
                "description": "Include voice training data"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "List Voices",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query",
                "description": "Filter by content type"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all content voices for the organization."
        },
        {
          "info": {
            "name": "Create Voice",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get Default Voice",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/default/:content_type",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the default voice for a content type."
        },
        {
          "info": {
            "name": "Get Voice",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/:voice_id",
            "params": [
              {
                "name": "voice_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a specific content voice."
        },
        {
          "info": {
            "name": "Update Voice",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/:voice_id",
            "params": [
              {
                "name": "voice_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a content voice."
        },
        {
          "info": {
            "name": "Delete Voice",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/:voice_id",
            "params": [
              {
                "name": "voice_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a content voice."
        },
        {
          "info": {
            "name": "Re Extract Voice",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/:voice_id/re-extract",
            "params": [
              {
                "name": "voice_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Re-extract voice characteristics from the source content.\nUseful after improving extraction prompts or adding more source content."
        },
        {
          "info": {
            "name": "Extract Content Dna",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/extract-dna",
            "params": [
              {
                "name": "save_to_framework",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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 "
        },
        {
          "info": {
            "name": "Get Content Dna",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/dna",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get existing Content DNA for the organization."
        },
        {
          "info": {
            "name": "Get Dna Generation Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/dna/generation-context",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get formatted Content DNA context for content generation.\nReturns a string ready to inject into generation prompts."
        },
        {
          "info": {
            "name": "Extract Technical Vocabulary",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/extract-vocabulary",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Voice Context",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/:voice_id/context",
            "params": [
              {
                "name": "voice_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get formatted voice context for content generation.\nReturns a string that can be injected into generation prompts."
        },
        {
          "info": {
            "name": "Train Quality Model",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/train",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Score Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/score",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Quick Critique",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/critique",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Quick critique - just the top issues and how to fix them.\n\nLighter-weight than full scoring, focused on actionable improvements."
        },
        {
          "info": {
            "name": "List Quality Profiles",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/profiles",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all quality profiles for the organization."
        },
        {
          "info": {
            "name": "Get Quality Profile",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/profiles/:content_type",
            "params": [
              {
                "name": "content_type",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get the quality profile for a specific content type."
        },
        {
          "info": {
            "name": "Analyze Blog Quality",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/analyze-blogs",
            "params": [
              {
                "name": "crawl_id",
                "value": "",
                "type": "query",
                "description": "Scope to specific crawl"
              },
              {
                "name": "force_retrain",
                "value": "",
                "type": "query",
                "description": "Force retrain quality model"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "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."
        },
        {
          "info": {
            "name": "Get Blog Quality Summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/blog-summary",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get summary of blog content quality.\n\nReturns score distribution, top blogs, and blogs needing improvement."
        },
        {
          "info": {
            "name": "Rescore Content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/content-voices/quality/rescore/:content_id",
            "params": [
              {
                "name": "content_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Re-score a single content item against the current quality model."
        }
      ]
    },
    {
      "info": {
        "name": "pipeline",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Blueprints",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/blueprints"
          },
          "docs": "List all available blueprints.\n\nReturns a list of blueprints with their metadata and input schemas."
        },
        {
          "info": {
            "name": "Get Blueprint Detail",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/blueprints/:blueprint_id",
            "params": [
              {
                "name": "blueprint_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get detailed information about a blueprint.\n\nIncludes full step definitions and configuration."
        },
        {
          "info": {
            "name": "List Available Tools",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/tools"
          },
          "docs": "List all available tools that can be used in blueprints.\n\nGroups tools by platform/provider."
        },
        {
          "info": {
            "name": "Execute Blueprint",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/execute",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Execute a blueprint.\n\nIf stream=True, returns a Server-Sent Events stream.\nOtherwise, returns the complete execution outcome."
        },
        {
          "info": {
            "name": "List Executions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/executions",
            "params": [
              {
                "name": "blueprint_id",
                "value": "",
                "type": "query",
                "description": "Filter by blueprint"
              },
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List execution history for the organization."
        },
        {
          "info": {
            "name": "Get Execution",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/executions/:execution_id",
            "params": [
              {
                "name": "execution_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get details of a specific execution."
        },
        {
          "info": {
            "name": "Discover Company Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/signals/company",
            "params": [
              {
                "name": "company_name",
                "value": "",
                "type": "query",
                "description": "Company name to search"
              },
              {
                "name": "roles",
                "value": "",
                "type": "query",
                "description": "Target roles"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max profiles"
              },
              {
                "name": "stream",
                "value": "",
                "type": "query",
                "description": "Stream updates"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Discover people at a company via LinkedIn signals.\n\nReturns identity hints (name, profile URL) for resolution.\nNo expensive profile enrichment - just signal collection."
        },
        {
          "info": {
            "name": "Discover Topic Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/signals/topic",
            "params": [
              {
                "name": "topic",
                "value": "",
                "type": "query",
                "description": "Topic to search (e.g., 'real-time streaming')"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Results per source"
              },
              {
                "name": "stream",
                "value": "",
                "type": "query",
                "description": "Stream updates"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Find people discussing a topic across platforms.\n\nCollects signals from thought leaders and discussions for identity resolution."
        },
        {
          "info": {
            "name": "Discover Competitor Signals",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/signals/competitor",
            "params": [
              {
                "name": "competitor_name",
                "value": "",
                "type": "query",
                "description": "Competitor company name"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max signals"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Find people engaging with competitor content.\n\nDiscovers potential prospects discussing or comparing competitor products."
        },
        {
          "info": {
            "name": "Resolve Identity",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/api/pipeline/resolve/identity",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Person's name"
              },
              {
                "name": "company",
                "value": "",
                "type": "query",
                "description": "Company name"
              },
              {
                "name": "email",
                "value": "",
                "type": "query",
                "description": "Email address"
              },
              {
                "name": "github",
                "value": "",
                "type": "query",
                "description": "GitHub username"
              },
              {
                "name": "twitter",
                "value": "",
                "type": "query",
                "description": "Twitter handle"
              },
              {
                "name": "linkedin",
                "value": "",
                "type": "query",
                "description": "LinkedIn URL or username"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Resolve identity across platforms given hints.\n\nTakes any known identity hints and attempts to find and link\nprofiles across LinkedIn, GitHub, Twitter, etc."
        }
      ]
    },
    {
      "info": {
        "name": "MCP",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Mcp Sse",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/mcp/sse"
          },
          "docs": "SSE endpoint for MCP protocol."
        },
        {
          "info": {
            "name": "Mcp Messages",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://voice-forge-production.up.railway.app/mcp/messages"
          },
          "docs": "Message handling endpoint for MCP protocol."
        },
        {
          "info": {
            "name": "Mcp Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/mcp/health"
          },
          "docs": "Health check endpoint."
        },
        {
          "info": {
            "name": "Mcp Tools",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://voice-forge-production.up.railway.app/mcp/tools"
          },
          "docs": "List available tools."
        }
      ]
    }
  ],
  "bundled": true
}