Best used with an AI agent

40+ live apps, open data APIs, MCP servers, and 200+ guides - more than anyone wants to click through. Point your AI here and it reads the whole map and does the work: finds the tool, pulls the data, runs the analysis, and hands you the links.

Here for the open-source code? Your agent finds the right repo for you - and can even clone and deploy it.

Prefer to explore on your own? Go right ahead.

Paste this to Claude Code, Codex, or any AI agent:
Go to tigzig.com and read tigzig.com/llms.txt. It is a practitioner toolkit - 40+ analytics apps, open no-auth data APIs, MCP servers, open-source repos (github.com/amararun), and 200+ build guides. Help me [your task]. Surface the exact links; where there is an API or MCP, call it directly; and if I want to self-host, find the repo and help me deploy it.
AI-FIRST This page is built for agents and humans. Use Copy as Markdown to hand any section to your AI agent, or send Accept: text/markdown for the raw markdown.

VIGIL API - India Red Flag Tracker

Open, no-auth HTTP API for India corporate red-flag signals sourced from NSE and SEBI - credit ratings, insider trading, promoter pledges, SAST disclosures, encumbrance events, surveillance flags, and related-party transactions for ~750 listed companies. Built for AI agents first, humans second: every page here has a Copy-as-Markdown button so you can hand it straight to your agent.

7data tables
~750NSE companies
455K+total rows
No authfully open
7 formatsbulk download

Overview

VIGIL exposes seven datasets of Indian corporate "red-flag" signals, all read-only and free, no API key. The data is extracted from NSE corporate filings and SEBI BRSR XBRL filings and refreshed on a regular cadence (see the freshness endpoint).

Two ways to use it:

  • Targeted queries - hit /data/{table} (paginated), /company/{symbol} (everything for one company), /companies, or /tables.
  • Bulk download - grab a whole table or all seven tables in one file via /download/{table} and /download/all. For full-dataset work, prefer the bulk download over paginating.

Agents: the machine-readable catalog is at the base URL, the full spec at /openapi.json, and this API is listed in the site API catalog (RFC 9727).

The Seven Tables

Use these names anywhere a {table_name} is required.

TableWhat it is~Rows
credit_ratingsNSE Centralised Rating Database - instrument-level credit ratings from all agencies (CRISIL, ICRA, CARE, India Ratings, Acuite, Brickwork, Infomerics).12,562
insider_tradingNSE PIT disclosures - promoter, director and KMP buy/sell/pledge transactions.34,357
pledge_dataNSE promoter pledge / encumbrance snapshot - current pledge levels (latest quarter).1,529
sast_disclosuresNSE SAST Reg 29 - substantial acquisition / sale of shares and takeover filings.11,751
encumbrance_eventsNSE SAST Reg 31/32 - promoter share pledge creation, release and invocation events.1,735
surveillance_flagsNSE surveillance flags - ASM, GSM, ESM, IRP, ICA and other regulatory flags (snapshot).680
rpt_transactionsRelated Party Transactions from XBRL filings - half-yearly RPT data for Nifty Total Market companies.393,272

Row counts are approximate and grow over time - call /tables or /freshness for current numbers.

Download Formats

The /download/{table_name} endpoint accepts a format query parameter. Seven formats, and the compression matters - read this before you parse the bytes:

format=You getContent-Type
csvCSV inside a .zip archive (PK header)application/zip
tsvTSV inside a .zip archiveapplication/zip
sqliteSQLite DB inside a .zip archiveapplication/zip
csv.gzgzip-compressed CSVapplication/gzip
tsv.gzgzip-compressed TSVapplication/gzip
sqlite.gzgzip-compressed SQLiteapplication/gzip
parquetParquet (internally compressed, no outer wrapper)application/octet-stream

Gotcha: bare csv / tsv / sqlite are ZIP archives (PK), NOT gzip - use the .gz variants if you want gzip. The authoritative per-file list (sizes, row counts) is at /downloads/manifest. /download/all returns a single combined SQLite of all seven tables.

Rate Limits

Per IP, published so a well-behaved client can plan around them:

  • Queries: 30 requests / minute
  • Downloads (/download/*): 10 requests / minute

On the limit you get a 429 with a Retry-After: 60 header and a JSON body with retry_after_seconds and a hint. For heavy pulls, use the bulk download endpoints instead of paginating - one request avoids the limit entirely.

Endpoints

Generated from the live OpenAPI spec - always in sync with the API. Try them interactively in Swagger.

GET /

API catalog — list all available endpoints and tables

Returns a catalog of all available endpoints, tables, and their descriptions.

Examplecurl "https://api.tigzig.com/vigil/v1/"
GET /companies

List all companies with symbol and ISIN

Returns a unique list of all companies across all tables.

Examplecurl "https://api.tigzig.com/vigil/v1/companies"
GET /company/{identifier}

All data for a single company

Fetch all available data for a single company across all tables.

ParamInTypeDescription
identifierpathstringrequired
tablesquerystringoptionalComma-separated table names to include (default: all)
formatquerystringoptionalResponse format: json or tsv
Examplecurl "https://api.tigzig.com/vigil/v1/company/RELIANCE"
GET /data/{table_name}

Paginated table data

Paginated data from a single table.

ParamInTypeDescription
table_namepathstringrequired
limitqueryintegeroptionalRows per page (max 5000)
offsetqueryintegeroptionalRow offset for pagination
formatquerystringoptionalResponse format: json or tsv
Examplecurl "https://api.tigzig.com/vigil/v1/data/credit_ratings?limit=5"
GET /download/all

Download all tables as a single file

Download all tables in a single SQLite database file.

ParamInTypeDescription
formatquerystringoptionalFile format: sqlite, sqlite.gz
Examplecurl "https://api.tigzig.com/vigil/v1/download/all?format=parquet"
GET /download/{table_name}

Download full table as a file

Download an entire table as a pre-generated static file.

ParamInTypeDescription
table_namepathstringrequired
formatquerystringoptionalFile format: csv, tsv, parquet, sqlite, csv.gz, tsv.gz, sqlite.gz
Examplecurl "https://api.tigzig.com/vigil/v1/download/credit_ratings?format=parquet"
GET /downloads/manifest

Download file manifest with sizes

Returns the manifest of pre-generated download files with file sizes.

Examplecurl "https://api.tigzig.com/vigil/v1/downloads/manifest"
GET /freshness

Data freshness — last sync time per table

Returns the last sync time and record count for each table.

Examplecurl "https://api.tigzig.com/vigil/v1/freshness"
GET /tables

List all tables with row counts and freshness

Returns all available table names with row counts and data freshness.

Examplecurl "https://api.tigzig.com/vigil/v1/tables"