InvestSights API & MCP

AI-powered Indian equity research, programmatically. 58 read-only tools (46 core + 3 forensic + 9 mutual-fund) — valuation, forensic accounting, full financials, screening, news & sentiment, investor tracking, fund portfolios, and portfolio analytics. Call them via REST from any HTTP client, or connect InvestSights as a remote MCP server to an AI assistant (Grok, Cursor, Claude Desktop). Same API key, two transports.

This is the Enterprise/B2B catalog. The free public connector at /mcp exposes a curated pack of 26 public research tools. Whichever key you use, GET /api/v2/mcp/tools is the authoritative list for it.

REST API MCP Connector 58 Tools ANALYTICS-only (SEBI-compliant)

Authentication

Every request authenticates with an X-API-Key header (key format isk_…, provisioned by the InvestSights team). One key works on the REST endpoints and on the MCP connection URL below, for the products and sub-modules it includes.

 Value
Base URLhttps://investsights.in/api/v2/mcp
Auth headerX-API-Key: isk_your_api_key
MCP connection URLhttps://investsights.in/api/v2/mcp/{your_key}/mcp
⚠
Keep your API key secret. Don't expose it in client-side code, public repositories, or logs. Usage is tracked per key; it can be rotated or revoked on request.

What a key includes

A key is issued for one or more products, or for sub-modules inside a product. GET /api/v2/mcp/tools (and tools/list on the MCP connection) lists exactly the tools your key includes. A call to a tool outside them is refused. On the REST endpoint POST /api/v2/mcp/call it returns 403. When the tool's product or sub-module is not in the key, the message names them, for example Tool 'get_stock_financials' is in Equity & Market / Financials & Fundamentals, which is not enabled for your API key. When the product is included but the key also has its own list of tools and the tool is not on it, the message is shorter, for example Tool 'get_dividends' not enabled for your API key. On the MCP connection URL a tools/call for such a tool returns JSON-RPC error -32601 (Tool not found), the same answer as for a tool that does not exist.

ProductSub-modules
Equity & MarketValuation & Forensics · Financials & Fundamentals · Screening & Comparison · Market, Sectors & Technicals · News, Sentiment & Calendar · Investors · Portfolio Analytics · AI Research · Knowledge Graph
Mutual FundsPortfolios & Holdings · Fund Screener · Flows & New Fund Offers
IPOCalendar & Issue Detail · Subscription · Anchor Book · Allotment

A key can also carry an expiry date, its own rate limits and a list of symbols. After the expiry date every request returns 401.

Evaluation keys

To try the API, write to [email protected] with who you are, what you are building, the products you need and the number of calls you expect to make. An evaluation key normally runs for 14 days. It is for testing and building, not for a service offered to customers. Use of any key is governed by the API Terms.

All 58 tools are read-only / ANALYTICS-only: they return data, scores, and analysis — never buy/sell/target recommendations.

REST API

Two endpoints. List the tools, then call any of them with a JSON body.

GET /api/v2/mcp/tools List all available tools
cURL
curl -s https://investsights.in/api/v2/mcp/tools \
  -H "X-API-Key: isk_your_api_key"
POST /api/v2/mcp/call Run a tool

Request body

JSON
{ "tool": "<tool_name>", "arguments": { ... } }

Example — forensic score for Reliance

cURL
curl -s -X POST https://investsights.in/api/v2/mcp/call \
  -H "X-API-Key: isk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"tool":"get_forensic_score","arguments":{"symbol":"RELIANCE"}}'

Python

Python
import requests
H = {"X-API-Key": "isk_your_api_key"}

# institutional valuation (DCF + relative + VaR)
r = requests.post("https://investsights.in/api/v2/mcp/call", headers=H,
    json={"tool": "get_valuation", "arguments": {"symbol": "TCS"}})
print(r.json()["result"])

Response shape: {"success": true, "tool": "<name>", "result": { ... }}

Connect via MCP

ℹ
Connecting an AI assistant? Use the public connector — OAuth 2.1 with PKCE, Dynamic Client Registration supported, no API key to create and nothing to pre-register. Paste this URL into Perplexity, Claude, ChatGPT, Grok or any MCP client and sign in with your InvestSights account. Full setup guide, tool list and rate limits: investsights.in/mcp
Public connector (OAuth)
https://investsights.in/api/v2/mcp-public/mcp

Broker / B2B connection

Business integrations use a scoped isk_ key instead of OAuth, for clients that only accept a URL. The key sits in the connection URL path:

