Market Data API
Free · no key · no signup · updated 19 Sept 2026, 1:29 am IST
The same data the pages on this site are built from, as JSON. No Indian IPO site publishes structured data, so anyone wanting a feed currently has to scrape a table. These endpoints exist so they do not have to.
Terms, in three lines
1. Attribute Xflot with a link back.
2. Poll no more than once a minute. Responses are cached anyway, and there is one small server behind this.
3. Carry the disclaimer. Every response includes one — please keep it with the data.
gmpDisputed. An API makes it easy to
consume a number at a scale that quietly launders that uncertainty away. The
flag is there to be read, not ignored.Endpoints
GET /api/public/market/iposEvery tracked IPO with price band, dates, reported GMP, subscription and board.
status | UPCOMING | OPEN | CLOSED | LISTED |
board | MAINBOARD | SME |
limit | default 60, max 200 |
{
"ok": true,
"count": 12,
"ipos": [
{
"slug": "example-ipo",
"name": "Example Industries Limited",
"board": "MAINBOARD",
"status": "OPEN",
"priceMin": 182, "priceMax": 194,
"lotSize": 75, "issueSizeCr": 981,
"openDate": "2026-09-10T00:00:00.000Z",
"closeDate": "2026-09-12T00:00:00.000Z",
"lastGmp": 40, "lastGmpPct": 20.6,
"lastSubX": 81.65,
"gmpSources": 2, "gmpSpread": 12, "gmpDisputed": false
}
],
"disclaimer": "Aggregated public information. GMP is unofficial…"
}
GET /api/public/market/ipos/:slugOne IPO, with its day-by-day GMP history and category-wise subscription.
{
"ok": true,
"ipo": {
"slug": "example-ipo",
"gmp": [ { "observedAt": "2026-09-11", "gmp": 40, "gmpPct": 20.6, "source": "…", "unofficial": true } ],
"subs": [ { "category": "QIB", "timesSub": 12.5 }, { "category": "TOTAL", "timesSub": 81.65 } ]
}
}
GET /api/public/market/dealsBulk and block deals as disclosed by the exchange.
symbol | filter to one ticker |
limit | default 100, max 300 |
{
"ok": true,
"deals": [
{ "symbol": "EXAMPLE", "clientName": "SOME FUND", "dealType": "BUY",
"kind": "BULK", "quantity": 582438, "price": 209.98,
"valueCr": 12.23, "exchange": "NSE", "tradeDate": "2026-09-16T00:00:00.000Z" }
]
}
GET /api/public/market/scoreboardImplied GMP against actual listing price for every scored listing, with the direction-hit rate.
{
"ok": true,
"summary": { "n": 47, "avgAbsErrorPp": 11.4, "directionHitPct": 72.3 },
"rows": [
{ "slug": "example-ipo", "name": "Example Industries",
"issuePrice": 182, "gmpAtClose": 40, "impliedPct": 21.9,
"listingPrice": 194, "actualPct": 6.59, "errorPp": 15.31,
"directionHit": true, "listedOn": "2026-09-16" }
]
}
Notes
- All responses are JSON with
ok: trueand adisclaimerfield. - Dates are ISO 8601 UTC. The site displays IST; the API does not convert.
- Money is in rupees.
issueSizeCrandvalueCrare in crore. - Subscription multiples are "times", so
81.65means 81.65×. gmpSourcesis how many independent sources reported today;gmpSpreadis the range between them.- Missing data is
null, never zero. A GMP of0means a premium of zero was reported, which is not the same as none being reported.
Example
curl -s "https://xflot.com/api/public/market/ipos?status=OPEN" | jq '.ipos[] | {name, lastGmp, lastSubX}'
Something missing?
If a field you need is on a page here but not in the API, say so — it is usually a small change and the endpoints exist to be used.
XDQ Labs Private Limited is not SEBI-registered. This is public information, not advice — see the disclaimer.