Indian Listed Company Logos API

SVG logos for NSE and BSE listed companies, addressed by ISIN.

Logos3156
FormatSVG
Data updated2026-04-29

Load an icon

One GET request, no key, no rate limit. Replace {isin} with the company's ISIN:

http://company-logo.shareperks.in/logo/{isin}/icon.svg

Try it

These are live requests to this server:

Reliance Industries Limited logoRELIANCEINE002A01018Tata Consultancy Services Limited logoTCSINE467B01029HDFC Bank Limited logoHDFCBANKINE040A01034Infosys Limited logoINFYINE009A01021ITC Limited logoITCINE154A01025State Bank of India logoSBININE062A01020Bharti Airtel Limited logoBHARTIARTLINE397D01024

Use it in a page

<img src="http://company-logo.shareperks.in/logo/INE002A01018/icon.svg"
     alt="Reliance Industries logo" width="32" height="32" loading="lazy" />

In CSS:

.logo { background-image: url("http://company-logo.shareperks.in/logo/INE002A01018/icon.svg"); }

From JavaScript — the icon URL always resolves, so no error handling is needed:

const iconUrl = (isin) => `http://company-logo.shareperks.in/logo/${isin}/icon.svg`;

// Only if you need to know whether it is the real logo or the placeholder:
const res = await fetch(iconUrl("INE002A01018"));
const isPlaceholder = res.headers.has("X-Logo-Fallback");

From the shell:

curl -O http://company-logo.shareperks.in/logo/INE002A01018/icon.svg

Endpoints

RouteResponse
GET /logo/{isin}/icon.svg The logo as image/svg+xml. Sends X-Logo-Ticker (e.g. NSE:TCS) so you can see which listing answered, or X-Logo-Fallback when the placeholder was served.
GET /logo/{isin}.json Company metadata for that ISIN — ticker, name, sector, industry, market cap, index membership — plus the icon URL.
GET /health { "status": "ok", "logos": 3156 }

Rules and errors

ISIN is case-insensitive and must match ^[A-Z]{2}[A-Z0-9]{9}[0-9]$. Every response allows cross-origin use (Access-Control-Allow-Origin: *) and is cacheable for a day.

The icon route always returns an image. When a company is not in the index you get a neutral placeholder with 200 and an X-Logo-Fallback header, so an <img> never breaks. Ask /logo/{isin}.json when you need to know whether a real logo exists.

StatusBodyMeaning
200SVGLogo found.
200 + X-Logo-FallbackPlaceholder SVG/icon.svg only — unknown or malformed ISIN.
400{"error":"invalid_isin"}.json only — not a well-formed ISIN.
404{"error":"logo_not_found"}.json only — valid ISIN, not in this index.

When one ISIN is listed on both exchanges, the NSE logo is served, so a given URL always returns the same file.