MCP connection URL
https://investsights.in/api/v2/mcp/{your_key}/mcp
  • In your client: Settings → Connectors / MCP → Add custom / remote server → paste the URL above. This path carries its own credential, so there are no OAuth fields to fill in.
  • The tools appear automatically — then ask in plain English (e.g. "Get the forensic score and valuation for Reliance").

Examples

Portfolio analytics (stateless)

Pass a list of holdings — InvestSights returns aggregate value & P&L, value-weighted quality and forensic scores, sector allocation, concentration (HHI + top-holding %), and flagged holdings. Nothing is stored; the holdings are supplied per call.

Request — Python
import requests
H = {"X-API-Key": "isk_your_api_key"}
r = requests.post("https://investsights.in/api/v2/mcp/call", headers=H, json={
    "tool": "analyze_portfolio",
    "arguments": {"holdings": [
        {"symbol": "RELIANCE", "quantity": 50, "avg_price": 1200},
        {"symbol": "TCS",      "quantity": 20, "avg_price": 3100},
        {"symbol": "INFY",     "quantity": 80, "avg_price": 1500}
    ]}})
print(r.json()["result"])
Response (abridged)
{
  "total_value": 250120.0,
  "total_pnl": -10152.5,
  "total_pnl_pct": -3.9,
  "weighted_quality_score": 68.4,
  "weighted_piotroski": 6.1,
  "sector_allocation_pct": {"Technology": 51.9, "Energy": 48.1},
  "concentration": {"hhi": 0.367, "top_holding": "INFY", "top_holding_pct": 48.1},
  "flagged_holdings": [],
  "disclaimer": "Analytics only. Not investment advice."
}

Tool Catalog

All 58 tools, grouped by category — the 46 core tools first, then the 3 forensic and 9 mutual-fund tools in the optional section below. symbol = NSE ticker (e.g. RELIANCE, TCS) — uppercase, no suffix. * marks a required argument; NEW marks the Fourteen tools were added in June 2026.

The 3 forensic and 9 mutual-fund tools that complete the 58 are listed separately in the optional section at the end: they are flag-gated per deployment (both switched on for investsights.in keys) and are not part of the 46 core tools. The free public connector exposes a smaller curated pack of 26 public research tools.

Valuation & Forensics

ToolArgumentsReturns
get_valuationsymbol*Institutional valuation — multi-stage FCFF DCF (intrinsic value, WACC, bull/base/bear) + relative valuation + Monte-Carlo VaR
get_dcf_valuationsymbol*DCF intrinsic value + enterprise value vs current price
get_estimates_report NEWsymbol*5-year revenue & EBITDA estimates — Base/Bear/Bull scenarios with probabilities, growth decomposition and falsifiable triggers
get_forensic_scoresymbol*, company_namePiotroski F-Score, Beneish M-Score, Altman Z-Score + ratios + governance

Financials & Fundamentals

ToolArgumentsReturns
get_stock_financialssymbol*, include_statementsP/E, P/B, ROE, ROCE, D/E, growth, market cap, dividend yield, 52-week range
get_financial_statementssymbol*, statement, period, limitIncome statement / balance sheet / cash flow — annual & quarterly, up to 10 years
get_revenue_segmentssymbol*Revenue breakdown by product / service / geography
get_shareholdingsymbol*Promoter / FII / DII / public holdings + top individual holders, QoQ changes
get_analyst_consensussymbol*Buy/hold/sell counts, price targets, EPS & revenue estimates
get_credit_rating NEWsymbol*Credit rating history & outlook (issuer ratings, agency)
get_esg_profile NEWsymbol*BRSR/ESG profile from the latest annual report — Scope 1/2 emissions, safety (LTIFR, fatalities, POSH), diversity and energy/water intensity
get_dividends NEWsymbol*Dividend history — per-share dividend, payout ratio, yield over time
get_pros_cons NEWsymbol*AI-generated investment pros & cons (bull vs bear points)

Screening & Comparison

ToolArgumentsReturns
screen_stocksquery*, limitNatural-language screener ("high ROE low debt IT sector")
advanced_screen NEWfilters*, sort_by, sort_order, limitStructured screener — 200+ numeric filters (operators: gte, lte, gt, lt, eq, in)
list_screener_filters NEW—Available filter columns + strategy presets for advanced_screen
guru_screen NEWstrategy_idLegendary-investor strategies (Graham, Buffett, Lynch, Minervini, CAN SLIM…)
get_stock_comparisonsymbols*Compare 2–5 stocks side by side: valuation, profitability, growth, technicals, and a side-by-side summary of relative strengths (score_ranking: relative ordering by InvestSights score — descriptive only)

