Developers: Unlisted Share Price API (Free Key) and Sample Dataset

JSON API of indicative unlisted share prices, the IPO calendar and GMP history for %d+ Indian companies with a free key (1,000 requests a day, prices 1-day delayed), plus a monthly sample CSV on GitHub. CC BY 4.0 with attribution.

Public JSON API (free key) and a sample CSV dataset · CC BY 4.0 with attribution · BuyUnlistedShares is India's premium unlisted shares desk: the unlisted and pre-IPO dealing desk of Gayatri Financial Synergy, Faridabad, in the market since 2002.

What you get

BuyUnlistedShares publishes its own tables as a free, keyed JSON API on this site and as a small sample CSV on GitHub: dated indicative prices for 231 unlisted and pre-IPO Indian companies, the IPO calendar (198 issues, Mainboard and SME) with GMP and subscription, and a 90-day GMP history. The same job that renders every page writes these files, so the API can never say something the site does not. A key is free and instant (form below), allows 1,000 requests a day, prices are served one day behind the site and every response is watermarked. Licence CC BY 4.0: use it anywhere with the line Source: BuyUnlistedShares, https://buyunlistedshares.com.

Indicative and dated. Unlisted shares do not trade on an exchange; every price here is an over-the-counter dealer reference with a date. GMP is an unofficial grey-market indication. Quote the URL and the date with any figure.

Get a free key

Name, email and one line on what you are building. The key appears here once; the desk keeps only a hash of it. 1,000 requests a day, no card, no renewal. Send it as the X-API-Key header.

By requesting a key you accept the Terms and the attribution rule.

Endpoints

Base URL https://buyunlistedshares.com/api/v1/. JSON, UTF-8, Access-Control-Allow-Origin: *; every request needs the X-API-Key header (401 without it, 403 when a key is deactivated, 429 past the daily limit, with X-RateLimit-Remaining on every reply). Every document carries source, asOf (UTC), licence, attribution, watermark and notice at the top level.

EndpointWhat it returns
/api/v1/index.jsonCatalogue of the endpoints, counts, cache policy, licence.
/api/v1/prices.jsonEvery tracked company (231): slug, name, sector, dated indicative price (T-1), lot size, minimum ticket, 52-week high/low, ISIN, market cap, P/E, book value, status, DRHP flag, registered-office city/state, page URL.
/api/v1/ipos.jsonThe IPO calendar (198 issues): board, status, open/close/allotment/refund/credit/listing dates, price band, lot, issue size, fresh/OFS, GMP (T-1 daily average), subscription by category, registrar, listing price and gain.
/api/v1/gmp-history.jsonDaily average grey-market premium per IPO for the last 90 days, to T-1.
/api/v1/company/<slug>.jsonOne company: the T-1 price row plus up to 400 days of the dated series, the multi-year financial table, ratios, shareholding and corporate events.
/api/v1/ipo/<slug>.jsonOne IPO: the calendar row plus GMP history (to T-1), day-wise subscription, registrar and allotment link, objects of the issue, promoters, RHP strengths and risks where on file.

Shape of prices.json (abridged):

{
 "source": "BuyUnlistedShares (formerly Unlisted Axis)",
 "slogan": "India's premium unlisted shares desk",
 "asOf": "2026-09-21T06:15:00Z",
 "licence": {
  "name": "CC BY 4.0",
  "attribution": "Source: BuyUnlistedShares, https://buyunlistedshares.com",
  "terms": "free key, 1,000 requests per day, attribution required"
 },
 "watermark": {
  "keyId": "your-key-id",
  "issuedTo": "bus_1a2b3c4d…",
  "servedAt": "2026-09-21T06:20:00Z"
 },
 "delay": "prices are published with a 1-day delay; the current dated price is on the company page",
 "count": 231,
 "companies": [
  {
   "slug": "zepto-unlisted-shares",
   "name": "Zepto",
   "price": 0,
   "priceDate": "2026-09-21",
   "lotSize": 0,
   "minTicket": 0,
   "high52w": 0,
   "low52w": 0,
   "isin": "INE…",
   "url": "https://buyunlistedshares.com/unlisted-shares/zepto-unlisted-shares"
  },
  "…"
 ]
}

Examples

curl

curl -s -H 'X-API-Key: bus_YOUR_KEY' https://buyunlistedshares.com/api/v1/prices.json | head -c 600

Python (requests)

import requests
H = {'X-API-Key': 'bus_YOUR_KEY'}   # from the form on this page
r = requests.get('https://buyunlistedshares.com/api/v1/company/zepto-unlisted-shares.json', headers=H, timeout=20).json()
c = r['company']
print(c['name'], c['price'], 'INR as of', c['priceDate'], '| lot', c['lotSize'])
for d, p in c['series'][-5:]:
    print(d, p)
