Fetch 4,009 brand icons programmatically. Open API with CORS enabled, cached responses, and multiple output formats.
Direct URL to any icon SVG file
thesvg.org/icons/github/default.svgFind icons by name or category
thesvg.org/api/registry?q=googleFull metadata + inline SVG
thesvg.org/api/registry/githubhttps://thesvg.orgAll endpoints return JSON with CORS headers enabled. Responses are cached for 24 hours.
/icons/{slug}/{variant}.svgServe an SVG file directly. Use in HTML img tags, CSS background-image, or any context that accepts image URLs.
| Name | Type | Description |
|---|---|---|
slugrequired | string | Icon identifier (e.g. github, vercel) |
variantrequired | string | default, light, dark, mono, wordmark, wordmark-light, wordmark-dark |
curl https://thesvg.org/icons/github/default.svg
# HTML
<img src="https://thesvg.org/icons/github/default.svg" alt="GitHub" />
# Markdown
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M12 .297c-6.63 0-12 ..."/>
</svg>/api/registrySearch and list icons. Returns a paginated index with slug, title, categories, and available variants.
| Name | Type | Description |
|---|---|---|
q | string | Search query (fuzzy match on name, slug, aliases) |
category | string | Filter by category (e.g. AI, Browser, Design). 56 categories available. |
limit | number | Max results to return (default: 50, max: 200) |
# Search for icons
curl "https://thesvg.org/api/registry?q=google"
# Filter by category
curl "https://thesvg.org/api/registry?category=AI&limit=10"{
"total": 212,
"count": 10,
"limit": 10,
"icons": [
{
"slug": "openai",
"title": "OpenAI",
"categories": ["AI"],
"variants": ["default", "light", "dark", "wordmark"]
}
]
}/api/registry/{slug}Get full metadata for a single icon including inline SVG content for all variants.
| Name | Type | Description |
|---|---|---|
slugrequired | string | Icon identifier |
format | string | Set to 'raw' to return SVG with image/svg+xml content type |
# Full metadata + inline SVGs
curl "https://thesvg.org/api/registry/github"
# Raw SVG only
curl "https://thesvg.org/api/registry/github?format=raw"{
"name": "github",
"title": "GitHub",
"categories": ["Software"],
"hex": "181717",
"url": "https://github.com",
"variants": {
"default": {
"url": "https://thesvg.org/icons/github/default.svg",
"svg": "<svg xmlns=\"...\" ...>...</svg>"
},
"light": { "url": "...", "svg": "..." },
"dark": { "url": "...", "svg": "..." }
},
"cdn": {
"jsdelivr": "https://cdn.jsdelivr.net/.../github/{variant}.svg",
"direct": "https://thesvg.org/icons/github/{variant}.svg"
}
}For maximum performance, use jsDelivr CDN which provides global edge caching.
https://cdn.jsdelivr.net/gh/GLINCKER/thesvg@main/public/icons/{slug}/{variant}.svg
# Examples
https://cdn.jsdelivr.net/gh/GLINCKER/thesvg@main/public/icons/github/default.svg
https://cdn.jsdelivr.net/gh/GLINCKER/thesvg@main/public/icons/vercel/wordmark.svg// Fetch icon metadata
const res = await fetch("https://thesvg.org/api/registry/github");
const data = await res.json();
console.log(data.variants.default.svg);
// Search for icons
const search = await fetch("https://thesvg.org/api/registry?q=cloud&limit=5");
const results = await search.json();
results.icons.forEach(icon => console.log(icon.slug));function BrandIcon({ slug, variant = "default" }) {
return (
<img
src={`https://thesvg.org/icons/${slug}/${variant}.svg`}
alt={slug}
width={24}
height={24}
/>
);
}
<BrandIcon slug="github" />
<BrandIcon slug="vercel" variant="wordmark" /><!-- Direct embed -->
<img src="https://thesvg.org/icons/github/default.svg" alt="GitHub" width="24" />
<!-- With dark mode support -->
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://thesvg.org/icons/github/dark.svg" />
<img src="https://thesvg.org/icons/github/light.svg" alt="GitHub" width="24" />
</picture>| Cache TTL | 24 hours (CDN + API) |
| CORS | Enabled for all origins |
| Authentication | None required |
| Max results per request | 200 |
| Response format | JSON (API) / SVG+XML (CDN) |
If you build a tool, plugin, or integration using the API, open a PR to list it on the Extensions page.