Market, Sectors & Technicals

ToolArgumentsReturns
get_market_overviewinclude_movers, include_commoditiesNifty 50 / Sensex / Bank Nifty, market psychology, top gainers/losers, commodities
get_market_digest—AI-generated daily market summary
get_market_ideas NEW—AI-generated market ideas & themes (refreshed hourly)
get_sector_rotationsectorRRG quadrants (Leading / Weakening / Lagging / Improving)
get_sector_heatmaptimeframeSector returns heatmap (1D–1Y) with top/bottom stocks
get_sector_research NEWsectorAI sector research — overview, cycle position, macro context
get_niche_indicesslugThematic indices (EV, Fintech, Defence, Green Energy…) + constituents
get_price_historysymbol*, daysOHLCV + 1W–5Y returns + 52-week high/low + P/E band
get_technical_indicatorssymbol*RSI-14, MACD, Bollinger, Stochastic, ADX, OBV, VWAP, MFI, ATR, support/resistance
get_fii_dii_activity NEW—Daily FII & DII net institutional flows (broad market)

News, Sentiment & Calendar

ToolArgumentsReturns
get_stock_newssymbol*, limitLatest news articles + sentiment scores
get_earnings_calendarsymbol, days_aheadUpcoming earnings dates, recent results, economic events
get_corporate_actions NEWsymbol, categoryDividends, splits, bonuses, buybacks, board meetings, results feed
get_concall_analysis NEWsymbolAI earnings-call analysis — key takeaways, management tone, guidance

IPO

ToolArgumentsReturns
list_iposquery, status, board, sector, min_issue_size_cr, max_issue_size_cr, min_subscription_x, min_listing_gain_pct, max_listing_gain_pct, listed_within_days, positive_pat, limitIPO calendar, lookup and screen: a one-line status per issue, dates, band, lot, size, live subscription, indicative GMP, listing gain; ranked name/symbol matches with query; screening filters apply to either
get_ipoipo*One issue in full, grounded per section: status line, facts (verified offer structure, issue price, anchor portion), timeline, three-year restated financials with EPS and interest coverage, valuation (P/E at both band ends, peer median, one-sentence comparison), top risks by category, governance (related parties, litigation, contingent liabilities, auditor, board, pledge), scorecard with key driver, memo from the prospectus read, itemised proceeds, subscription with timestamp, GMP with 1-day change, anchor, listing outcome (premium, 1D–3M returns, high/low since listing), documents. Nulls carry their reason
get_ipo_subscriptionipo*Live category-wise subscription (exchange bid feeds, NSE+BSE consolidated) with day-wise history
get_ipo_anchor_bookipo*, top_nAnchor book from the exchange letter: amount, share of issue, MF share, split by investor type, largest investors, lock-in end dates
get_ipo_allotmentipo*Allotment / refund / credit / listing dates (expected vs confirmed), registrar status portal, current stage
get_ipo_analysisipo_name*, statusAlias of get_ipo kept for existing integrations

Investors

ToolArgumentsReturns
get_superstar_investorssymbol, limitSuperStar investor portfolios — who's buying/selling (SEBI-filed holdings)
get_investor_activity NEWinvestor*Investor profile + entry/exit/increase/decrease activity

Portfolio Analytics

ToolArgumentsReturns
analyze_portfolio NEWholdings* [{symbol, quantity, avg_price?}], include_valuationAggregate value & P&L, value-weighted quality + forensic scores, sector allocation, concentration (HHI, top-holding %), flagged holdings, optional DCF over/under-valuation. Stateless — holdings passed per call. See Examples.

AI Research (deep, ~30–60s)

ToolArgumentsReturns
ai_stock_researchsymbol*, query, depthAI deep research note — performance, growth, risks
ai_earnings_analysissymbol*, company_nameAI quarterly earnings analysis
ai_regulation_impactregulation*Impact of a SEBI/RBI regulation on affected sectors & stocks

Knowledge Graph

ToolArgumentsReturns
graph_rag_queryquery*, symbols, top_kGrounded NL financial Q&A — cited from the InvestSights database (no hallucination)
graph_intelquery*, max_hopsMulti-hop relationship queries (promoters, sectors, company links)

Optional Forensic Tools optional · enabled on investsights.in

