{
    "openapi": "3.1.0",
    "info": {
        "title": "Finmagine Market Intelligence API",
        "summary": "Structured market intelligence for Indian (NSE/BSE) and US (NYSE/NASDAQ) equities.",
        "description": "openapi.json is the source of truth for the public developer API contract (paths, params, tiers) — it documents what the live handlers do, it does not control their behavior. 86 operations: 60 India + 26 US, available as both REST and MCP (see x-mcp-tool per operation, or /api/mcp.php directly).",
        "version": "1.0.0",
        "contact": {
            "email": "contact@finmagine.com"
        }
    },
    "servers": [
        {
            "url": "https://finmagine.com/api/v1",
            "description": "India (NSE/BSE) and US (NYSE/NASDAQ) — market is determined by the path, e.g. /company/profile vs /us/company/profile"
        }
    ],
    "security": [
        {
            "apiKeyHeader": []
        },
        {
            "bearerAuth": []
        },
        {
            "apiKeyQuery": []
        }
    ],
    "components": {
        "securitySchemes": {
            "apiKeyHeader": {
                "type": "apiKey",
                "in": "header",
                "name": "X-Api-Key"
            },
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "description": "Authorization: Bearer fmk_YOUR_KEY"
            },
            "apiKeyQuery": {
                "type": "apiKey",
                "in": "query",
                "name": "apiKey"
            }
        }
    },
    "tags": [
        {
            "name": "Core"
        },
        {
            "name": "Company Intel"
        },
        {
            "name": "Market Intel"
        },
        {
            "name": "AI Content"
        },
        {
            "name": "Feeds"
        },
        {
            "name": "US Markets"
        }
    ],
    "paths": {
        "/status": {
            "get": {
                "operationId": "getStatus",
                "summary": "Health check",
                "description": "Returns API version and service name. No authentication required.",
                "tags": [
                    "Core"
                ],
                "security": [],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Service is up"
                    }
                },
                "x-anchor": "status",
                "x-tier": "free",
                "x-mcp-tool": null,
                "x-response-fields": [
                    [
                        "status, version, service, docs",
                        "Static health-check payload"
                    ]
                ]
            }
        },
        "/companies": {
            "get": {
                "operationId": "search_companies",
                "summary": "Search NSE-listed companies by name, sector, or financial filters. Use this to find the correct NSE symbol for a company before calling o...",
                "description": "Search NSE-listed companies by name, sector, or financial filters. Use this to find the correct NSE symbol for a company before calling other tools. Also useful for listing all tracked companies in a sector. Returns symbol, name, sector, market cap, RS rating.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Name or symbol search query"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by NSE sector name"
                    },
                    {
                        "name": "min_mcap",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Minimum market cap in Crores"
                    },
                    {
                        "name": "min_rs",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Minimum RS rating (1-99)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 20, max 50)"
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Page number (default 1)"
                    },
                    {
                        "name": "max_mcap",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max market cap (Cr) — REST-only, not exposed via MCP"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "companies",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "search_companies",
                    "description": "Search NSE-listed companies by name, sector, or financial filters. Use this to find the correct NSE symbol for a company before calling other tools. Also useful for listing all tracked companies in a sector. Returns symbol, name, sector, market cap, RS rating.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "q": {
                                "type": "string",
                                "description": "Name or symbol search query"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by NSE sector name"
                            },
                            "min_mcap": {
                                "type": "number",
                                "description": "Minimum market cap in Crores"
                            },
                            "min_rs": {
                                "type": "integer",
                                "description": "Minimum RS rating (1-99)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 20, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/profile": {
            "get": {
                "operationId": "get_company_profile",
                "summary": "Full fundamental snapshot for an NSE company: PE, ROCE, ROE, D/E, OPM%, market cap, 52-week high/low, RS rating, current price. Use this ...",
                "description": "Full fundamental snapshot for an NSE company: PE, ROCE, ROE, D/E, OPM%, market cap, 52-week high/low, RS rating, current price. Use this as the entry point for any single-stock deep dive — it gives the context needed to interpret all other tools.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol e.g. RELIANCE, HDFCBANK"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "company-profile",
                "x-tier": "free",
                "x-tier-note": "Free tier restricted to a fixed symbol list",
                "x-mcp-tool": {
                    "name": "get_company_profile",
                    "description": "Full fundamental snapshot for an NSE company: PE, ROCE, ROE, D/E, OPM%, market cap, 52-week high/low, RS rating, current price. Use this as the entry point for any single-stock deep dive — it gives the context needed to interpret all other tools.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol e.g. RELIANCE, HDFCBANK"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": [
                    [
                        "symbol, company_name, sector, industry",
                        "Identity"
                    ],
                    [
                        "market_cap_cr, price_cmp",
                        "Market data (Rs)"
                    ],
                    [
                        "pe, pb, roce, roe, de, opm_pct",
                        "Core ratios"
                    ],
                    [
                        "revenue_cagr_5y, pat_cagr_5y",
                        "5-year growth CAGRs"
                    ],
                    [
                        "fcf_yield, pledge_pct",
                        "Quality signals"
                    ],
                    [
                        "rs_rating, rs_rank",
                        "IBD-style RS (1-99)"
                    ],
                    [
                        "wk52_high, wk52_low, ema_10, ema_21",
                        "Technical levels"
                    ],
                    [
                        "altman_z_score, profitable_years_10y",
                        "Risk metrics"
                    ]
                ]
            }
        },
        "/company/financials": {
            "get": {
                "operationId": "get_financials",
                "summary": "Quarterly or annual P&L, balance sheet, and cash flow for an NSE company. Use this to assess revenue trend and OPM% expansion/compression...",
                "description": "Quarterly or annual P&L, balance sheet, and cash flow for an NSE company. Use this to assess revenue trend and OPM% expansion/compression over 6-8 quarters. Growth rates (CAGR) are pre-computed in get_ratios — do not manually calculate them from this data.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "\"quarterly\" or \"annual\" (default: quarterly)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Number of periods (max 12)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "company-financials",
                "x-tier": "free",
                "x-tier-note": "Free tier restricted to a fixed symbol list",
                "x-mcp-tool": {
                    "name": "get_financials",
                    "description": "Quarterly or annual P&L, balance sheet, and cash flow for an NSE company. Use this to assess revenue trend and OPM% expansion/compression over 6-8 quarters. Growth rates (CAGR) are pre-computed in get_ratios — do not manually calculate them from this data.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "period": {
                                "type": "string",
                                "description": "\"quarterly\" or \"annual\" (default: quarterly)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Number of periods (max 12)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": [
                    [
                        "period",
                        "Period label"
                    ],
                    [
                        "sales_cr",
                        "Revenue (Cr)"
                    ],
                    [
                        "ebitda_cr",
                        "EBITDA (Cr)"
                    ],
                    [
                        "pat_cr",
                        "Profit after tax (Cr)"
                    ],
                    [
                        "opm_pct",
                        "Operating margin %"
                    ]
                ]
            }
        },
        "/company/ratios": {
            "get": {
                "operationId": "get_ratios",
                "summary": "Pre-computed quality and risk ratios: ROCE, ROE, D/E, FCF yield, revenue/PAT CAGR (1yr, 3yr, 5yr), Altman Z-score, pledge %. Red flags: A...",
                "description": "Pre-computed quality and risk ratios: ROCE, ROE, D/E, FCF yield, revenue/PAT CAGR (1yr, 3yr, 5yr), Altman Z-score, pledge %. Red flags: Altman Z < 1.8 = financial distress risk; pledge > 20% = governance risk; D/E > 2 = over-leveraged. Do not compute CAGRs manually from get_financials — use these pre-calculated values.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "company-ratios",
                "x-tier": "free",
                "x-tier-note": "Free tier restricted to a fixed symbol list",
                "x-mcp-tool": {
                    "name": "get_ratios",
                    "description": "Pre-computed quality and risk ratios: ROCE, ROE, D/E, FCF yield, revenue/PAT CAGR (1yr, 3yr, 5yr), Altman Z-score, pledge %. Red flags: Altman Z < 1.8 = financial distress risk; pledge > 20% = governance risk; D/E > 2 = over-leveraged. Do not compute CAGRs manually from get_financials — use these pre-calculated values.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/momentum": {
            "get": {
                "operationId": "get_momentum",
                "summary": "Technical momentum signals for an NSE company: RS rating (IBD-style 1-99 vs Nifty 500 universe), EMA-10/21/50 alignment, Stage 2 flag, VC...",
                "description": "Technical momentum signals for an NSE company: RS rating (IBD-style 1-99 vs Nifty 500 universe), EMA-10/21/50 alignment, Stage 2 flag, VCP flag, 52-week high proximity, 30-day RS trend. RS > 85 = elite; price above 10-EMA AND 21-EMA = confirmed uptrend. RS trend direction matters more than the absolute score — an RS rising from 60→75 can be more actionable than a stagnant RS 90.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "company-momentum",
                "x-tier": "free",
                "x-tier-note": "Free tier restricted to a fixed symbol list",
                "x-mcp-tool": {
                    "name": "get_momentum",
                    "description": "Technical momentum signals for an NSE company: RS rating (IBD-style 1-99 vs Nifty 500 universe), EMA-10/21/50 alignment, Stage 2 flag, VCP flag, 52-week high proximity, 30-day RS trend. RS > 85 = elite; price above 10-EMA AND 21-EMA = confirmed uptrend. RS trend direction matters more than the absolute score — an RS rising from 60→75 can be more actionable than a stagnant RS 90.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/ai-summary": {
            "get": {
                "operationId": "get_ai_quarterly_summary",
                "summary": "AI-generated earnings summary for an NSE company from the latest concall (DeepSeek, 703 companies covered). Returns headline verdict, key...",
                "description": "AI-generated earnings summary for an NSE company from the latest concall (DeepSeek, 703 companies covered). Returns headline verdict, key positives, key risks, and management outlook. Use this to understand WHAT happened in the quarter without reading the full transcript. Requires api_max.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol e.g. RELIANCE"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "company-ai-summary",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_ai_quarterly_summary",
                    "description": "AI-generated earnings summary for an NSE company from the latest concall (DeepSeek, 703 companies covered). Returns headline verdict, key positives, key risks, and management outlook. Use this to understand WHAT happened in the quarter without reading the full transcript. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol e.g. RELIANCE"
                            },
                            "period": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/breadth": {
            "get": {
                "operationId": "get_market_breadth",
                "summary": "Market regime indicator: last 30 days of advances/declines, % stocks above 10/20/40-day MA, Nifty close. Use this to size positions corre...",
                "description": "Market regime indicator: last 30 days of advances/declines, % stocks above 10/20/40-day MA, Nifty close. Use this to size positions correctly before entering trades. 40d MA breadth > 65% = broad advance, full-size entries appropriate. Below 50% = selective market, reduce position size. Below 40% = correction, hold cash. A sharp single-day drop to <30% advancers signals distribution.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Trading days to return (max 30)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-breadth",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_market_breadth",
                    "description": "Market regime indicator: last 30 days of advances/declines, % stocks above 10/20/40-day MA, Nifty close. Use this to size positions correctly before entering trades. 40d MA breadth > 65% = broad advance, full-size entries appropriate. Below 50% = selective market, reduce position size. Below 40% = correction, hold cash. A sharp single-day drop to <30% advancers signals distribution.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "Trading days to return (max 30)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/momentum": {
            "get": {
                "operationId": "get_market_momentum",
                "summary": "Top NSE stocks ranked by RS rating (IBD-style 1-99 vs Nifty 500). RS ≥ 90 = elite momentum. Use this to find what the market is rewardi...",
                "description": "Top NSE stocks ranked by RS rating (IBD-style 1-99 vs Nifty 500). RS ≥ 90 = elite momentum. Use this to find what the market is rewarding most. Filter by a Leading-sector name from get_sector_rrg to get the best stock in the best sector — the highest-probability long setup.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional sector filter"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results to return (tier-capped)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-momentum",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_market_momentum",
                    "description": "Top NSE stocks ranked by RS rating (IBD-style 1-99 vs Nifty 500). RS ≥ 90 = elite momentum. Use this to find what the market is rewarding most. Filter by a Leading-sector name from get_sector_rrg to get the best stock in the best sector — the highest-probability long setup.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "sector": {
                                "type": "string",
                                "description": "Optional sector filter"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results to return (tier-capped)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/sectors": {
            "get": {
                "operationId": "get_market_sectors",
                "summary": "Per-sector summary across all NSE companies: stock count, average RS rating, and total market cap. Use this to identify which sectors hav...",
                "description": "Per-sector summary across all NSE companies: stock count, average RS rating, and total market cap. Use this to identify which sectors have the highest average RS before drilling into individual stocks with get_market_momentum. A sector with avg_rs_rating > 70 = broad sector leadership, not just one or two stocks. Free tier.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-sectors",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_market_sectors",
                    "description": "Per-sector summary across all NSE companies: stock count, average RS rating, and total market cap. Use this to identify which sectors have the highest average RS before drilling into individual stocks with get_market_momentum. A sector with avg_rs_rating > 70 = broad sector leadership, not just one or two stocks. Free tier.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": null
            }
        },
        "/screener": {
            "get": {
                "operationId": "screen_stocks",
                "summary": "Final-stage quality filter: screen NSE stocks by ROCE, PE, RS rating, D/E, MCap, sector simultaneously. Use this after identifying the ma...",
                "description": "Final-stage quality filter: screen NSE stocks by ROCE, PE, RS rating, D/E, MCap, sector simultaneously. Use this after identifying the market regime (get_market_breadth) and target sectors (get_sector_rrg) — not as a starting point. Hard cap: 50 results. Requires api_max.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "min_roce",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min ROCE %"
                    },
                    {
                        "name": "max_pe",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max PE ratio"
                    },
                    {
                        "name": "min_mcap",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min market cap (Cr)"
                    },
                    {
                        "name": "max_mcap",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max market cap (Cr)"
                    },
                    {
                        "name": "min_rs",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Min RS rating (1-99)"
                    },
                    {
                        "name": "min_roe",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min ROE %"
                    },
                    {
                        "name": "max_de",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max debt/equity ratio"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Sector filter"
                    },
                    {
                        "name": "industry",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Industry filter"
                    },
                    {
                        "name": "sort_by",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "market_cap_cr | rs_rating | roce | roe | opm_pct"
                    },
                    {
                        "name": "sort_dir",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "desc | asc"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "screener",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "screen_stocks",
                    "description": "Final-stage quality filter: screen NSE stocks by ROCE, PE, RS rating, D/E, MCap, sector simultaneously. Use this after identifying the market regime (get_market_breadth) and target sectors (get_sector_rrg) — not as a starting point. Hard cap: 50 results. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "min_roce": {
                                "type": "number",
                                "description": "Min ROCE %"
                            },
                            "max_pe": {
                                "type": "number",
                                "description": "Max PE ratio"
                            },
                            "min_mcap": {
                                "type": "number",
                                "description": "Min market cap (Cr)"
                            },
                            "max_mcap": {
                                "type": "number",
                                "description": "Max market cap (Cr)"
                            },
                            "min_rs": {
                                "type": "integer",
                                "description": "Min RS rating (1-99)"
                            },
                            "min_roe": {
                                "type": "number",
                                "description": "Min ROE %"
                            },
                            "max_de": {
                                "type": "number",
                                "description": "Max debt/equity ratio"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Sector filter"
                            },
                            "industry": {
                                "type": "string",
                                "description": "Industry filter"
                            },
                            "sort_by": {
                                "type": "string",
                                "description": "market_cap_cr | rs_rating | roce | roe | opm_pct"
                            },
                            "sort_dir": {
                                "type": "string",
                                "description": "desc | asc"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/ecs": {
            "get": {
                "operationId": "get_ecs_score",
                "summary": "Post-earnings quality score (0-100) for a single NSE company: integrates profit growth, sales growth, CFO/profit ratio, margin trend, and...",
                "description": "Post-earnings quality score (0-100) for a single NSE company: integrates profit growth, sales growth, CFO/profit ratio, margin trend, and PEAD signal. Score > 70 with RS > 80 = high-conviction post-earnings setup. Do not manually compute earnings quality from get_financials — use this instead. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-ecs",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_ecs_score",
                    "description": "Post-earnings quality score (0-100) for a single NSE company: integrates profit growth, sales growth, CFO/profit ratio, margin trend, and PEAD signal. Score > 70 with RS > 80 = high-conviction post-earnings setup. Do not manually compute earnings quality from get_financials — use this instead. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": [
                    [
                        "ecs_score",
                        "Composite score (higher = stronger post-earnings momentum)"
                    ],
                    [
                        "ecs_rank",
                        "Rank within the universe for that quarter (1 = highest)"
                    ],
                    [
                        "pead_signal",
                        "Boolean — true if PEAD drift detected"
                    ],
                    [
                        "quarter",
                        "Quarter label e.g. \\\"Mar 2026\\\""
                    ]
                ]
            }
        },
        "/company/guidance-tone": {
            "get": {
                "operationId": "get_guidance_tone",
                "summary": "Quick concall tone score (0-100): ≥60 = positive, 40-59 = neutral, <40 = negative. Use for rapid screening across many stocks. For mult...",
                "description": "Quick concall tone score (0-100): ≥60 = positive, 40-59 = neutral, <40 = negative. Use for rapid screening across many stocks. For multi-quarter tone trajectory and phrase drift analysis on a single stock, use get_management_tone instead. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-guidance-tone",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_guidance_tone",
                    "description": "Quick concall tone score (0-100): ≥60 = positive, 40-59 = neutral, <40 = negative. Use for rapid screening across many stocks. For multi-quarter tone trajectory and phrase drift analysis on a single stock, use get_management_tone instead. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/order-wins": {
            "get": {
                "operationId": "get_order_wins",
                "summary": "AI-extracted order win announcements for a single NSE company: deal value, client, segment, confidence score. Use this in a deep dive to ...",
                "description": "AI-extracted order win announcements for a single NSE company: deal value, client, segment, confidence score. Use this in a deep dive to assess revenue visibility and backlog growth. For a cross-company feed of recent wins, use get_order_wins_feed instead. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 10, max 25)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-order-wins",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_order_wins",
                    "description": "AI-extracted order win announcements for a single NSE company: deal value, client, segment, confidence score. Use this in a deep dive to assess revenue visibility and backlog growth. For a cross-company feed of recent wins, use get_order_wins_feed instead. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 10, max 25)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/insider-trades": {
            "get": {
                "operationId": "get_insider_trades",
                "summary": "Promoter and director open-market buy/sell transactions for a single NSE company. Promoter buying at market price (not ESOPs) is a high-c...",
                "description": "Promoter and director open-market buy/sell transactions for a single NSE company. Promoter buying at market price (not ESOPs) is a high-conviction signal — they have the most information. Check for overlap with high-RS stocks for best setups. For a cross-company feed, use get_insider_feed. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days (default 90, max 365)"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "buy | sell | all (default: all)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results to return, capped at 50 (default 20) — REST-only; MCP exposes a `days` look-back window instead"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-insider-trades",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_insider_trades",
                    "description": "Promoter and director open-market buy/sell transactions for a single NSE company. Promoter buying at market price (not ESOPs) is a high-conviction signal — they have the most information. Check for overlap with high-RS stocks for best setups. For a cross-company feed, use get_insider_feed. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Look-back days (default 90, max 365)"
                            },
                            "type": {
                                "type": "string",
                                "description": "buy | sell | all (default: all)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/banking-kpis": {
            "get": {
                "operationId": "get_banking_kpis",
                "summary": "Banking and NBFC operational KPIs from investor presentations: NIM trend, GNPA/NNPA trajectory, CASA ratio, credit growth, PCR. These met...",
                "description": "Banking and NBFC operational KPIs from investor presentations: NIM trend, GNPA/NNPA trajectory, CASA ratio, credit growth, PCR. These metrics are not in standard financials — essential for evaluating any bank or NBFC. Returns empty array for non-financial companies; check get_company_profile sector first. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-banking-kpis",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_banking_kpis",
                    "description": "Banking and NBFC operational KPIs from investor presentations: NIM trend, GNPA/NNPA trajectory, CASA ratio, credit growth, PCR. These metrics are not in standard financials — essential for evaluating any bank or NBFC. Returns empty array for non-financial companies; check get_company_profile sector first. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/pead": {
            "get": {
                "operationId": "get_company_pead",
                "summary": "Historical Post-Earnings Announcement Drift events for a single NSE company: volume surges and price drift after each results date. Use t...",
                "description": "Historical Post-Earnings Announcement Drift events for a single NSE company: volume surges and price drift after each results date. Use this to assess whether this stock has a track record of drifting higher after beats — a consistent PEAD pattern increases conviction. For the current universe of active PEAD candidates, use get_pead_candidates. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-pead",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_company_pead",
                    "description": "Historical Post-Earnings Announcement Drift events for a single NSE company: volume surges and price drift after each results date. Use this to assess whether this stock has a track record of drifting higher after beats — a consistent PEAD pattern increases conviction. For the current universe of active PEAD candidates, use get_pead_candidates. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/conglomerate": {
            "get": {
                "operationId": "get_conglomerate",
                "summary": "Business group (Tata, Adani, Birla, Reliance, etc.) membership and live fundamentals for all group entities. Use this to understand cross...",
                "description": "Business group (Tata, Adani, Birla, Reliance, etc.) membership and live fundamentals for all group entities. Use this to understand cross-holding risk, group-level capex cycles, and whether the holding company is a better or worse entry than the listed subsidiary. Returns 404 if not in a tracked group. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-conglomerate",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_conglomerate",
                    "description": "Business group (Tata, Adani, Birla, Reliance, etc.) membership and live fundamentals for all group entities. Use this to understand cross-holding risk, group-level capex cycles, and whether the holding company is a better or worse entry than the listed subsidiary. Returns 404 if not in a tracked group. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/pledge-history": {
            "get": {
                "operationId": "get_pledge_history",
                "summary": "Quarterly promoter pledge % history. Pledge > 20% = governance risk flag; rising pledge trend = potential forced-selling overhang. Always...",
                "description": "Quarterly promoter pledge % history. Pledge > 20% = governance risk flag; rising pledge trend = potential forced-selling overhang. Always check this before adding a high-RS stock — strong momentum with rising pledges is a trap setup. Tier: api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-pledge-history",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_pledge_history",
                    "description": "Quarterly promoter pledge % history. Pledge > 20% = governance risk flag; rising pledge trend = potential forced-selling overhang. Always check this before adding a high-RS stock — strong momentum with rising pledges is a trap setup. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/ecs": {
            "get": {
                "operationId": "get_ecs_leaderboard",
                "summary": "Ranked leaderboard of alpha candidates immediately after quarterly earnings — stocks where fundamentals (profit growth, margins, cash f...",
                "description": "Ranked leaderboard of alpha candidates immediately after quarterly earnings — stocks where fundamentals (profit growth, margins, cash flow) AND price momentum both confirm the beat. Do not manually filter get_financials to find earnings quality; use this pre-computed ranking instead. Cross-reference with get_pead_candidates for highest-conviction post-earnings setups. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "quarter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (default: latest)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector — REST-only, not exposed via MCP"
                    },
                    {
                        "name": "min_ecs",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Minimum ECS score (default 0) — REST-only, not exposed via MCP"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-ecs",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_ecs_leaderboard",
                    "description": "Ranked leaderboard of alpha candidates immediately after quarterly earnings — stocks where fundamentals (profit growth, margins, cash flow) AND price momentum both confirm the beat. Do not manually filter get_financials to find earnings quality; use this pre-computed ranking instead. Cross-reference with get_pead_candidates for highest-conviction post-earnings setups. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "quarter": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (default: latest)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/conviction": {
            "get": {
                "operationId": "get_conviction_ranking",
                "summary": "Stocks passing the most simultaneous Finmagine scans (Stage 2, VCP, near-52WH, RS momentum, PEAD, etc.). High scan-overlap count = strong...",
                "description": "Stocks passing the most simultaneous Finmagine scans (Stage 2, VCP, near-52WH, RS momentum, PEAD, etc.). High scan-overlap count = strongest multi-factor confluence signal. Use this as a starting point for deep dives rather than manually combining screener outputs. A stock appearing in 4+ scans is worth investigating regardless of sector. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "min_matches",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Minimum scan appearances (default 3, max 5)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-conviction",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_conviction_ranking",
                    "description": "Stocks passing the most simultaneous Finmagine scans (Stage 2, VCP, near-52WH, RS momentum, PEAD, etc.). High scan-overlap count = strongest multi-factor confluence signal. Use this as a starting point for deep dives rather than manually combining screener outputs. A stock appearing in 4+ scans is worth investigating regardless of sector. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "min_matches": {
                                "type": "integer",
                                "description": "Minimum scan appearances (default 3, max 5)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/pead": {
            "get": {
                "operationId": "get_pead_candidates",
                "summary": "Active Post-Earnings Announcement Drift candidates: stocks that recently beat earnings AND show volume + price drift signals, still withi...",
                "description": "Active Post-Earnings Announcement Drift candidates: stocks that recently beat earnings AND show volume + price drift signals, still within the drift window (last 45 days). Price drift often continues weeks after a strong beat. Cross-reference with get_ecs_leaderboard — stocks appearing in both lists have the highest post-earnings conviction. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector — REST-only, not exposed via MCP"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-pead",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_pead_candidates",
                    "description": "Active Post-Earnings Announcement Drift candidates: stocks that recently beat earnings AND show volume + price drift signals, still within the drift window (last 45 days). Price drift often continues weeks after a strong beat. Cross-reference with get_ecs_leaderboard — stocks appearing in both lists have the highest post-earnings conviction. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/rrg": {
            "get": {
                "operationId": "get_sector_rrg",
                "summary": "Sector rotation coordinates for top-down macro screening. Call this before searching for individual stocks. Leading quadrant (RS-Ratio > ...",
                "description": "Sector rotation coordinates for top-down macro screening. Call this before searching for individual stocks. Leading quadrant (RS-Ratio > 100 AND RS-Momentum > 100) = sectors to buy in. Lagging quadrant = avoid regardless of individual stock RS. Improving = early rotation opportunity. Weakening = reduce exposure. Focus new positions on Leading and Improving sectors only. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "as_of",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "\"1m\" for 1-month-ago snapshot, \"YYYY-MM-DD\" for specific date, or omit for latest"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-rrg",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_sector_rrg",
                    "description": "Sector rotation coordinates for top-down macro screening. Call this before searching for individual stocks. Leading quadrant (RS-Ratio > 100 AND RS-Momentum > 100) = sectors to buy in. Lagging quadrant = avoid regardless of individual stock RS. Improving = early rotation opportunity. Weakening = reduce exposure. Focus new positions on Leading and Improving sectors only. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "as_of": {
                                "type": "string",
                                "description": "\"1m\" for 1-month-ago snapshot, \"YYYY-MM-DD\" for specific date, or omit for latest"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/industry-stages": {
            "get": {
                "operationId": "get_industry_stages",
                "summary": "Weinstein Stage 1–4 classification for all 51 NSE industries. Stage 2 = active uptrend — only buy stocks whose industry is in Stage 2...",
                "description": "Weinstein Stage 1–4 classification for all 51 NSE industries. Stage 2 = active uptrend — only buy stocks whose industry is in Stage 2 or transitioning into it. Stage 4 = downtrend — avoid. Cross-reference with get_sector_rrg Leading sectors: Stage 2 industry + Leading RRG sector = highest-conviction setup. Returns Stage 0 in broad market corrections where no industry clears the uptrend threshold. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-industry-stages",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_industry_stages",
                    "description": "Weinstein Stage 1–4 classification for all 51 NSE industries. Stage 2 = active uptrend — only buy stocks whose industry is in Stage 2 or transitioning into it. Stage 4 = downtrend — avoid. Cross-reference with get_sector_rrg Leading sectors: Stage 2 industry + Leading RRG sector = highest-conviction setup. Returns Stage 0 in broad market corrections where no industry clears the uptrend threshold. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/rs-changes": {
            "get": {
                "operationId": "get_rs_changes",
                "summary": "Momentum acceleration signals: stocks whose RS rating has improved most over N days. Stocks early in a RS improvement cycle often lead th...",
                "description": "Momentum acceleration signals: stocks whose RS rating has improved most over N days. Stocks early in a RS improvement cycle often lead the next phase of the move. An RS delta > 20 points in 20 days = strong acceleration. Combine with get_sector_rrg Leading sectors for highest-conviction early-entry setups. Tier: api_pro+.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days (default 10, max 30)"
                    },
                    {
                        "name": "direction",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "gainers | losers | all (default: gainers)"
                    },
                    {
                        "name": "min_delta",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Minimum RS points moved (default 15)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-rs-changes",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_rs_changes",
                    "description": "Momentum acceleration signals: stocks whose RS rating has improved most over N days. Stocks early in a RS improvement cycle often lead the next phase of the move. An RS delta > 20 points in 20 days = strong acceleration. Combine with get_sector_rrg Leading sectors for highest-conviction early-entry setups. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "Look-back days (default 10, max 30)"
                            },
                            "direction": {
                                "type": "string",
                                "description": "gainers | losers | all (default: gainers)"
                            },
                            "min_delta": {
                                "type": "integer",
                                "description": "Minimum RS points moved (default 15)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/feeds/order-wins": {
            "get": {
                "operationId": "get_order_wins_feed",
                "summary": "Market-wide order win announcements feed across all NSE companies. Use this during event-flow scanning to identify which sectors are winn...",
                "description": "Market-wide order win announcements feed across all NSE companies. Use this during event-flow scanning to identify which sectors are winning new business. A cluster of order wins in one sector + Leading RRG position = sector-level catalyst. For a single company's order history, use get_order_wins. Tier: api_pro+.",
                "tags": [
                    "Feeds"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days (default 30, max 90)"
                    },
                    {
                        "name": "confidence",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "high | medium | all (default: all)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "feeds-order-wins",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_order_wins_feed",
                    "description": "Market-wide order win announcements feed across all NSE companies. Use this during event-flow scanning to identify which sectors are winning new business. A cluster of order wins in one sector + Leading RRG position = sector-level catalyst. For a single company's order history, use get_order_wins. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "Look-back days (default 30, max 90)"
                            },
                            "confidence": {
                                "type": "string",
                                "description": "high | medium | all (default: all)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/feeds/insider": {
            "get": {
                "operationId": "get_insider_feed",
                "summary": "Market-wide promoter and director transaction feed. Look for promoter buying in stocks that also appear in get_market_momentum top-30 —...",
                "description": "Market-wide promoter and director transaction feed. Look for promoter buying in stocks that also appear in get_market_momentum top-30 — insider buying + price momentum is a high-conviction alignment. For a single company's history, use get_insider_trades. Tier: api_pro+.",
                "tags": [
                    "Feeds"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days (default 30, max 90)"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "buy | sell | all (default: all)"
                    },
                    {
                        "name": "min_value_cr",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Minimum deal value in Crores"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "feeds-insider",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_insider_feed",
                    "description": "Market-wide promoter and director transaction feed. Look for promoter buying in stocks that also appear in get_market_momentum top-30 — insider buying + price momentum is a high-conviction alignment. For a single company's history, use get_insider_trades. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "Look-back days (default 30, max 90)"
                            },
                            "type": {
                                "type": "string",
                                "description": "buy | sell | all (default: all)"
                            },
                            "min_value_cr": {
                                "type": "number",
                                "description": "Minimum deal value in Crores"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/feeds/bulk-block-deals": {
            "get": {
                "operationId": "get_bulk_block_deals",
                "summary": "Institutional bulk and block deal feed: large buy/sell transactions with counterparty names. Deals > ₹100 Cr from known institutional n...",
                "description": "Institutional bulk and block deal feed: large buy/sell transactions with counterparty names. Deals > ₹100 Cr from known institutional names signal conviction-level positioning. A block deal by a major FII in a Leading-sector stock is a strong setup confirmation. Tier: api_pro+.",
                "tags": [
                    "Feeds"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days (default 14, max 90)"
                    },
                    {
                        "name": "deal_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "bulk | block | all (default: all)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "feeds-bulk-block-deals",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_bulk_block_deals",
                    "description": "Institutional bulk and block deal feed: large buy/sell transactions with counterparty names. Deals > ₹100 Cr from known institutional names signal conviction-level positioning. A block deal by a major FII in a Leading-sector stock is a strong setup confirmation. Tier: api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "Look-back days (default 14, max 90)"
                            },
                            "deal_type": {
                                "type": "string",
                                "description": "bulk | block | all (default: all)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/feeds/circuit": {
            "get": {
                "operationId": "get_circuit_stocks",
                "summary": "Stocks that hit upper or lower circuit limits on a given date. Upper circuits with no RS rating = retail-driven micro-cap activity (low q...",
                "description": "Stocks that hit upper or lower circuit limits on a given date. Upper circuits with no RS rating = retail-driven micro-cap activity (low quality). Upper circuits among Nifty 500 constituents = institutional momentum worth investigating. Free tier.",
                "tags": [
                    "Feeds"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "direction",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "upper | lower | all (default: all)"
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "YYYY-MM-DD (default: today)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "feeds-circuit",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_circuit_stocks",
                    "description": "Stocks that hit upper or lower circuit limits on a given date. Upper circuits with no RS rating = retail-driven micro-cap activity (low quality). Upper circuits among Nifty 500 constituents = institutional momentum worth investigating. Free tier.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "direction": {
                                "type": "string",
                                "description": "upper | lower | all (default: all)"
                            },
                            "date": {
                                "type": "string",
                                "description": "YYYY-MM-DD (default: today)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/feeds/corporate-actions": {
            "get": {
                "operationId": "get_corporate_actions_feed",
                "summary": "Recent corporate actions across all NSE companies: splits, bonuses, rights, buybacks within a look-back window. Requires api_pro+.",
                "description": "Recent corporate actions across all NSE companies: splits, bonuses, rights, buybacks within a look-back window. Requires api_pro+.",
                "tags": [
                    "Feeds"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "action_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "split | bonus | rights | buyback | merger | other | all"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Look-back days 1-90 (default 30)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results 1-50 (default 25)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "feeds-corporate-actions",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_corporate_actions_feed",
                    "description": "Recent corporate actions across all NSE companies: splits, bonuses, rights, buybacks within a look-back window. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "action_type": {
                                "type": "string",
                                "description": "split | bonus | rights | buyback | merger | other | all"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Look-back days 1-90 (default 30)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results 1-50 (default 25)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/daily-prices": {
            "get": {
                "operationId": "get_daily_prices",
                "summary": "Daily OHLCV + delivery % history for an NSE stock. Delivery % > 60% on a strong up-day signals genuine accumulation (not intraday specula...",
                "description": "Daily OHLCV + delivery % history for an NSE stock. Delivery % > 60% on a strong up-day signals genuine accumulation (not intraday speculation). Use this to compute N-day price change, identify consolidation bases, or verify volume signature on breakout days. Requires api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Start date YYYY-MM-DD (optional)"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "End date YYYY-MM-DD (default: today)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max rows 1-365 (default 60)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-daily-prices",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_daily_prices",
                    "description": "Daily OHLCV + delivery % history for an NSE stock. Delivery % > 60% on a strong up-day signals genuine accumulation (not intraday speculation). Use this to compute N-day price change, identify consolidation bases, or verify volume signature on breakout days. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "from": {
                                "type": "string",
                                "description": "Start date YYYY-MM-DD (optional)"
                            },
                            "to": {
                                "type": "string",
                                "description": "End date YYYY-MM-DD (default: today)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max rows 1-365 (default 60)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/shareholding": {
            "get": {
                "operationId": "get_shareholding",
                "summary": "Quarterly ownership pattern: promoter, FII, DII, and public holding % over time. FII accumulation (rising FII % over 3+ quarters) is a st...",
                "description": "Quarterly ownership pattern: promoter, FII, DII, and public holding % over time. FII accumulation (rising FII % over 3+ quarters) is a strong institutional endorsement. Promoter holding decline without a stated reason is a red flag. Requires api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "periods",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Quarters to return 1-16 (default 8)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-shareholding",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_shareholding",
                    "description": "Quarterly ownership pattern: promoter, FII, DII, and public holding % over time. FII accumulation (rising FII % over 3+ quarters) is a strong institutional endorsement. Promoter holding decline without a stated reason is a red flag. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "periods": {
                                "type": "integer",
                                "description": "Quarters to return 1-16 (default 8)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/corporate-actions": {
            "get": {
                "operationId": "get_corporate_actions",
                "summary": "Historical corporate actions for an NSE stock: stock splits, bonuses, rights issues, buybacks. Requires api_pro+.",
                "description": "Historical corporate actions for an NSE stock: stock splits, bonuses, rights issues, buybacks. Requires api_pro+.",
                "tags": [
                    "Company Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE ticker symbol"
                    },
                    {
                        "name": "action_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "split | bonus | rights | buyback | merger | other | all"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max rows 1-20 (default 10)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-corporate-actions",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_corporate_actions",
                    "description": "Historical corporate actions for an NSE stock: stock splits, bonuses, rights issues, buybacks. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE ticker symbol"
                            },
                            "action_type": {
                                "type": "string",
                                "description": "split | bonus | rights | buyback | merger | other | all"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max rows 1-20 (default 10)"
                            }
                        },
                        "required": [
                            "symbol"
                        ]
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/index-constituents": {
            "get": {
                "operationId": "get_index_constituents",
                "summary": "All stocks in a named NSE index. Use this to check whether a candidate stock is in a specific index (index inclusion = institutional cove...",
                "description": "All stocks in a named NSE index. Use this to check whether a candidate stock is in a specific index (index inclusion = institutional coverage) or to cross-reference index composition with a sector or momentum filter. Index names must be uppercase: \"NIFTY 50\", \"NIFTY 500\", \"NIFTY MIDCAP 150\". Omit index to list all 30 available index names.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "index",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Index name — must be uppercase e.g. \"NIFTY 50\", \"NIFTY 500\", \"NIFTY MIDCAP 150\". Omit to list all valid names."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-index-constituents",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_index_constituents",
                    "description": "All stocks in a named NSE index. Use this to check whether a candidate stock is in a specific index (index inclusion = institutional coverage) or to cross-reference index composition with a sector or momentum filter. Index names must be uppercase: \"NIFTY 50\", \"NIFTY 500\", \"NIFTY MIDCAP 150\". Omit index to list all 30 available index names.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "index": {
                                "type": "string",
                                "description": "Index name — must be uppercase e.g. \"NIFTY 50\", \"NIFTY 500\", \"NIFTY MIDCAP 150\". Omit to list all valid names."
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/top-movers": {
            "get": {
                "operationId": "get_top_movers",
                "summary": "Daily top gainers and losers by % change across NSE. Use this at session start to read market character: if all top gainers are micro-cap...",
                "description": "Daily top gainers and losers by % change across NSE. Use this at session start to read market character: if all top gainers are micro-caps with no RS rating, it is retail-driven (low quality). If large-caps from Leading sectors dominate, it is institutional. Combine with get_circuit_stocks to separate momentum from circuit-driven moves. Free tier.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "direction",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "gainers | losers | all (default: gainers)"
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Trading date YYYY-MM-DD (default: latest)"
                    },
                    {
                        "name": "min_mcap",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min market cap in Cr (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results 1-25 (default 20)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-top-movers",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_top_movers",
                    "description": "Daily top gainers and losers by % change across NSE. Use this at session start to read market character: if all top gainers are micro-caps with no RS rating, it is retail-driven (low quality). If large-caps from Leading sectors dominate, it is institutional. Combine with get_circuit_stocks to separate momentum from circuit-driven moves. Free tier.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "direction": {
                                "type": "string",
                                "description": "gainers | losers | all (default: gainers)"
                            },
                            "date": {
                                "type": "string",
                                "description": "Trading date YYYY-MM-DD (default: latest)"
                            },
                            "min_mcap": {
                                "type": "number",
                                "description": "Min market cap in Cr (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results 1-25 (default 20)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/scorecard": {
            "get": {
                "operationId": "get_company_scorecard",
                "summary": "Pre-computed composite scorecard combining momentum and fundamental sub-scores into a single ranking. Use this to quickly compare compani...",
                "description": "Pre-computed composite scorecard combining momentum and fundamental sub-scores into a single ranking. Use this to quickly compare companies without manually scoring get_financials + get_ratios + get_momentum. Omit symbol to get a ranked leaderboard — higher overall_score = better fundamentals + momentum combination. Useful for shortlisting before a full deep dive. Requires api_pro+.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol (omit for ranked list)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max companies for ranked list 1-100 (default 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-scorecard",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_company_scorecard",
                    "description": "Pre-computed composite scorecard combining momentum and fundamental sub-scores into a single ranking. Use this to quickly compare companies without manually scoring get_financials + get_ratios + get_momentum. Omit symbol to get a ranked leaderboard — higher overall_score = better fundamentals + momentum combination. Useful for shortlisting before a full deep dive. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol (omit for ranked list)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max companies for ranked list 1-100 (default 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/market/breakout-conditions": {
            "get": {
                "operationId": "get_breakout_conditions",
                "summary": "Call this first at the start of any session. Returns whether Nifty 50 is above both EMAs (ABOVE_BOTH = breakouts likely to work, take ful...",
                "description": "Call this first at the start of any session. Returns whether Nifty 50 is above both EMAs (ABOVE_BOTH = breakouts likely to work, take full-size entries), above only EMA-21 (ABOVE_21_ONLY = caution, reduce size), or below both (BELOW_BOTH = avoid new breakout trades entirely). Use with get_market_breadth for a complete market regime picture. Free tier.",
                "tags": [
                    "Market Intel"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "History depth 1-90 (default 1 = latest only)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "market-breakout-conditions",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_breakout_conditions",
                    "description": "Call this first at the start of any session. Returns whether Nifty 50 is above both EMAs (ABOVE_BOTH = breakouts likely to work, take full-size entries), above only EMA-21 (ABOVE_21_ONLY = caution, reduce size), or below both (BELOW_BOTH = avoid new breakout trades entirely). Use with get_market_breadth for a complete market regime picture. Free tier.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "days": {
                                "type": "integer",
                                "description": "History depth 1-90 (default 1 = latest only)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/management-tone": {
            "get": {
                "operationId": "get_management_tone",
                "summary": "Deep multi-quarter management tone analysis. Use this (not get_guidance_tone) when you need trend direction: is management confidence imp...",
                "description": "Deep multi-quarter management tone analysis. Use this (not get_guidance_tone) when you need trend direction: is management confidence improving or deteriorating quarter-over-quarter? Returns tone_trajectory, phrase_drift (language shifts that precede guidance changes), and investor_lens. get_guidance_tone gives a single score; this gives the story behind the score. Requires api_pro+.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol e.g. HDFCBANK"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-management-tone",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_management_tone",
                    "description": "Deep multi-quarter management tone analysis. Use this (not get_guidance_tone) when you need trend direction: is management confidence improving or deteriorating quarter-over-quarter? Returns tone_trajectory, phrase_drift (language shifts that precede guidance changes), and investor_lens. get_guidance_tone gives a single score; this gives the story behind the score. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol e.g. HDFCBANK"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/sector-kpis": {
            "get": {
                "operationId": "get_sector_kpis",
                "summary": "Sector-specific operational KPIs extracted from investor presentations — metrics that do not appear in standard financials (e.g. Cement...",
                "description": "Sector-specific operational KPIs extracted from investor presentations — metrics that do not appear in standard financials (e.g. Cement: utilisation %, EBITDA/tonne, realization/tonne; Banks: NIM, GNPA, PCR, CASA; Infra: order backlog, execution rate). Use this to assess operational momentum beyond P&L numbers. Omit period for full trend history. Requires api_pro+.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for all quarters)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "company-sector-kpis",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_sector_kpis",
                    "description": "Sector-specific operational KPIs extracted from investor presentations — metrics that do not appear in standard financials (e.g. Cement: utilisation %, EBITDA/tonne, realization/tonne; Banks: NIM, GNPA, PCR, CASA; Infra: order backlog, execution rate). Use this to assess operational momentum beyond P&L numbers. Omit period for full trend history. Requires api_pro+.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol"
                            },
                            "period": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for all quarters)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/ai-profile": {
            "get": {
                "operationId": "get_ai_company_profile",
                "summary": "Full AI research profile integrating concall analysis, financials, and sector context into 10 sections: business model, competitive moat,...",
                "description": "Full AI research profile integrating concall analysis, financials, and sector context into 10 sections: business model, competitive moat, management quality, growth drivers, risk factors, financial health, industry dynamics, recent developments, investment thesis, bull/bear case. Use this instead of manually synthesising get_financials + get_ratios + get_management_tone for a first-pass research view. Requires api_max.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol e.g. RELIANCE"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "company-ai-profile",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_ai_company_profile",
                    "description": "Full AI research profile integrating concall analysis, financials, and sector context into 10 sections: business model, competitive moat, management quality, growth drivers, risk factors, financial health, industry dynamics, recent developments, investment thesis, bull/bear case. Use this instead of manually synthesising get_financials + get_ratios + get_management_tone for a first-pass research view. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol e.g. RELIANCE"
                            },
                            "period": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/company/concall-decoder": {
            "get": {
                "operationId": "get_concall_decoder",
                "summary": "Structured extraction of management commitments from earnings call transcripts: what they guided for, whether they delivered, capex plans...",
                "description": "Structured extraction of management commitments from earnings call transcripts: what they guided for, whether they delivered, capex plans, margin targets, growth outlook. Use this to assess management credibility — a pattern of missed guidance is a red flag regardless of current RS rating. Requires api_max.",
                "tags": [
                    "AI Content"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "NSE symbol e.g. RELIANCE"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "company-concall-decoder",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_concall_decoder",
                    "description": "Structured extraction of management commitments from earnings call transcripts: what they guided for, whether they delivered, capex plans, margin targets, growth outlook. Use this to assess management credibility — a pattern of missed guidance is a red flag regardless of current RS rating. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "NSE symbol e.g. RELIANCE"
                            },
                            "period": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/companies": {
            "get": {
                "operationId": "us_search_companies",
                "summary": "Search US stocks by name or ticker symbol. Returns symbol, name, sector, industry, market cap (USD billions), and scorecard score. No tie...",
                "description": "Search US stocks by name or ticker symbol. Returns symbol, name, sector, industry, market cap (USD billions), and scorecard score. No tier restriction on search — free keys get 10 results, paid keys get up to 50.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "query",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Company name or ticker symbol (partial match)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (e.g. Technology, Healthcare)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 10, free max 20, paid max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-search",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_search_companies",
                    "description": "Search US stocks by name or ticker symbol. Returns symbol, name, sector, industry, market cap (USD billions), and scorecard score. No tier restriction on search — free keys get 10 results, paid keys get up to 50.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "query": {
                                "type": "string",
                                "description": "Company name or ticker symbol (partial match)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (e.g. Technology, Healthcare)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 10, free max 20, paid max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/profile": {
            "get": {
                "operationId": "us_get_company_profile",
                "summary": "Full profile for a US stock: price, market cap (USD billions), 52-week range, RS rating, P/E, ROE, operating margin, scorecard score, ind...",
                "description": "Full profile for a US stock: price, market cap (USD billions), 52-week range, RS rating, P/E, ROE, operating margin, scorecard score, index membership (SP500/NDX100/DOW30). Free tier restricted to 25 S&P 500 mega-caps: AAPL, MSFT, AMZN, NVDA, GOOGL, META, TSLA, JPM, V, UNH, AVGO, LLY, XOM, MA, HD, PG, COST, MRK, ABBV, CVX, KO, PEP, ORCL, BAC, JNJ.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol e.g. AAPL"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-profile",
                "x-tier": "free",
                "x-tier-note": "Free tier restricted to a fixed symbol list",
                "x-mcp-tool": {
                    "name": "us_get_company_profile",
                    "description": "Full profile for a US stock: price, market cap (USD billions), 52-week range, RS rating, P/E, ROE, operating margin, scorecard score, index membership (SP500/NDX100/DOW30). Free tier restricted to 25 S&P 500 mega-caps: AAPL, MSFT, AMZN, NVDA, GOOGL, META, TSLA, JPM, V, UNH, AVGO, LLY, XOM, MA, HD, PG, COST, MRK, ABBV, CVX, KO, PEP, ORCL, BAC, JNJ.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol e.g. AAPL"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/breadth": {
            "get": {
                "operationId": "us_get_market_breadth",
                "summary": "US market breadth snapshot: percentage of stocks above SMA-50 and SMA-200, total stocks tracked, and sector-level breakdown. Use this to ...",
                "description": "US market breadth snapshot: percentage of stocks above SMA-50 and SMA-200, total stocks tracked, and sector-level breakdown. Use this to gauge overall US market health before screening.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-breadth",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_market_breadth",
                    "description": "US market breadth snapshot: percentage of stocks above SMA-50 and SMA-200, total stocks tracked, and sector-level breakdown. Use this to gauge overall US market health before screening.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/sectors": {
            "get": {
                "operationId": "us_get_market_sectors",
                "summary": "US sector summary: stock count, average scorecard score, average RS rating, and breadth (% above SMA-50 and SMA-200) for each GICS sector...",
                "description": "US sector summary: stock count, average scorecard score, average RS rating, and breadth (% above SMA-50 and SMA-200) for each GICS sector. Use to identify leading vs lagging sectors.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-sectors",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_market_sectors",
                    "description": "US sector summary: stock count, average scorecard score, average RS rating, and breadth (% above SMA-50 and SMA-200) for each GICS sector. Use to identify leading vs lagging sectors.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/top-movers": {
            "get": {
                "operationId": "us_get_top_movers",
                "summary": "US top gainers or losers by recent price return. Direction: gainers (default) or losers. Period: 1w (1 week) or 1m (1 month, default). Re...",
                "description": "US top gainers or losers by recent price return. Direction: gainers (default) or losers. Period: 1w (1 week) or 1m (1 month, default). Returns symbol, name, sector, current price, return %, RS rating, market cap in USD billions.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "direction",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "gainers | losers (default: gainers)"
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "1w | 1m (default: 1m)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "min_mcap_b",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min market cap in USD billions (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 20, max 25)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-movers",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_top_movers",
                    "description": "US top gainers or losers by recent price return. Direction: gainers (default) or losers. Period: 1w (1 week) or 1m (1 month, default). Returns symbol, name, sector, current price, return %, RS rating, market cap in USD billions.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "direction": {
                                "type": "string",
                                "description": "gainers | losers (default: gainers)"
                            },
                            "period": {
                                "type": "string",
                                "description": "1w | 1m (default: 1m)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "min_mcap_b": {
                                "type": "number",
                                "description": "Min market cap in USD billions (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 20, max 25)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/breakout-conditions": {
            "get": {
                "operationId": "us_get_breakout_conditions",
                "summary": "S&P 500 (SPY) technical posture: is SPY above SMA-50 and SMA-200? Returns BULL_CONFIRMED, ABOVE_SMA50_ONLY, or BEAR_CONFIRMED regime with...",
                "description": "S&P 500 (SPY) technical posture: is SPY above SMA-50 and SMA-200? Returns BULL_CONFIRMED, ABOVE_SMA50_ONLY, or BEAR_CONFIRMED regime with SPY price, EMA-20, and RSI-14.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-t-breakout",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_breakout_conditions",
                    "description": "S&P 500 (SPY) technical posture: is SPY above SMA-50 and SMA-200? Returns BULL_CONFIRMED, ABOVE_SMA50_ONLY, or BEAR_CONFIRMED regime with SPY price, EMA-20, and RSI-14.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/financials": {
            "get": {
                "operationId": "us_get_financials",
                "summary": "Historical financials for a US stock — income statement, balance sheet, or cash flow — annual or quarterly. Key income fields: revenu...",
                "description": "Historical financials for a US stock — income statement, balance sheet, or cash flow — annual or quarterly. Key income fields: revenue, netinc, epsdil, ncfo, capex, fcf. Key balance fields: assets, debtnc, assetsc. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "statement",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "income | balance | cashflow | all (default: income)"
                    },
                    {
                        "name": "period_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "annual | quarterly (default: annual)"
                    },
                    {
                        "name": "periods",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Number of most recent periods to return (default 5)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-financials",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_financials",
                    "description": "Historical financials for a US stock — income statement, balance sheet, or cash flow — annual or quarterly. Key income fields: revenue, netinc, epsdil, ncfo, capex, fcf. Key balance fields: assets, debtnc, assetsc. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "statement": {
                                "type": "string",
                                "description": "income | balance | cashflow | all (default: income)"
                            },
                            "period_type": {
                                "type": "string",
                                "description": "annual | quarterly (default: annual)"
                            },
                            "periods": {
                                "type": "integer",
                                "description": "Number of most recent periods to return (default 5)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/ratios": {
            "get": {
                "operationId": "us_get_ratios",
                "summary": "Financial ratios for a US stock with classification (Excellent/Good/Average/Poor) and peer percentile. Covers valuation (P/E, P/B, EV/EBI...",
                "description": "Financial ratios for a US stock with classification (Excellent/Good/Average/Poor) and peer percentile. Covers valuation (P/E, P/B, EV/EBITDA), profitability (ROE, margins), growth, leverage, and liquidity. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "codes",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Comma-separated ratio codes to filter (e.g. V001,P006,G001). Omit for all ratios."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-ratios",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_ratios",
                    "description": "Financial ratios for a US stock with classification (Excellent/Good/Average/Poor) and peer percentile. Covers valuation (P/E, P/B, EV/EBITDA), profitability (ROE, margins), growth, leverage, and liquidity. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "codes": {
                                "type": "string",
                                "description": "Comma-separated ratio codes to filter (e.g. V001,P006,G001). Omit for all ratios."
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/momentum": {
            "get": {
                "operationId": "us_get_momentum",
                "summary": "Technical momentum profile for a US stock: RS rating, 1W/1M/3M returns, RSI-14, EMA-20, SMA-50, SMA-200 with above/below flags, distance ...",
                "description": "Technical momentum profile for a US stock: RS rating, 1W/1M/3M returns, RSI-14, EMA-20, SMA-50, SMA-200 with above/below flags, distance from 52-week high, and latest ECS score. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-momentum",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_momentum",
                    "description": "Technical momentum profile for a US stock: RS rating, 1W/1M/3M returns, RSI-14, EMA-20, SMA-50, SMA-200 with above/below flags, distance from 52-week high, and latest ECS score. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/scorecard": {
            "get": {
                "operationId": "us_get_company_scorecard",
                "summary": "Finmagine scorecard for US stocks: 5-dimension score (financial_health, growth_prospects, competitive_position, management_quality, valua...",
                "description": "Finmagine scorecard for US stocks: 5-dimension score (financial_health, growth_prospects, competitive_position, management_quality, valuation) and overall 0–10 score. Omit symbol for ranked list. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol (omit for ranked list)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Rows when returning ranked list (default 50, max 100)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-scorecard",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_company_scorecard",
                    "description": "Finmagine scorecard for US stocks: 5-dimension score (financial_health, growth_prospects, competitive_position, management_quality, valuation) and overall 0–10 score. Omit symbol for ranked list. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol (omit for ranked list)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Rows when returning ranked list (default 50, max 100)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/screener": {
            "get": {
                "operationId": "us_screen_stocks",
                "summary": "Screen US stocks by fundamentals, technicals, and scorecard. Filters: sector, market cap (USD billions), P/E, ROE, operating margin, RS r...",
                "description": "Screen US stocks by fundamentals, technicals, and scorecard. Filters: sector, market cap (USD billions), P/E, ROE, operating margin, RS rating, above SMA-50/200, debt/equity, minimum scorecard score. Returns up to 50 results. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "GICS sector (e.g. Technology, Healthcare)"
                    },
                    {
                        "name": "min_mcap_b",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min market cap USD billions"
                    },
                    {
                        "name": "max_mcap_b",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max market cap USD billions"
                    },
                    {
                        "name": "max_pe",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max P/E ratio"
                    },
                    {
                        "name": "min_roe",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min ROE %"
                    },
                    {
                        "name": "min_opm",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min operating margin %"
                    },
                    {
                        "name": "min_rs",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Min RS rating (1–99)"
                    },
                    {
                        "name": "max_de",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Max debt/equity ratio"
                    },
                    {
                        "name": "above_sma50",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "1 = only stocks above SMA-50"
                    },
                    {
                        "name": "above_sma200",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "1 = only stocks above SMA-200"
                    },
                    {
                        "name": "min_score",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Min Finmagine scorecard score (0–10)"
                    },
                    {
                        "name": "sort_by",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "rs_rating | market_cap_b | roe | opm_pct | overall_score (default: rs_rating)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-screen",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_screen_stocks",
                    "description": "Screen US stocks by fundamentals, technicals, and scorecard. Filters: sector, market cap (USD billions), P/E, ROE, operating margin, RS rating, above SMA-50/200, debt/equity, minimum scorecard score. Returns up to 50 results. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "sector": {
                                "type": "string",
                                "description": "GICS sector (e.g. Technology, Healthcare)"
                            },
                            "min_mcap_b": {
                                "type": "number",
                                "description": "Min market cap USD billions"
                            },
                            "max_mcap_b": {
                                "type": "number",
                                "description": "Max market cap USD billions"
                            },
                            "max_pe": {
                                "type": "number",
                                "description": "Max P/E ratio"
                            },
                            "min_roe": {
                                "type": "number",
                                "description": "Min ROE %"
                            },
                            "min_opm": {
                                "type": "number",
                                "description": "Min operating margin %"
                            },
                            "min_rs": {
                                "type": "integer",
                                "description": "Min RS rating (1–99)"
                            },
                            "max_de": {
                                "type": "number",
                                "description": "Max debt/equity ratio"
                            },
                            "above_sma50": {
                                "type": "integer",
                                "description": "1 = only stocks above SMA-50"
                            },
                            "above_sma200": {
                                "type": "integer",
                                "description": "1 = only stocks above SMA-200"
                            },
                            "min_score": {
                                "type": "number",
                                "description": "Min Finmagine scorecard score (0–10)"
                            },
                            "sort_by": {
                                "type": "string",
                                "description": "rs_rating | market_cap_b | roe | opm_pct | overall_score (default: rs_rating)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/ecs": {
            "get": {
                "operationId": "us_get_ecs_score",
                "summary": "Earnings Catalyst Score (ECS) for a US stock: composite 0–100 score reflecting quality and surprise of recent earnings. Includes revenu...",
                "description": "Earnings Catalyst Score (ECS) for a US stock: composite 0–100 score reflecting quality and surprise of recent earnings. Includes revenue/net income YoY and QoQ, percentile ranks, PEAD signal, and actual vs expected EPS. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-ecs",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_ecs_score",
                    "description": "Earnings Catalyst Score (ECS) for a US stock: composite 0–100 score reflecting quality and surprise of recent earnings. Includes revenue/net income YoY and QoQ, percentile ranks, PEAD signal, and actual vs expected EPS. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/insider-trades": {
            "get": {
                "operationId": "us_get_insider_trades",
                "summary": "Recent SEC Form 4 insider transactions for a US stock: director/officer name, title, transaction type, shares, price per share, and total...",
                "description": "Recent SEC Form 4 insider transactions for a US stock: director/officer name, title, transaction type, shares, price per share, and total value USD. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lookback days (default 90, max 365)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 20, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-insider",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_insider_trades",
                    "description": "Recent SEC Form 4 insider transactions for a US stock: director/officer name, title, transaction type, shares, price per share, and total value USD. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Lookback days (default 90, max 365)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 20, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/conviction": {
            "get": {
                "operationId": "us_get_conviction_ranking",
                "summary": "US stocks appearing in multiple screener presets simultaneously — a quantitative measure of multi-factor conviction. Higher scan_count ...",
                "description": "US stocks appearing in multiple screener presets simultaneously — a quantitative measure of multi-factor conviction. Higher scan_count = passes more screens at once. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "min_scans",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Min number of presets stock must appear in (default 2)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by sector (optional)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 40, max 100)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-conviction",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_conviction_ranking",
                    "description": "US stocks appearing in multiple screener presets simultaneously — a quantitative measure of multi-factor conviction. Higher scan_count = passes more screens at once. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "min_scans": {
                                "type": "integer",
                                "description": "Min number of presets stock must appear in (default 2)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by sector (optional)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 40, max 100)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/market/index-constituents": {
            "get": {
                "operationId": "us_get_index_constituents",
                "summary": "Members of SP500, NDX100 (Nasdaq 100), or DOW30 (Dow Jones 30). Returns symbol, name, GICS sector, RS rating, market cap, P/E, and scorec...",
                "description": "Members of SP500, NDX100 (Nasdaq 100), or DOW30 (Dow Jones 30). Returns symbol, name, GICS sector, RS rating, market cap, P/E, and scorecard score. Use index_name: SP500, NDX100, or DOW30. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "index_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "SP500 | NDX100 | DOW30 (omit to list available indices with counts)"
                    },
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by GICS sector (optional)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-index",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_index_constituents",
                    "description": "Members of SP500, NDX100 (Nasdaq 100), or DOW30 (Dow Jones 30). Returns symbol, name, GICS sector, RS rating, market cap, P/E, and scorecard score. Use index_name: SP500, NDX100, or DOW30. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "index_name": {
                                "type": "string",
                                "description": "SP500 | NDX100 | DOW30 (omit to list available indices with counts)"
                            },
                            "sector": {
                                "type": "string",
                                "description": "Filter by GICS sector (optional)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/order-wins": {
            "get": {
                "operationId": "us_get_order_wins",
                "summary": "Contract wins and significant agreements for US companies sourced from SEC 8-K filings. Returns contract type, value (USD millions), clie...",
                "description": "Contract wins and significant agreements for US companies sourced from SEC 8-K filings. Returns contract type, value (USD millions), client name, segment, geography, AI summary, and confidence. Omit symbol for recent cross-company feed. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol (omit for cross-company feed)"
                    },
                    {
                        "name": "contract_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "order_win | credit_facility | lease | ma_agreement | other | all (default: all)"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lookback days (default 90, max 365)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 20, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-order-wins",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_order_wins",
                    "description": "Contract wins and significant agreements for US companies sourced from SEC 8-K filings. Returns contract type, value (USD millions), client name, segment, geography, AI summary, and confidence. Omit symbol for recent cross-company feed. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol (omit for cross-company feed)"
                            },
                            "contract_type": {
                                "type": "string",
                                "description": "order_win | credit_facility | lease | ma_agreement | other | all (default: all)"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Lookback days (default 90, max 365)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 20, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/management-tone": {
            "get": {
                "operationId": "us_get_management_tone",
                "summary": "Management tone analysis across recent earnings calls for a US company: per-quarter tone_read, top messages, dodged topics, and investor ...",
                "description": "Management tone analysis across recent earnings calls for a US company: per-quarter tone_read, top messages, dodged topics, and investor lens. Derived from AI-decoded earnings calls. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "periods",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Number of recent quarters to include (default 4, max 8)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-mgmt-tone",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_management_tone",
                    "description": "Management tone analysis across recent earnings calls for a US company: per-quarter tone_read, top messages, dodged topics, and investor lens. Derived from AI-decoded earnings calls. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "periods": {
                                "type": "integer",
                                "description": "Number of recent quarters to include (default 4, max 8)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/ai-summary": {
            "get": {
                "operationId": "us_get_ai_quarterly_summary",
                "summary": "AI-generated one-pager for a US company's most recent earnings: verdict, key KPIs, what went right, what to watch, management guidance, a...",
                "description": "AI-generated one-pager for a US company's most recent earnings: verdict, key KPIs, what went right, what to watch, management guidance, and investor lens. Faster than reading the full report. Requires api_pro.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "quarter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-t-ai-q",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_ai_quarterly_summary",
                    "description": "AI-generated one-pager for a US company's most recent earnings: verdict, key KPIs, what went right, what to watch, management guidance, and investor lens. Faster than reading the full report. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "quarter": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/ai-profile": {
            "get": {
                "operationId": "us_get_ai_company_profile",
                "summary": "Deep AI-generated company profile for a US stock: 10-section analysis covering business model, financials, competitive moat, management q...",
                "description": "Deep AI-generated company profile for a US stock: 10-section analysis covering business model, financials, competitive moat, management quality, risks, and investment thesis. Updated each earnings cycle. Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "quarter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-ai-profile",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_ai_company_profile",
                    "description": "Deep AI-generated company profile for a US stock: 10-section analysis covering business model, financials, competitive moat, management quality, risks, and investment thesis. Updated each earnings cycle. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "quarter": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/full-report": {
            "get": {
                "operationId": "us_get_full_report",
                "summary": "Full AI research report for a US stock with COMPELLING/WATCHLIST/AVOID stance. Complete fundamental analysis narrative in plain text. Req...",
                "description": "Full AI research report for a US stock with COMPELLING/WATCHLIST/AVOID stance. Complete fundamental analysis narrative in plain text. Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-full-report",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_full_report",
                    "description": "Full AI research report for a US stock with COMPELLING/WATCHLIST/AVOID stance. Complete fundamental analysis narrative in plain text. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/screener/natural-language": {
            "get": {
                "operationId": "us_screen_natural_language",
                "summary": "Screen US stocks using plain English. Examples: \"profitable large-cap tech stocks with low debt\", \"healthcare companies with high ROE and...",
                "description": "Screen US stocks using plain English. Examples: \"profitable large-cap tech stocks with low debt\", \"healthcare companies with high ROE and strong earnings growth\". Converts the query to filter criteria and returns matching stocks. Uses Groq/Gemini (no Finmagine paid LLM keys). Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "query",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Natural language screen description, max 200 chars"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 20, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-nl-screen",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_screen_natural_language",
                    "description": "Screen US stocks using plain English. Examples: \"profitable large-cap tech stocks with low debt\", \"healthcare companies with high ROE and strong earnings growth\". Converts the query to filter criteria and returns matching stocks. Uses Groq/Gemini (no Finmagine paid LLM keys). Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "query"
                        ],
                        "properties": {
                            "query": {
                                "type": "string",
                                "description": "Natural language screen description, max 200 chars"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 20, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/13f-holdings": {
            "get": {
                "operationId": "us_get_13f_holdings",
                "summary": "Superinvestor 13F holdings data. If symbol provided: shows which tracked funds hold it with value and portfolio %. If no symbol: lists al...",
                "description": "Superinvestor 13F holdings data. If symbol provided: shows which tracked funds hold it with value and portfolio %. If no symbol: lists all 14 tracked superinvestors (Berkshire, Pershing, Scion, Appaloosa, Duquesne, etc.). Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol to look up across all portfolios (omit to list all tracked funds)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-13f",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_13f_holdings",
                    "description": "Superinvestor 13F holdings data. If symbol provided: shows which tracked funds hold it with value and portfolio %. If no symbol: lists all 14 tracked superinvestors (Berkshire, Pershing, Scion, Appaloosa, Duquesne, etc.). Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol to look up across all portfolios (omit to list all tracked funds)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/feeds/sec": {
            "get": {
                "operationId": "us_get_sec_feed",
                "summary": "Recent SEC filings from EDGAR: 8-K material events, 10-K annual reports, 10-Q quarterly reports. Filter by symbol, form type, and lookbac...",
                "description": "Recent SEC filings from EDGAR: 8-K material events, 10-K annual reports, 10-Q quarterly reports. Filter by symbol, form type, and lookback days. Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol (omit for market-wide feed)"
                    },
                    {
                        "name": "form_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "8-K | 10-K | 10-Q | all (default: 8-K)"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lookback days (default 14, max 90)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (default 25, max 50)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-sec",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_sec_feed",
                    "description": "Recent SEC filings from EDGAR: 8-K material events, 10-K annual reports, 10-Q quarterly reports. Filter by symbol, form type, and lookback days. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol (omit for market-wide feed)"
                            },
                            "form_type": {
                                "type": "string",
                                "description": "8-K | 10-K | 10-Q | all (default: 8-K)"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Lookback days (default 14, max 90)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Max results (default 25, max 50)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/us/company/concall-decoder": {
            "get": {
                "operationId": "us_get_concall_decoder",
                "summary": "Structured earnings call decoder for a US company: tone_read, top 3 management messages, topics dodged or downplayed, tone shifts from pr...",
                "description": "Structured earnings call decoder for a US company: tone_read, top 3 management messages, topics dodged or downplayed, tone shifts from prior quarter, key numbers from Q&A, management outlook, and investor lens. Requires api_max.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbol",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "US ticker symbol"
                    },
                    {
                        "name": "quarter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_max tier or above"
                    }
                },
                "x-anchor": "us-t-concall",
                "x-tier": "api_max",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_get_concall_decoder",
                    "description": "Structured earnings call decoder for a US company: tone_read, top 3 management messages, topics dodged or downplayed, tone shifts from prior quarter, key numbers from Q&A, management outlook, and investor lens. Requires api_max.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbol"
                        ],
                        "properties": {
                            "symbol": {
                                "type": "string",
                                "description": "US ticker symbol"
                            },
                            "quarter": {
                                "type": "string",
                                "description": "Quarter label e.g. \"Mar 2026\" (omit for latest)"
                            }
                        }
                    }
                },
                "x-response-fields": null
            }
        },
        "/account/byo-keys": {
            "get": {
                "operationId": "list_byo_keys",
                "summary": "List the calling account's saved BYO LLM provider keys (masked, never raw) and the current preferred provider. Call this before start_pre...",
                "description": "List the calling account's saved BYO LLM provider keys (masked, never raw) and the current preferred provider. Call this before start_preset/start_committee to check what's available. No tier gate.",
                "tags": [
                    "Account"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "account-byo-keys",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "list_byo_keys",
                    "description": "List the calling account's saved BYO LLM provider keys (masked, never raw) and the current preferred provider. Call this before start_preset/start_committee to check what's available. No tier gate.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": [
                    [
                        "keys",
                        "Array of {provider, model, key_last4, display_name} — never raw key"
                    ],
                    [
                        "preferred_provider",
                        "Account default provider, or null if unset"
                    ]
                ]
            }
        },
        "/account/byo-key/save": {
            "post": {
                "operationId": "save_byo_key",
                "summary": "Save (or overwrite) a BYO LLM provider key for the calling account. Format-check only — pass test_and_save:true for an immediate live v...",
                "description": "Save (or overwrite) a BYO LLM provider key for the calling account. Format-check only — pass test_and_save:true for an immediate live verification in the same call. No tier gate. Rate-limited: 20/account/hour (test_and_save also counts against the 10/hour test limit). WARNING: this tool argument carries a real, secret provider API key in plain text. Do not send provider secrets through MCP clients you do not fully control — some clients log tool-call arguments. If unsure, save the key via the REST endpoint instead.",
                "tags": [
                    "Account"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                    },
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Model name (omit for provider default)"
                    },
                    {
                        "name": "key",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Raw provider API key — secret, may be logged by your MCP client. See tool description."
                    },
                    {
                        "name": "test_and_save",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "If true, also live-verify the key immediately and include the result (default false). NOT atomic: the save always happens; if the account's test-rate-limit (10/hour) is already exhausted, the key is still saved and test.error explains verification was skipped, rather than the whole call failing."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "account-byo-key-save",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "save_byo_key",
                    "description": "Save (or overwrite) a BYO LLM provider key for the calling account. Format-check only — pass test_and_save:true for an immediate live verification in the same call. No tier gate. Rate-limited: 20/account/hour (test_and_save also counts against the 10/hour test limit). WARNING: this tool argument carries a real, secret provider API key in plain text. Do not send provider secrets through MCP clients you do not fully control — some clients log tool-call arguments. If unsure, save the key via the REST endpoint instead.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "provider",
                            "key"
                        ],
                        "properties": {
                            "provider": {
                                "type": "string",
                                "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                            },
                            "model": {
                                "type": "string",
                                "description": "Model name (omit for provider default)"
                            },
                            "key": {
                                "type": "string",
                                "description": "Raw provider API key — secret, may be logged by your MCP client. See tool description."
                            },
                            "test_and_save": {
                                "type": "boolean",
                                "description": "If true, also live-verify the key immediately and include the result (default false). NOT atomic: the save always happens; if the account's test-rate-limit (10/hour) is already exhausted, the key is still saved and test.error explains verification was skipped, rather than the whole call failing."
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "provider, saved",
                        "Echoes the saved provider"
                    ],
                    [
                        "test",
                        "Present only if test_and_save was true — {ok, error?}"
                    ]
                ]
            }
        },
        "/account/byo-key/remove": {
            "post": {
                "operationId": "remove_byo_key",
                "summary": "Remove a saved BYO LLM provider key. If it was the preferred provider, the preferred-provider setting is cleared too. No tier gate.",
                "description": "Remove a saved BYO LLM provider key. If it was the preferred provider, the preferred-provider setting is cleared too. No tier gate.",
                "tags": [
                    "Account"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "account-byo-key-remove",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "remove_byo_key",
                    "description": "Remove a saved BYO LLM provider key. If it was the preferred provider, the preferred-provider setting is cleared too. No tier gate.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "provider"
                        ],
                        "properties": {
                            "provider": {
                                "type": "string",
                                "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "provider, removed",
                        "Echoes the removed provider"
                    ],
                    [
                        "preferred_provider_cleared",
                        "True if this was the preferred provider (now cleared)"
                    ]
                ]
            }
        },
        "/account/byo-key/set-preferred": {
            "post": {
                "operationId": "set_preferred_byo_key",
                "summary": "Set the account-wide default LLM provider. This is an account default, not a per-task control — presets/committee calls should instead ...",
                "description": "Set the account-wide default LLM provider. This is an account default, not a per-task control — presets/committee calls should instead pass a per-call `provider` hint if they need a specific one, to avoid racing with other concurrent workflows on the same account. No tier gate.",
                "tags": [
                    "Account"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Must already have a saved key — anthropic | openai | gemini | groq | deepseek | openrouter"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "account-byo-key-set-preferred",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "set_preferred_byo_key",
                    "description": "Set the account-wide default LLM provider. This is an account default, not a per-task control — presets/committee calls should instead pass a per-call `provider` hint if they need a specific one, to avoid racing with other concurrent workflows on the same account. No tier gate.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "provider"
                        ],
                        "properties": {
                            "provider": {
                                "type": "string",
                                "description": "Must already have a saved key — anthropic | openai | gemini | groq | deepseek | openrouter"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "provider, preferred",
                        "Echoes the new preferred provider"
                    ]
                ]
            }
        },
        "/account/byo-key/test": {
            "post": {
                "operationId": "test_byo_key",
                "summary": "Live-verify a BYO LLM provider key against the actual provider (~15s). Pass {provider} alone to re-test the already-saved key (no secret ...",
                "description": "Live-verify a BYO LLM provider key against the actual provider (~15s). Pass {provider} alone to re-test the already-saved key (no secret transmitted) — prefer this mode. Pass {provider,model,key} to test an ad-hoc value without saving. No tier gate. Rate-limited: 10/account/hour — this makes a real outbound call to the provider. WARNING (ad-hoc mode only): the key argument carries a real, secret provider API key in plain text. Do not send provider secrets through MCP clients you do not fully control — some clients log tool-call arguments.",
                "tags": [
                    "Account"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                    },
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Only used with an ad-hoc key"
                    },
                    {
                        "name": "key",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Omit to re-test the already-saved key (preferred). If given: a secret, may be logged by your MCP client. See tool description."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "account-byo-key-test",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "test_byo_key",
                    "description": "Live-verify a BYO LLM provider key against the actual provider (~15s). Pass {provider} alone to re-test the already-saved key (no secret transmitted) — prefer this mode. Pass {provider,model,key} to test an ad-hoc value without saving. No tier gate. Rate-limited: 10/account/hour — this makes a real outbound call to the provider. WARNING (ad-hoc mode only): the key argument carries a real, secret provider API key in plain text. Do not send provider secrets through MCP clients you do not fully control — some clients log tool-call arguments.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "provider"
                        ],
                        "properties": {
                            "provider": {
                                "type": "string",
                                "description": "anthropic | openai | gemini | groq | deepseek | openrouter"
                            },
                            "model": {
                                "type": "string",
                                "description": "Only used with an ad-hoc key"
                            },
                            "key": {
                                "type": "string",
                                "description": "Omit to re-test the already-saved key (preferred). If given: a secret, may be logged by your MCP client. See tool description."
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "provider",
                        "Echoes the tested provider"
                    ],
                    [
                        "result",
                        "{ok: bool, error?: string} — live provider verification result"
                    ]
                ]
            }
        },
        "/us/market/momentum": {
            "get": {
                "operationId": "us_market_momentum",
                "summary": "Top US stocks ranked by RS rating (IBD-style 1-99 vs full US universe). RS >= 90 = elite momentum. No tier gate — source data is fully ...",
                "description": "Top US stocks ranked by RS rating (IBD-style 1-99 vs full US universe). RS >= 90 = elite momentum. No tier gate — source data is fully public.",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "sector",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional sector filter"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results to return (tier-capped)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "us-market-momentum",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_market_momentum",
                    "description": "Top US stocks ranked by RS rating (IBD-style 1-99 vs full US universe). RS >= 90 = elite momentum. No tier gate — source data is fully public.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "sector": {
                                "type": "string",
                                "description": "Optional sector filter"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results to return (tier-capped)"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "stocks",
                        "Array ranked by rs_rating DESC"
                    ],
                    [
                        "count, sorted_by",
                        "Result metadata"
                    ]
                ]
            }
        },
        "/market/trader-scan": {
            "get": {
                "operationId": "market_trader_scan",
                "summary": "NSE stocks matching a precomputed technical scan: Stage 2 breakouts, VCP setups, Near-High, High Volume, or Breakout Readiness Score (BRS...",
                "description": "NSE stocks matching a precomputed technical scan: Stage 2 breakouts, VCP setups, Near-High, High Volume, or Breakout Readiness Score (BRS). Mirrors the /picks/ Trader tab. Refreshed weekdays 12:30 IST. Use allThree for the highest-confluence names (matching multiple scans simultaneously). Requires api_pro.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "scan_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "allThree | stage2NearHigh | vcp | highVol | stage2 | brs | volume | ipo (default allThree)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Max results (tier-capped) — REST-only, not exposed via MCP schema explicitly but accepted"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "market-trader-scan",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "market_trader_scan",
                    "description": "NSE stocks matching a precomputed technical scan: Stage 2 breakouts, VCP setups, Near-High, High Volume, or Breakout Readiness Score (BRS). Mirrors the /picks/ Trader tab. Refreshed weekdays 12:30 IST. Use allThree for the highest-confluence names (matching multiple scans simultaneously). Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "scan_type": {
                                "type": "string",
                                "description": "allThree | stage2NearHigh | vcp | highVol | stage2 | brs | volume | ipo (default allThree)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results to return (tier-capped)"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "scan_type, scan_label",
                        "Echoes the requested scan + a human-readable name"
                    ],
                    [
                        "stocks",
                        "Array ranked by score DESC, turnover_cr DESC"
                    ],
                    [
                        "count, last_updated, source_table, cron_schedule",
                        "Result metadata"
                    ],
                    [
                        "is_stale, stale_after_hours",
                        "Freshness heuristic — is_stale null if no data yet, else age vs. stale_after_hours (weekend-aware buffer, not a precise next-run calc)"
                    ]
                ]
            }
        },
        "/us/market/trader-scan": {
            "get": {
                "operationId": "us_market_trader_scan",
                "summary": "US stocks matching a precomputed technical scan: Stage 2, VCP, Near-High, High Volume, or Breakout Readiness Score (BRS). Mirrors /us/pic...",
                "description": "US stocks matching a precomputed technical scan: Stage 2, VCP, Near-High, High Volume, or Breakout Readiness Score (BRS). Mirrors /us/picks/?list=trader. Requires api_pro (source data is premium-gated on the web).",
                "tags": [
                    "US Markets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "scan_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "all | stage2nh | stage2 | nearHigh | highVol | brs | vcp (default all)"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Results to return (tier-capped)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "us-market-trader-scan",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "us_market_trader_scan",
                    "description": "US stocks matching a precomputed technical scan: Stage 2, VCP, Near-High, High Volume, or Breakout Readiness Score (BRS). Mirrors /us/picks/?list=trader. Requires api_pro (source data is premium-gated on the web).",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "scan_type": {
                                "type": "string",
                                "description": "all | stage2nh | stage2 | nearHigh | highVol | brs | vcp (default all)"
                            },
                            "limit": {
                                "type": "integer",
                                "description": "Results to return (tier-capped)"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "scan_type, scan_label",
                        "Echoes the requested scan + a human-readable name"
                    ],
                    [
                        "stocks",
                        "Array ranked by effective score (includes VCP bump) DESC, rs_rating DESC"
                    ],
                    [
                        "count, last_updated, source_table, cron_schedule",
                        "Result metadata"
                    ],
                    [
                        "is_stale, stale_after_hours",
                        "Freshness heuristic — is_stale null if no data yet, else age vs. stale_after_hours (weekend-aware buffer, not a precise next-run calc)"
                    ]
                ]
            }
        },
        "/presets/start": {
            "post": {
                "operationId": "start_preset",
                "summary": "Start a Research Preset run — a multi-agent analyst chain (Strategy Lab), genuinely separate from Investment Committee. Async: returns ...",
                "description": "Start a Research Preset run — a multi-agent analyst chain (Strategy Lab), genuinely separate from Investment Committee. Async: returns run_id/vibe_run_id immediately with status=running; poll with check_preset_status. No auto-resolve of provider — call list_byo_keys first and pass one explicitly. Quota: 10 runs/24h per account, shared with web usage. Requires api_pro.",
                "tags": [
                    "Research Presets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "preset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "One of 8 preset names — see MCP tool description or /blogs/guide_strategy_lab.php for the full list"
                    },
                    {
                        "name": "market",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Free-text display label only, default \"NSE India\" — does not affect behavior"
                    },
                    {
                        "name": "goal",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "What you want this run to investigate, max 500 chars"
                    },
                    {
                        "name": "provider",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Required — no auto-resolve. See GET /account/byo-keys."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "presets-start",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "start_preset",
                    "description": "Start a Research Preset run — a multi-agent analyst chain (Strategy Lab), genuinely separate from Investment Committee. Async: returns run_id/vibe_run_id immediately with status=running; poll with check_preset_status. No auto-resolve of provider — call list_byo_keys first and pass one explicitly. Quota: 10 runs/24h per account, shared with web usage. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "preset",
                            "goal",
                            "provider"
                        ],
                        "properties": {
                            "preset": {
                                "type": "string",
                                "description": "One of: equity_research_team (macro→sector→stock, ~35min, 4 agents), fundamental_research_team (business quality/financials/valuation, ~20min, 3 agents), quant_strategy_desk (factor design + validation + risk audit, ~40min, 4 agents), technical_analysis_panel (trend/momentum/support-resistance, ~15min, 3 agents), us_equity_research_team, us_fundamental_research_team, us_quant_strategy_desk, us_technical_analysis_panel (same 4 chains for US equities — the us_ prefix is what selects US data context, not the market field)."
                            },
                            "market": {
                                "type": "string",
                                "description": "Free-text display label only (e.g. \"NSE India\", \"US Markets\") — does not affect behavior, that is driven by the preset name prefix. Default \"NSE India\"."
                            },
                            "goal": {
                                "type": "string",
                                "description": "What you want this run to investigate/produce, max 500 chars"
                            },
                            "provider": {
                                "type": "string",
                                "description": "anthropic | openai | gemini | groq | deepseek | openrouter — must already have a saved key"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "run_id, vibe_run_id, status, preset_name",
                        "Async — status is always \"running\" on success; poll with /presets/poll"
                    ],
                    [
                        "error (on failure)",
                        "missing_preset | missing_goal | missing_provider | quota_exceeded | no_key | swarm_unavailable — see HTTP status code"
                    ]
                ]
            }
        },
        "/presets/poll": {
            "get": {
                "operationId": "check_preset_status",
                "summary": "Poll a Research Preset run started via start_preset. Terminal states (completed/failed/cancelled) are served from a DB cache; non-termina...",
                "description": "Poll a Research Preset run started via start_preset. Terminal states (completed/failed/cancelled) are served from a DB cache; non-terminal polls make a live call to the swarm VPS. Requires api_pro.",
                "tags": [
                    "Research Presets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "vibe_run_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "The vibe_run_id returned by start_preset"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "presets-poll",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "check_preset_status",
                    "description": "Poll a Research Preset run started via start_preset. Terminal states (completed/failed/cancelled) are served from a DB cache; non-terminal polls make a live call to the swarm VPS. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "vibe_run_id"
                        ],
                        "properties": {
                            "vibe_run_id": {
                                "type": "string",
                                "description": "The vibe_run_id returned by start_preset"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "status",
                        "running | completed | failed | cancelled"
                    ],
                    [
                        "final_report",
                        "Present once status is terminal"
                    ],
                    [
                        "task_count, done_count",
                        "Present while running (from a live swarm-VPS call); cached responses omit these"
                    ]
                ]
            }
        },
        "/presets/list": {
            "get": {
                "operationId": "list_preset_runs",
                "summary": "Most recent 20 Research Preset runs for the calling account (any status). Requires api_pro.",
                "description": "Most recent 20 Research Preset runs for the calling account (any status). Requires api_pro.",
                "tags": [
                    "Research Presets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "presets-list",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "list_preset_runs",
                    "description": "Most recent 20 Research Preset runs for the calling account (any status). Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": [
                    [
                        "runs",
                        "Most recent 20 runs for the calling account, any status, newest first"
                    ]
                ]
            }
        },
        "/presets/catalog": {
            "get": {
                "operationId": "list_preset_catalog",
                "summary": "The 8 available Research Preset definitions (id, market, label, description, approximate runtime, agent count) — call this to discover ...",
                "description": "The 8 available Research Preset definitions (id, market, label, description, approximate runtime, agent count) — call this to discover what start_preset accepts before running one. No tier gate.",
                "tags": [
                    "Research Presets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    }
                },
                "x-anchor": "presets-catalog",
                "x-tier": "free",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "list_preset_catalog",
                    "description": "The 8 available Research Preset definitions (id, market, label, description, approximate runtime, agent count) — call this to discover what start_preset accepts before running one. No tier gate.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": [
                    [
                        "presets",
                        "Array of {id, market, label, description, runtime_minutes, agent_count} — the 8 available preset definitions"
                    ]
                ]
            }
        },
        "/presets/cancel": {
            "post": {
                "operationId": "cancel_preset",
                "summary": "Cancel a running Research Preset run started via start_preset. Requires api_pro.",
                "description": "Cancel a running Research Preset run started via start_preset. Requires api_pro.",
                "tags": [
                    "Research Presets"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "vibe_run_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "The vibe_run_id returned by start_preset"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "presets-cancel",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "cancel_preset",
                    "description": "Cancel a running Research Preset run started via start_preset. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "vibe_run_id"
                        ],
                        "properties": {
                            "vibe_run_id": {
                                "type": "string",
                                "description": "The vibe_run_id returned by start_preset"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "status",
                        "Set to \"cancelled\", or the run's existing terminal status if it had already finished"
                    ]
                ]
            }
        },
        "/committee/fast-scan": {
            "post": {
                "operationId": "fast_scan_committee",
                "summary": "Deterministic PHP-only scoring across 3 lenses (quality compounder / growth / value-safety) for up to 10 symbols — zero LLM tokens, syn...",
                "description": "Deterministic PHP-only scoring across 3 lenses (quality compounder / growth / value-safety) for up to 10 symbols — zero LLM tokens, synchronous, does not count against the 5-runs/24h quota. Use this before start_committee to see if a full LLM run is even worth it. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbols",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Up to 10 symbols, silently truncated beyond that"
                    },
                    {
                        "name": "market",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "india | us (default india)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-fast-scan",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "fast_scan_committee",
                    "description": "Deterministic PHP-only scoring across 3 lenses (quality compounder / growth / value-safety) for up to 10 symbols — zero LLM tokens, synchronous, does not count against the 5-runs/24h quota. Use this before start_committee to see if a full LLM run is even worth it. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbols"
                        ],
                        "properties": {
                            "symbols": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "description": "Up to 10 symbols, silently truncated beyond that"
                            },
                            "market": {
                                "type": "string",
                                "description": "india | us (default india)"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "ok, mode, total_cost",
                        "mode is always \"fast\", total_cost is always 0 (no LLM tokens)"
                    ],
                    [
                        "results",
                        "{symbol: {company_name, lenses: {lens: {gate_passed, gate_reason, det_score, signal}}, agreement_score, committee_signal}}"
                    ]
                ]
            }
        },
        "/committee/start": {
            "post": {
                "operationId": "start_committee",
                "summary": "Start a full Investment Committee run — multi-lens LLM analysis + async swarm workflow, up to 10 symbols. Async: returns job_id/vps_run...",
                "description": "Start a full Investment Committee run — multi-lens LLM analysis + async swarm workflow, up to 10 symbols. Async: returns job_id/vps_run_id immediately with status=running; poll with check_committee_status. No auto-resolve of provider — call list_byo_keys first and pass one explicitly. Quota: 5 runs/24h per account, shared with web usage. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbols",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Up to 10 symbols"
                    },
                    {
                        "name": "market",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "india | us (default india)"
                    },
                    {
                        "name": "lenses",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Omit for all 3 lenses for the market (quality_compounder + india_growth/us_growth + value_safety)"
                    },
                    {
                        "name": "provider",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "anthropic | openai | gemini | groq | deepseek | openrouter — must already have a saved key"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-start",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "start_committee",
                    "description": "Start a full Investment Committee run — multi-lens LLM analysis + async swarm workflow, up to 10 symbols. Async: returns job_id/vps_run_id immediately with status=running; poll with check_committee_status. No auto-resolve of provider — call list_byo_keys first and pass one explicitly. Quota: 5 runs/24h per account, shared with web usage. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbols",
                            "provider"
                        ],
                        "properties": {
                            "symbols": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "description": "Up to 10 symbols"
                            },
                            "market": {
                                "type": "string",
                                "description": "india | us (default india)"
                            },
                            "lenses": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "description": "Omit for all 3 lenses for the market (quality_compounder + india_growth/us_growth + value_safety)"
                            },
                            "provider": {
                                "type": "string",
                                "description": "anthropic | openai | gemini | groq | deepseek | openrouter — must already have a saved key"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "ok, job_id, vps_run_id, status, total_calls",
                        "Async — status is always \"running\" on success; poll with /committee/poll"
                    ],
                    [
                        "error (on failure)",
                        "no_symbols | missing_provider | quota_exceeded | no_key | swarm_unavailable — see HTTP status code"
                    ]
                ]
            }
        },
        "/committee/poll": {
            "post": {
                "operationId": "check_committee_status",
                "summary": "Poll an Investment Committee run started via start_committee, by job_id or vps_run_id (at least one required). Terminal states are served...",
                "description": "Poll an Investment Committee run started via start_committee, by job_id or vps_run_id (at least one required). Terminal states are served from a DB cache; non-terminal polls make a live call to the swarm VPS. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "job_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "The job_id returned by start_committee"
                    },
                    {
                        "name": "vps_run_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Alternative to job_id"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-poll",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "check_committee_status",
                    "description": "Poll an Investment Committee run started via start_committee, by job_id or vps_run_id (at least one required). Terminal states are served from a DB cache; non-terminal polls make a live call to the swarm VPS. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {
                            "job_id": {
                                "type": "integer",
                                "description": "The job_id returned by start_committee"
                            },
                            "vps_run_id": {
                                "type": "string",
                                "description": "Alternative to job_id"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "status",
                        "pending | running | completed | failed | cancelled"
                    ],
                    [
                        "done_count, task_count, progress_pct",
                        "Present while running (live swarm-VPS call); cached terminal responses omit these"
                    ]
                ]
            }
        },
        "/committee/report": {
            "get": {
                "operationId": "get_committee_report",
                "summary": "Fetch a completed (or in-progress) Investment Committee run's full report — per-symbol committee signal, agreement score, research stan...",
                "description": "Fetch a completed (or in-progress) Investment Committee run's full report — per-symbol committee signal, agreement score, research stance, dissent summary, per-lens signals. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "job_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "The job_id returned by start_committee"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-report",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "get_committee_report",
                    "description": "Fetch a completed (or in-progress) Investment Committee run's full report — per-symbol committee signal, agreement score, research stance, dissent summary, per-lens signals. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "job_id"
                        ],
                        "properties": {
                            "job_id": {
                                "type": "integer",
                                "description": "The job_id returned by start_committee"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "ok, job_id, report",
                        "report.committee: {symbol: {committee_signal, agreement_score, research_stance, illustrative_weight_range, dissent_summary, verdict}}"
                    ],
                    [
                        "report.signals",
                        "{symbol: {lens: {signal, score, confidence, det_score, gate_result, gate_reason, evidence, concerns}}} — per-lens detail"
                    ]
                ]
            }
        },
        "/committee/list": {
            "get": {
                "operationId": "list_committee_runs",
                "summary": "Most recent 20 Investment Committee runs for the calling account (any status). Requires api_pro.",
                "description": "Most recent 20 Investment Committee runs for the calling account (any status). Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-list",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "list_committee_runs",
                    "description": "Most recent 20 Investment Committee runs for the calling account (any status). Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "properties": {}
                    }
                },
                "x-response-fields": [
                    [
                        "ok, jobs",
                        "Most recent 20 jobs for the calling account, any status, newest first"
                    ]
                ]
            }
        },
        "/committee/cancel": {
            "post": {
                "operationId": "cancel_committee",
                "summary": "Cancel a running Investment Committee job started via start_committee. Requires api_pro.",
                "description": "Cancel a running Investment Committee job started via start_committee. Requires api_pro.",
                "tags": [
                    "Core"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "job_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "The job_id returned by start_committee"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-cancel",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "cancel_committee",
                    "description": "Cancel a running Investment Committee job started via start_committee. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "job_id"
                        ],
                        "properties": {
                            "job_id": {
                                "type": "integer",
                                "description": "The job_id returned by start_committee"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "status",
                        "Set to \"cancelled\", or the job's existing terminal status if it had already finished"
                    ],
                    [
                        "vps_cancel_status",
                        "\"ok\" | \"failed\" | \"unknown\" — whether the cancel signal actually reached the VPS worker. \"unknown\" if the job never registered a vps_run_id (cancelled before that point). The DB status is always set to \"cancelled\" regardless of this value — VPS delivery failure does not block the local cancel."
                    ]
                ]
            }
        },
        "/committee/risk-audit/compute": {
            "post": {
                "operationId": "compute_committee_risk",
                "summary": "Deterministic risk audit: correlation matrix, annualized volatility, max drawdown, beta vs benchmark (Nifty for India / SPY for US), sect...",
                "description": "Deterministic risk audit: correlation matrix, annualized volatility, max drawdown, beta vs benchmark (Nifty for India / SPY for US), sector concentration, portfolio risk score. Pure computation over price history — zero LLM tokens, no quota. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbols",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Up to 10 symbols"
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lookback window, 30-252 (default 90)"
                    },
                    {
                        "name": "market",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "india | us (default india)"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-risk-compute",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "compute_committee_risk",
                    "description": "Deterministic risk audit: correlation matrix, annualized volatility, max drawdown, beta vs benchmark (Nifty for India / SPY for US), sector concentration, portfolio risk score. Pure computation over price history — zero LLM tokens, no quota. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbols"
                        ],
                        "properties": {
                            "symbols": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "description": "Up to 10 symbols"
                            },
                            "days": {
                                "type": "integer",
                                "description": "Lookback window, 30-252 (default 90)"
                            },
                            "market": {
                                "type": "string",
                                "description": "india | us (default india)"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "ok, per_stock",
                        "{symbol: {company_name, sector, vol_annual, max_drawdown, beta, rs_rating, data_days}}"
                    ],
                    [
                        "correlation, sector_weights, portfolio_vol, avg_correlation, risk_score",
                        "Portfolio-level metrics"
                    ]
                ]
            }
        },
        "/committee/risk-audit/allocate": {
            "post": {
                "operationId": "allocate_committee_risk",
                "summary": "Deterministic position-sizing: turns committee stances + risk metrics into weight recommendations (max 20% per position, illustrative onl...",
                "description": "Deterministic position-sizing: turns committee stances + risk metrics into weight recommendations (max 20% per position, illustrative only — not investment advice). Pure computation, zero LLM tokens. Typically fed the outputs of get_committee_report and compute_committee_risk for the same symbols. Requires api_pro.",
                "tags": [
                    "Investment Committee"
                ],
                "security": [
                    {
                        "apiKeyHeader": []
                    },
                    {
                        "bearerAuth": []
                    },
                    {
                        "apiKeyQuery": []
                    }
                ],
                "parameters": [
                    {
                        "name": "symbols",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Up to 10 symbols"
                    },
                    {
                        "name": "committee",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "object"
                        },
                        "description": "{symbol: {research_stance, agreement_score, confidence}} — from get_committee_report"
                    },
                    {
                        "name": "risk_metrics",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "object"
                        },
                        "description": "{symbol: {vol_annual, max_drawdown}} — from compute_committee_risk.per_stock"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response"
                    },
                    "401": {
                        "description": "Missing or invalid API key"
                    },
                    "429": {
                        "description": "Rate limit exceeded for your tier"
                    },
                    "403": {
                        "description": "Requires the api_pro tier or above"
                    }
                },
                "x-anchor": "committee-risk-allocate",
                "x-tier": "api_pro",
                "x-tier-note": null,
                "x-mcp-tool": {
                    "name": "allocate_committee_risk",
                    "description": "Deterministic position-sizing: turns committee stances + risk metrics into weight recommendations (max 20% per position, illustrative only — not investment advice). Pure computation, zero LLM tokens. Typically fed the outputs of get_committee_report and compute_committee_risk for the same symbols. Requires api_pro.",
                    "inputSchema": {
                        "type": "object",
                        "required": [
                            "symbols",
                            "committee",
                            "risk_metrics"
                        ],
                        "properties": {
                            "symbols": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "description": "Up to 10 symbols"
                            },
                            "committee": {
                                "type": "object",
                                "description": "{symbol: {research_stance, agreement_score, confidence}} — from get_committee_report"
                            },
                            "risk_metrics": {
                                "type": "object",
                                "description": "{symbol: {vol_annual, max_drawdown}} — from compute_committee_risk.per_stock"
                            }
                        }
                    }
                },
                "x-response-fields": [
                    [
                        "ok, allocations",
                        "{symbol: weight_pct, ...}, includes \"Cash\" if any residual — illustrative only, not investment advice"
                    ],
                    [
                        "methodology",
                        "Array of plain-text notes on how weights were derived"
                    ]
                ]
            }
        }
    },
    "x-rate-limits": {
        "free": {
            "per_day": 50,
            "per_hour": 10
        },
        "api_pro": {
            "per_day": 1000,
            "per_hour": 200
        },
        "api_max": {
            "per_day": 5000,
            "per_hour": 1000
        }
    },
    "x-mcp-endpoint": "https://finmagine.com/api/mcp.php",
    "x-mcp-only-tools": [
        "screen_natural_language"
    ]
}