Building a finance app and need stock logos? The Elbstream Logo API provides free access to over 400,000 high-quality logos for stocks, ETFs, crypto, and funds. This guide will get you up and running in minutes.
The free tier includes:
Add a stock logo to your page with a single line of HTML:
<img src="https://api.elbstream.com/logos/symbol/AAPL" alt="Apple logo" />
The API supports multiple ways to find logos:
<!-- By ticker symbol -->
<img src="https://api.elbstream.com/logos/symbol/TSLA" alt="Tesla" />
<!-- By ISIN -->
<img src="https://api.elbstream.com/logos/isin/US0378331005" alt="Apple" />
<!-- By WKN (German identifier) -->
<img src="https://api.elbstream.com/logos/wkn/865985" alt="Apple" />
<!-- By crypto symbol -->
<img src="https://api.elbstream.com/logos/crypto/BTC" alt="Bitcoin" />
SVG is the default (and recommended), but you can request other formats:
<!-- SVG (default, best for most uses) -->
<img src="https://api.elbstream.com/logos/symbol/AAPL" />
<!-- PNG with custom size -->
<img src="https://api.elbstream.com/logos/symbol/AAPL?format=png&size=200" />
<!-- JPG -->
<img src="https://api.elbstream.com/logos/symbol/AAPL?format=jpg" />
<!-- WebP (modern browsers) -->
<img src="https://api.elbstream.com/logos/symbol/AAPL?format=webp" />
The free tier requires attribution. Add this link somewhere visible on your page:
<a href="https://elbstream.com">Logos provided by Elbstream</a>
Attribution requirements:
function displayLogo(symbol, containerId) {
const img = document.createElement('img');
img.src = `https://api.elbstream.com/logos/symbol/${symbol}`;
img.alt = `${symbol} logo`;
img.style.width = '48px';
document.getElementById(containerId).appendChild(img);
}
// Display Apple and Tesla logos
displayLogo('AAPL', 'logo-container');
displayLogo('TSLA', 'logo-container');
function StockLogo({ symbol }) {
return (
<img
src={`https://api.elbstream.com/logos/symbol/${symbol}`}
alt={`${symbol} logo`}
className="w-12 h-12"
/>
);
}
// Usage
function Portfolio() {
const holdings = ['AAPL', 'TSLA', 'MSFT', 'GOOGL'];
return (
<div className="flex gap-4">
{holdings.map(symbol => (
<StockLogo key={symbol} symbol={symbol} />
))}
</div>
);
}
<template>
<div class="portfolio">
<div v-for="symbol in holdings" :key="symbol" class="holding">
<img
:src="`https://api.elbstream.com/logos/symbol/${symbol}`"
:alt="`${symbol} logo`"
class="w-12 h-12"
/>
<span>{{ symbol }}</span>
</div>
</div>
</template>
<script setup>
const holdings = ['AAPL', 'TSLA', 'MSFT', 'GOOGL'];
</script>
def get_logo_url(identifier, id_type='symbol', format='svg', size=100):
base_url = 'https://api.elbstream.com/logos'
url = f'{base_url}/{id_type}/{identifier}'
if format != 'svg':
url += f'?format={format}&size={size}'
return url
# Examples
apple_logo = get_logo_url('AAPL')
tesla_png = get_logo_url('TSLA', format='png', size=200)
apple_isin = get_logo_url('US0378331005', id_type='isin')
Yes! The free tier is free forever with attribution. No credit card required, no trial period.
There are no hard rate limits, but fair use applies. Don't scrape the entire database. For high-volume enterprise use, contact us.
The API returns a placeholder for missing logos. You can detect this and handle it in your app. Missing a logo you need? Let us know.
Yes! We encourage caching. Logos rarely change, so aggressive caching is fine.
Need to remove attribution or host logos on your own domain? The Enterprise plan includes:
Learn about Enterprise pricing