Three forensic-relationship tools gated by a deployment flag. They are not part of the 46 core tools above, but they are switched on for investsights.in Enterprise keys (part of the 58-tool catalog). They are not included in the free public connector pack. (The optional mutual-fund tools further down are in the public pack.) Check GET /api/v2/mcp/tools for the tools your own key actually returns — that response is the authoritative list for your deployment.

ToolPurposeArgumentsReturns
get_control_chain Beneficial ownership / control chain for a company, or the top beneficial owners across the market. symbol — optional; omit for a market-wide ranking source, tool, template_id, data (array of ownership rows). Coverage/diagnostic keys such as status, layer, entity and global_count appear when applicable.
get_governance_events Governance event timeline: board changes, auditor changes, credit-rating actions, takeover disclosures and shareholder meetings. symbol — optional (per company); event_type — optional, one of BOARD_CHANGE, AUDITOR_CHANGE, CREDIT_RATING, TAKEOVER_DISCLOSURE, SHAREHOLDER_MEETING source, tool, template_id, data (array of event rows).
get_interlocking_boards Interlocking directorates. With a symbol: that company's directors and the other boards they also sit on. Without: market-wide directors sitting on multiple boards. symbol — optional; omit for market-wide interlocks source, tool, template_id, data (rows carrying director, board count, other boards, and a confidence tag).
ℹ
Availability. If these tools are not enabled for your deployment they simply do not appear in GET /api/v2/mcp/tools, and calling them returns a not-found error. They are absent by default rather than degraded.
⚠
Read these as leads, not findings. Relationship data is derived from public filings and disclosures and is descriptive: a shared director, a chain of ownership or a rating action is not itself evidence of wrongdoing. Director identity is matched by name only (no DIN), so distinct people sharing a name may be merged and one person spelled two ways may be split — hence the confidence tag. Graph coverage is incomplete and absence of a relationship is not proof it does not exist. ANALYTICS-only: these tools return data, never investment advice or an accusation.

Optional Mutual Fund Tools optional · enabled on investsights.in

