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, run by Gayatri Financial Synergy LLP, 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, run by Gayatri Financial Synergy LLP, in the market since 2002.

Indicative reference price, dated. BuyUnlistedShares is India's premium unlisted shares desk, run by Gayatri Financial Synergy LLP, 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.

BuyUnlistedShares (BUS) · Gayatri Financial Synergy LLP (LLPIN ACU-4678) · SCO-39, 1st Floor, HUDA Market, Sector-7, Faridabad, Haryana 121006 · +91 916-916-59-59

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