Public Data API

Vigil API

Free read-only access to prop firm rules, comparisons, trust scores, and glossary data for 20 firms. No authentication required. JSON responses with 1-hour cache.

Overview

All public endpoints return JSON with Content-Type: application/json. Responses include HATEOAS-style _links objects for discovery.

Base URL: https://runvigil.app

Rate Limits and Caching

  • Public endpoints: no rate limit, cached for 1 hour
  • CORS: open (Access-Control-Allow-Origin: *)
  • Audit endpoints: 50/month (Pro), 3/month (Free), requires Bearer token
  • Strategy analysis: 3/day per IP, protected by Cloudflare Turnstile

Authentication

Public data endpoints (firms, glossary, comparisons) require no authentication. Audit and broker endpoints require a Supabase JWT passed as a Bearer token in the Authorization header.

Public Endpoints

GET/api/firms

List All Firms

Returns all 20 prop firms with basic data including name, markets, drawdown type, profit split, account sizes, and trust score.

Request

curl https://runvigil.app/api/firms

Response

{
  "firms": [
    {
      "id": "ftmo",
      "name": "FTMO",
      "slug": "ftmo",
      "tier": 1,
      "markets": ["forex", "indices", "commodities", "stocks", "crypto"],
      "evaluationType": "2-step",
      "drawdownType": "static",
      "profitSplit": { "start": 80, "max": 90 },
      "accountSizes": [
        { "size": 10000, "fee": 155, "currency": "EUR" },
        { "size": 200000, "fee": 1080, "currency": "EUR" }
      ],
      "trustScore": 88,
      "isActive": true
    }
  ],
  "count": 20,
  "_links": { "self": "https://runvigil.app/api/firms" }
}
GET/api/firms/:slug

Get Firm Details

Returns full details for a specific firm including all evaluation phases, rules per phase, account sizes with fees, pros/cons, and trust score.

Request

curl https://runvigil.app/api/firms/ftmo

Response

{
  "firm": {
    "id": "ftmo",
    "name": "FTMO",
    "phases": {
      "phase1": {
        "dailyLossPct": 5,
        "maxDrawdownPct": 10,
        "maxDrawdownType": "static",
        "profitTargetPct": 10,
        "newsTrading": "allowed"
      }
    },
    "prosAndCons": {
      "pros": ["Static drawdown", "No time limit"],
      "cons": ["No futures trading"]
    },
    "trustScore": 88
  },
  "_links": { ... }
}
GET/api/compare/:firmA-vs-:firmB

Compare Two Firms

Returns a structured side-by-side comparison of two prop firms covering drawdown types, profit splits, fees, markets, platforms, and more.

Request

curl https://runvigil.app/api/compare/ftmo-vs-topstep

Response

{
  "firmA": { "name": "FTMO", "drawdownType": "static", ... },
  "firmB": { "name": "TopStep", "drawdownType": "trailing_eod", ... },
  "comparison": {
    "drawdownType": { "firmA": "static", "firmB": "trailing_eod" },
    "profitSplit": { "firmA": "80-90%", "firmB": "90-90%" },
    "cheapestFee": { "firmA": 155, "firmB": 49 },
    "markets": { "firmA": ["forex", ...], "firmB": ["futures"] }
  },
  "_links": { ... }
}
GET/api/glossary

List All Glossary Terms

Returns all 40 prop trading glossary terms with short definitions and categories.

Request

curl https://runvigil.app/api/glossary

Response

{
  "terms": [
    {
      "slug": "trailing-drawdown",
      "term": "Trailing Drawdown",
      "definition": "A maximum loss threshold that moves upward...",
      "category": "drawdown"
    }
  ],
  "count": 40,
  "_links": { "self": "https://runvigil.app/api/glossary" }
}
GET/api/glossary/:slug

Get Glossary Term

Returns a specific term with full definition, extended explanation, real-world example with numbers, category, and related terms.

Request

curl https://runvigil.app/api/glossary/trailing-drawdown

Response

{
  "term": {
    "slug": "trailing-drawdown",
    "term": "Trailing Drawdown",
    "definition": "A maximum loss threshold that moves upward...",
    "extendedExplanation": "Trailing drawdown is the most misunderstood...",
    "exampleWithNumbers": "On a TopStep $50K account with $1,500...",
    "category": "drawdown",
    "relatedTerms": ["static-drawdown", "eod-drawdown", ...]
  },
  "_links": { ... }
}
GET/api/health

Health Check

Returns the current health status of the Vigil API and its database connection.

Request

curl https://runvigil.app/api/health

Response

{
  "status": "ok",
  "timestamp": "2026-03-24T12:00:00.000Z",
  "supabase": "connected"
}
GET/api/sentiment/analysis

Get Social Sentiment Data

Returns the latest sentiment snapshot for all supported instruments, or a specific instrument when you pass the instrument query parameter.

Request

curl https://runvigil.app/api/sentiment/analysis?instrument=es

Response

{
  "data": [
    {
      "instrumentId": "es",
      "instrumentName": "ES",
      "date": "2026-03-24",
      "sentimentScore": -42,
      "contrarianSignal": false
    }
  ],
  "count": 7
}
GET / POST/api/mcp

MCP Tool Endpoint

Exposes Vigil rules and firm data over the Model Context Protocol for AI agents. GET returns discovery data and POST handles JSON-RPC tool calls.

Request

curl https://runvigil.app/api/mcp

Response

{
  "protocolVersion": "2025-03-26",
  "capabilities": { "tools": {} },
  "serverInfo": {
    "name": "vigil-prop-firm-compliance",
    "version": "1.0.0"
  }
}