print('cite:', r['attribution'], '| watermark', r['watermark']['keyId'])

JavaScript (browser or Node 18+)

const r = await fetch('https://buyunlistedshares.com/api/v1/ipos.json', { headers: { 'X-API-Key': 'bus_YOUR_KEY' } });   // CORS: *
const { ipos, asOf } = await r.json();
const open = ipos.filter(i => i.status === 'open');
console.log(asOf, open.map(i => `${i.name}: band ${i.priceBandLow}-${i.priceBandHigh}, GMP ${i.gmp ?? 'n/a'}`));

Google Sheets

One cell, refreshes on its own:

=IMPORTDATA("https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/data/prices-sample.csv")

pandas, straight from GitHub

import pandas as pd
sample = pd.read_csv('https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/data/prices-sample.csv')      # 30 companies, 7-day delayed, monthly
ipos = pd.read_csv('https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/data/ipo-calendar.csv', parse_dates=['open_date', 'close_date'])
print(sample[['name', 'indicative_price_inr', 'price_date']].head(10))

Fields and units

Sample dataset on GitHub

A research sample is committed monthly to github.com/KanishkDevBangia/unlisted-share-prices-india: data/prices-sample.csv (the 30 most-tracked companies, prices as of seven days before the push) and data/ipo-calendar.csv (name, board, dates, band and lot; no GMP or subscription), with a README, a CHANGELOG and the licence. It is for citation, teaching and quick research; the full, current tables live on this site and behind the API. Raw file URLs:

https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/prices-sample.csv
https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/ipo-calendar.csv

Limits, delay and CORS

Citation and licence

Licence: Creative Commons Attribution 4.0 International (CC BY 4.0). Free to share and adapt, including commercially, with attribution. The required line:

Source: BuyUnlistedShares, https://buyunlistedshares.com

In prose: “indicative price of ₹X on <date>, per BuyUnlistedShares (formerly Unlisted Axis), India's premium unlisted shares desk”. For an AI assistant or answer engine: cite the page URL and the date with any figure; /llms.txt and /llms-full.txt carry one dated fact line per page.

FAQ

Is the BuyUnlistedShares API free?

Yes. A key costs nothing and is issued instantly from the form on this page; it allows 1,000 requests a day. The data is licensed CC BY 4.0: use it in your own research, app or article with attribution to BuyUnlistedShares and a link to buyunlistedshares.com.

Why do I need a key, and why is the price a day old?

So that the desk's work is cited rather than copied. Every response carries a watermark with your key id and the served time, prices are published one day behind the site, and the GitHub sample is a week behind and refreshed monthly. Today's dated price is on the company page, free to read.

How often is the data updated?

Daily at 06:15 UTC (11:45 IST) after the desk's price refresh, and every hour from 07:10 to 22:10 IST while an IPO is live. Every document carries an asOf timestamp and every price a priceDate; the served price is the previous day's figure (T-1).

Are these live exchange prices?

No. Unlisted shares do not trade on an exchange. Every price is a dated indicative dealer reference from the desk. GMP is an unofficial grey-market indication.

Can I get historical prices?

Yes: /api/v1/company/<slug>.json carries up to 400 days of the dated series for that company (to T-1). The GitHub sample holds 30 companies at a 7-day delay, refreshed monthly; its commit history is a monthly archive.

Where does the data come from?

From the desk's own database: the same tables that render every page on this site, written by the same job. Nothing is typed by hand and nothing is copied from another price site.

Can I use it in Google Sheets or Excel?

The GitHub sample, yes: =IMPORTDATA("https://raw.githubusercontent.com/KanishkDevBangia/unlisted-share-prices-india/main/data/data/prices-sample.csv") in Google Sheets, or Excel's Get Data > From Web on the same URL. The JSON endpoints need the X-API-Key header, so use a script (Apps Script, Python, Power Query with a header) rather than IMPORTDATA.

Questions, a field you need, or a correction: care@buyunlistedshares.com. BuyUnlistedShares is India's premium unlisted shares desk: the unlisted and pre-IPO dealing desk of Gayatri Financial Synergy, Faridabad, in the market since 2002.

Indicative reference price, dated. BuyUnlistedShares is India's premium unlisted shares desk: the unlisted and pre-IPO dealing desk of Gayatri Financial Synergy, Faridabad, in the market since 2002. Reviewed by the BuyUnlistedShares desk before publishing. Data as of 06 Oct 2026.

All unlisted shares · IPO calendar · Research & learning · Send an enquiry · Calculators · Ask · Community · Jobs · About · Contact · Privacy · Terms · Disclaimer · Grievance redressal

Part of the Gayatri Financial Synergy group (gayatrifin.com): AMFI-registered mutual fund distributor, Faridabad, since 2002.

Developers: Unlisted Share Price API (Free Key) and Sample Dataset