Nine mutual-fund tools built on monthly portfolio disclosures (AMC factsheets) for ~14,000 schemes and ~2,200 distinct portfolios. They are gated by a deployment flag and are not part of the 46 core tools above, but they are switched on for investsights.in keys (part of the 58-tool catalog) and are included in the free public connector pack. All outputs are descriptive (ANALYTICS mode): rankings state the definition they used and every number is a row from the latest factsheet month. Fund references accept an AMFI scheme code, an ISIN, or a name ("parag parikh flexi cap"). Every result carries the same meta block — logic_version (semver of the definitions behind the numbers; bumped whenever a figure could change for the same factsheet month), data_source, holdings_as_of, previous_month, returns_as_of, plan_scope, methodology — plus one top-level disclaimer, so a renderer never has to special-case a tool. Holdings counts are one object everywhere: holdings.equity (distinct listed equity lines), holdings.instruments_total (incl. cash/TREPS/debt), holdings.reported_by_factsheet (the AMC's own count).

ToolPurposeArgumentsReturns
get_mf_portfolioOne fund's profile from its latest factsheetfund*, top_nAUM, expense ratio, benchmark, managers, riskometer, asset & market-cap allocation, concentration, 3Y beta / Sharpe / Sortino / volatility vs category, rank in category, top holdings with NSE symbols and 1-month weight change, sector weights, holdings-weighted quality score with coverage
get_mf_holders_of_stockWhich funds hold a stocksymbol*, limitFund count, value held, new entries / exits and portfolios that raised / cut units (funds_units_up / funds_units_down — counted on the common panel, the decision signal); funds_weight_up / funds_weight_down follow the share price (drift); top holders by value; derivative/other lines under other_positions; panel block
screen_mutual_fundsRank / filter fundscategory, risk_profile (defensive · consistent · risk_adjusted · aggressive · top_ranked · low_cost), sort, fund_house, min_aum_cr, max_ter_pct, min_cagr_3y, min_cagr_5y, limitMatching Direct-Growth funds with AUM, TER, CAGR, 3Y risk metrics, category rank — plus the definition the ranking used
get_mf_ownership_leadersStocks ranked by fund ownershipby (value · funds · weight · net_new_funds · net_exits), sector, mcap, month (YYYY-MM), limitPer stock: portfolios holding it, value held, average weight, month-on-month change in portfolio count (equity holdings only); any held factsheet month
get_mf_flowsWhat funds bought and sold in a monthmonth (YYYY-MM, default latest), limitStocks with the most new portfolios, most exits, largest value added / reduced vs the previous factsheet month; returns available_months so history can be walked like the /mutual-funds/flows page
get_mf_fund_changesOne fund's month-on-month changesfund*, limitNew positions, exits, largest weight increases and trims, unit changes where disclosed
compare_mf_overlapPortfolio overlap between fundsfunds* (2–5 references), limitPairwise overlap % (sum of minimum weights on common holdings), holdings common to all with each fund's weight
get_mf_nfosNew fund offersstatus (current | open | upcoming | closed | allotted | all), fund_house, category, year, query, limitOpen and upcoming offers with window, days left, offer price, minimum investment and scheme document; recently closed offers; funds allotted since 2019 with return since first NAV (CAGR after a year). Older offers are rebuilt from allotment dates and carry no window or offer terms (source says which)
get_mf_lookthroughLook-through of a fund basketallocations* [{fund, weight_pct | amount}], limitCombined stock and sector exposure, top-10 concentration, cash / debt buckets, holdings-weighted quality score with coverage
ⓘ
Portfolios are monthly (factsheet as-of month is returned on every call; history from January 2026). Direct, Regular, Growth and IDCW variants of a scheme share one portfolio and are stored once, so "funds holding X" counts portfolios, not scheme codes. About 92% of held value maps to a stock we track; foreign and unlisted holdings are named but carry no score.

Rate Limits & Notes

TopicDetail
Response timeData tools 1–8s; AI / GraphRAG tools 5–30s. Set your HTTP client timeout to ≥ 60s.
SymbolsNSE tickers, uppercase, no exchange suffix (RELIANCE, not RELIANCE.NS).
ErrorsA non-200 status, or {"success": false, ...} with a message. Tools degrade gracefully (e.g. {"available": false}) rather than crashing.
ComplianceANALYTICS-only — scores and data, never investment advice. You remain responsible for investment decisions.
Rate limits / volumePer-key limits apply; contact InvestSights for a dedicated key or higher throughput.
ℹ
Need a key, higher rate limits, or help integrating? See Support below.

Internal Data API separate API · X-Internal-Key

The endpoints below are a separate bulk-JSON data API (base /api/internal/v1) authenticated with an X-Internal-Key header — distinct from the MCP/REST tools above. Use it for raw data pipelines (agent-context bundles, OHLCV, screener dumps). It is open to a key with no tool or symbol restriction that holds all products or the whole Equity & Market product. Other products granted alongside it do not block access. Existing partner keys are of this kind and continue unchanged. A key with a tool or symbol restriction, or one that holds only some Equity & Market sub-modules or no Equity & Market at all, receives 403: This API key does not include the internal REST API.

Authentication

All Internal Data API requests require an X-Internal-Key header with your API key. Keys are provisioned by the InvestSights admin team.

Header
X-Internal-Key: isk_your_api_key_here
⚠
Keep your API key secret. Do not expose it in client-side code, public repositories, or logs. If compromised, contact us immediately for a key rotation.

Example Request

cURL
Python
Node.js
cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  https://investsights.in/api/internal/v1/market/macro
Python (requests)
import requests

API_KEY = "isk_your_api_key_here"
BASE    = "https://investsights.in/api/internal/v1"
HEADERS = {"X-Internal-Key": API_KEY}

resp = requests.get(f"{BASE}/market/macro", headers=HEADERS)
print(resp.json())
Node.js (fetch)
const API_KEY = "isk_your_api_key_here";
const BASE = "https://investsights.in/api/internal/v1";

const resp = await fetch(`${BASE}/market/macro`, {
  headers: { "X-Internal-Key": API_KEY }
});
const data = await resp.json();
console.log(data);

Base URL

Production
https://investsights.in/api/internal/v1

All endpoint paths below are relative to this base URL.

Rate Limits

100
Requests / minute
5,000
Requests / day
30 min
Cache TTL
ℹ
Responses are cached server-side for 30 minutes. Repeated identical requests will return cached data with cache_hit: true and faster response times. Contact us if you need higher rate limits.

Error Handling

The API uses standard HTTP status codes. Errors return a JSON body with a detail field.

CodeMeaningExample
200SuccessRequest processed successfully
401UnauthorizedMissing or invalid X-Internal-Key
404Not FoundSymbol has no data (e.g. invalid ticker)
422Validation ErrorInvalid query parameters
429Rate LimitedToo many requests — slow down
500Server ErrorUnexpected issue — contact support
Error Response Example
{
  "detail": "Invalid internal API key"
}

Endpoints

POST /agent-context/{symbol} Master data endpoint

Returns comprehensive stock data in a single call — fundamentals, financial statements, shareholding, technicals, risk metrics, macro context, and news. Designed for AI agent pipelines.

Path Parameters

NameTypeDescription
symbolstring requiredNSE stock symbol (e.g. RELIANCE, TCS, INFY)

Request Body (JSON)

FieldTypeDefaultDescription
include_sectionsstring[] optional["fundamental","technical","risk","macro","news"]Sections to include in response
price_daysinteger optional252Number of trading days for risk calculations
news_limitinteger optional10Maximum news articles to return
statements_yearsinteger optional5Years of financial statements

Available sections: fundamental, technical, risk, macro, news, statements, shareholding

Example Request

cURL
curl -X POST https://investsights.in/api/internal/v1/agent-context/RELIANCE \
  -H "X-Internal-Key: isk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "include_sections": ["fundamental", "technical", "risk"],
    "price_days": 252,
    "news_limit": 5
  }'

Example Response

200 OK
{
  "symbol": "RELIANCE",
  "exchange": "NSE",
  "company_name": "Reliance Industries Limited",
  "last_updated": "2026-03-11T18:30:00+05:30",

  "fundamental": {
    "current_price": 1245.50,
    "market_cap_cr": 1682340.5,
    "pe_ratio": 26.8,
    "pb_ratio": 2.1,
    "ev_ebitda": 14.3,
    "roe": 8.9,
    "debt_to_equity": 0.38,
    "current_ratio": 1.22,
    "altman_z_score": 3.41,
    "altman_zone": "SAFE",
    "piotroski_f_score": 7,
    "piotroski_rating": "STRONG",
    "promoter_holding": 50.3,
    "fii_holding": 23.1,
    // ... 30+ more fields
  },

  "statements": {
    "income": [{"period": "FY2025", "revenue": 985060, ...}],
    "balance_sheet": [{"period": "FY2025", "total_assets": 1520000, ...}],
    "cashflow": [{"period": "FY2025", "free_cashflow": 42000, ...}]
  },

  "shareholding_history": [
    {"quarter": "Q3FY2026", "promoter": 50.3, "fii": 23.1, "dii": 14.2}
  ],

  "technical": {
    "current_price": 1245.50,
    "rsi_14": 58.3,
    "sma_50": 1220.0,
    "sma_200": 1180.5,
    "macd_bullish": true,
    "golden_cross_active": true,
    "adx_trend_strength": "STRONG",
    "overall_bias": "BULLISH",
    // ... 30+ more fields
  },

  "risk": {
    "var_95_1d": -2.14,
    "max_drawdown": -18.5,
    "annualized_volatility": 22.3,
    "sharpe_ratio": 1.24,
    "sortino_ratio": 1.78,
    "risk_rating": "MODERATE"
  },

  "response_time_ms": 85.3,
  "cache_hit": false
}

Fundamental Fields

FieldTypeDescription
current_pricefloatLatest closing price (INR)
market_cap_crfloatMarket cap in crores
pe_ratiofloatPrice-to-Earnings (TTM)
forward_pefloatForward P/E ratio
pb_ratiofloatPrice-to-Book
ev_ebitdafloatEnterprise Value / EBITDA
roefloatReturn on Equity (%)
roafloatReturn on Assets (%)
roicfloatReturn on Invested Capital (%)
debt_to_equityfloatDebt-to-Equity ratio
current_ratiofloatCurrent Ratio
interest_coveragefloatInterest Coverage Ratio
altman_z_scorefloatAltman Z-Score
altman_zonestringSAFE / GREY / DISTRESS
piotroski_f_scoreintPiotroski F-Score (0-9)
piotroski_ratingstringSTRONG / AVERAGE / WEAK
beneish_m_scorefloatBeneish M-Score (earnings manipulation)
promoter_holdingfloatPromoter holding (%)
fii_holdingfloatFII holding (%)
dii_holdingfloatDII holding (%)
dividend_yieldfloatDividend yield (%)
eps_ttmfloatEarnings per share (TTM)
revenue_growth_yoyfloatRevenue growth YoY (%)
eps_growth_yoyfloatEPS growth YoY (%)

Technical Fields

FieldTypeDescription
rsi_14floatRSI (14-period)
sma_20/50/200floatSimple Moving Averages
macd_linefloatMACD line value
macd_signalfloatMACD signal line
macd_bullishboolMACD histogram > 0
bb_upper/lower/middlefloatBollinger Band values
atr_14floatAverage True Range
adx_14floatADX (trend strength)
adx_trend_strengthstringWEAK / MODERATE / STRONG / VERY_STRONG
golden_cross_activeboolSMA50 > SMA200
death_cross_activeboolSMA50 < SMA200
support_1/2floatSupport levels
resistance_1/2floatResistance levels
overall_biasstringBULLISH / BEARISH / NEUTRAL

Risk Fields

FieldTypeDescription
var_95_1dfloatValue at Risk (95%, 1-day) in %
var_99_1dfloatValue at Risk (99%, 1-day) in %
cvar_95floatConditional VaR (Expected Shortfall)
max_drawdownfloatMaximum drawdown in %
annualized_volatilityfloatAnnualized volatility in %
sharpe_ratiofloatSharpe Ratio (risk-free: 6.5%)
sortino_ratiofloatSortino Ratio
calmar_ratiofloatCalmar Ratio
risk_ratingstringLOW / MODERATE / HIGH / VERY_HIGH
GET /screener/full/{symbol} Full screener data (228 columns)

Returns the complete screener row for a stock — 228 columns covering valuation, profitability, growth, debt, efficiency, dividends, technicals, and guru scores.

Path Parameters

NameTypeDescription
symbolstring requiredNSE stock symbol

Example Request

cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  https://investsights.in/api/internal/v1/screener/full/TCS

Example Response

200 OK
{
  "symbol": "TCS",
  "company_name": "Tata Consultancy Services",
  "sector": "Technology",
  "industry": "Information Technology Services",
  "market_cap": 1435200.0,
  "close_price": 3920.50,
  "pe_ratio": 31.2,
  "pb_ratio": 14.8,
  "roe": 47.5,
  "roce": 62.1,
  "revenue_growth_yoy": 5.8,
  "net_profit_margin": 19.2,
  "debt_to_equity": 0.05,
  "piotroski_score": 8,
  "altman_z_score": 12.5,
  "rs_rating": 75,
  // ... 150+ more fields
}
ℹ
Returns 404 if the symbol has no screener data. All 228 columns are returned as a flat JSON object — ideal for spreadsheets, databases, or custom screening logic.
GET /stocks/ohlcv/{symbol} Historical price data

Returns OHLCV (Open, High, Low, Close, Volume) historical data with adjusted close prices. Ordered by date descending (most recent first).

Path Parameters

NameTypeDescription
symbolstring requiredNSE stock symbol

Query Parameters

NameTypeDefaultDescription
daysinteger optional252Number of trading days (1-2000)

Example Request

cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  "https://investsights.in/api/internal/v1/stocks/ohlcv/INFY?days=10"

Example Response

200 OK
[
  {
    "date": "2026-03-11",
    "open": 1825.00,
    "high": 1842.50,
    "low": 1818.30,
    "close": 1835.75,
    "adj_close": 1835.75,
    "volume": 4523100
  },
  {
    "date": "2026-03-10",
    "open": 1810.00,
    "high": 1830.00,
    "low": 1805.50,
    "close": 1825.00,
    "adj_close": 1825.00,
    "volume": 3891200
  }
]
GET /market/macro Market macro snapshot

Returns a macro market snapshot — FII/DII flows (today + 30-day), major indices, INR/USD, and sector relative strength. No symbol required.

Example Request

cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  https://investsights.in/api/internal/v1/market/macro

Example Response

200 OK
{
  "fii_net_today_cr": -1250.3,
  "dii_net_today_cr": 1820.5,
  "fii_net_30d_cr": -18500.0,
  "dii_net_30d_cr": 22400.0,
  "fiidii_history": [
    {"date": "2026-03-11", "fii_net": -1250.3, "dii_net": 1820.5}
  ],
  "indices": {
    "nifty_50": {"close": 22450.5, "change_pct": 0.65, "trade_date": "2026-03-11"},
    "sensex": {"close": 73850.0, "change_pct": 0.58, "trade_date": "2026-03-11"}
  },
  "inr_usd": 83.25,
  "sectors": [
    {"sector": "Technology", "return_1w": 2.3, "rs_ratio": 105.2, "quadrant": "Leading"}
  ]
}

Response Fields

FieldTypeDescription
fii_net_today_crfloatFII net buy/sell today (crores)
dii_net_today_crfloatDII net buy/sell today (crores)
fii_net_30d_crfloatFII net cumulative 30-day (crores)
dii_net_30d_crfloatDII net cumulative 30-day (crores)
fiidii_historyarrayDaily FII/DII flows (last 30 days)
indicesobjectNifty 50 and Sensex latest close + change
inr_usdfloatINR/USD exchange rate
sectorsarraySector relative strength and quadrant (Leading/Improving/Weakening/Lagging)
GET /stocks/peers/{symbol} Sector peer comparison

Returns peer companies from the same sector, sorted by market cap. Includes key comparison metrics for each peer.

Path Parameters

NameTypeDescription
symbolstring requiredNSE stock symbol

Query Parameters

NameTypeDefaultDescription
limitinteger optional10Number of peers to return (1-20)

Example Request

cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  "https://investsights.in/api/internal/v1/stocks/peers/HDFCBANK?limit=5"

Example Response

200 OK
{
  "symbol": "HDFCBANK",
  "sector": "Financial Services",
  "target": {
    "symbol": "HDFCBANK",
    "company_name": "HDFC Bank Limited",
    "market_cap": 1150000.0,
    "pe_ratio": 19.5,
    "roe": 16.8,
    "debt_to_equity": 7.2
  },
  "peers": [
    {
      "symbol": "ICICIBANK",
      "company_name": "ICICI Bank Limited",
      "market_cap": 850000.0,
      "pe_ratio": 17.2,
      "roe": 18.1,
      "debt_to_equity": 6.8,
      "net_profit_margin": 28.5,
      "revenue_growth_yoy": 22.3,
      "close_price": 1285.50
    }
  ]
}
GET /news/agent/{symbol} Stock & sector news

Returns recent news articles for a stock and its sector. Includes sentiment scores and source information. Optimized for LLM context injection.

Path Parameters

NameTypeDescription
symbolstring requiredNSE stock symbol

Query Parameters

NameTypeDefaultDescription
limitinteger optional10Maximum articles to return (1-50)

Example Request

cURL
curl -H "X-Internal-Key: isk_your_api_key_here" \
  "https://investsights.in/api/internal/v1/news/agent/RELIANCE?limit=5"

Example Response

200 OK
[
  {
    "headline": "Reliance Jio adds 5 million subscribers in February",
    "published_at": "2026-03-10T14:30:00",
    "category": "sector",
    "sentiment": 0.72,
    "source": "Economic Times"
  },
  {
    "headline": "RIL to invest Rs 75,000 crore in green energy",
    "published_at": "2026-03-09T09:15:00",
    "category": "sector",
    "sentiment": 0.85,
    "source": "Moneycontrol"
  }
]

Response Fields

FieldTypeDescription
headlinestringArticle headline
published_atstringISO 8601 publication datetime
categorystringNews category (sector, market, macro)
sentimentfloatSentiment score (-1.0 bearish to +1.0 bullish)
sourcestringNews source name

Quick Start (Python)

A complete Python example to pull data for any stock:

Python
import requests

API_KEY = "isk_your_api_key_here"
BASE    = "https://investsights.in/api/internal/v1"
HEADERS = {"X-Internal-Key": API_KEY}

# 1. Get comprehensive stock data
resp = requests.post(
    f"{BASE}/agent-context/RELIANCE",
    json={
        "include_sections": ["fundamental", "technical", "risk", "macro", "news"],
        "price_days": 252,
    },
    headers=HEADERS,
)
data = resp.json()
print(f"PE Ratio: {data['fundamental']['pe_ratio']}")
print(f"RSI: {data['technical']['rsi_14']}")
print(f"Risk Rating: {data['risk']['risk_rating']}")

# 2. Get OHLCV history
prices = requests.get(
    f"{BASE}/stocks/ohlcv/RELIANCE?days=30",
    headers=HEADERS,
).json()
print(f"Latest close: {prices[0]['close']}")

# 3. Get sector peers
peers = requests.get(
    f"{BASE}/stocks/peers/RELIANCE?limit=5",
    headers=HEADERS,
).json()
for p in peers["peers"]:
    print(f"  {p['symbol']}: PE={p['pe_ratio']}, ROE={p['roe']}")

Support

For API key provisioning, rate limit increases, or technical questions:

✓
API Status: All systems operational. Data is updated daily — EOD prices sync after market close (16:15 IST), news updates every 2 hours.