BYTETOOLS

Simple Icons CDN API

Fetch any brand's official SVG logo by slug, already coloured, with one GET request. No key, no npm install, permissive CORS. Verified example and sizing notes.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Simple Icons CDN API?

The Simple Icons CDN serves brand logos as SVG from a URL. `GET https://cdn.simpleicons.org/{slug}` returns the icon with the brand's official colour applied, and optional path segments override the colour for light and dark themes. No API key is required.

Simple Icons is the icon set behind a large share of the web's 'technologies I use' sections, and the CDN removes the build step entirely. Instead of installing a package and importing an icon component, you point an `img` tag at a slug. The default response is already filled with the brand's official hex colour, which is the fiddly part when you extract icons from a package yourself.

The returned SVG has a `viewBox` of `0 0 24 24` and deliberately carries no `width` or `height`, so it inherits its size from CSS or from the attributes on your `img` element. Set a size or it will render at whatever default the surrounding context imposes. Each file includes a `<title>` element with the brand name, which is good for accessibility, and the response carries a permissive CORS header so it can be fetched and inlined by front-end code.

Quick facts

Base URL
https://cdn.simpleicons.org
Authentication
No key or account. Icons are brand trademarks, so usage must respect each brand's own guidelines.
Rate limit
Not published. It is a CDN-fronted static asset service, so ordinary use is not a concern.
Pricing
Free. The icon data is CC0; the trademarks themselves are not.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Simple Icons CDN API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch a brand logo as SVG

GET https://cdn.simpleicons.org/github

curl
curl 'https://cdn.simpleicons.org/github'
JavaScript (fetch)
const res = await fetch("https://cdn.simpleicons.org/github");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://cdn.simpleicons.org/github", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
<svg fill="#181717" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.4

Parameters

ParameterTypeRequiredDescription
{slug}pathRequiredThe brand slug, lowercase with punctuation and spaces removed, e.g. `github`, `nodedotjs`, `visualstudiocode`. github
{color}pathOptionalOverride the fill: a hex value without the hash, a CSS colour name, or `_` to keep the brand default. ff0000
{darkColor}pathOptionalSecond colour used when the viewer prefers a dark theme. ffffff
viewboxstringOptionalSet to `auto` to tighten the viewBox around the glyph instead of the standard 24x24 square. auto

Response fields

(body)image/svg+xml
The SVG document itself. There is no JSON envelope, so it can be used directly as an `img` source or inlined into markup.
fillattribute
Set on the root `svg` element to the brand's official hex colour, or to whatever you passed in the colour path segment.
viewBoxattribute
Always `0 0 24 24` unless you pass `viewbox=auto`. There is no `width` or `height`, so size it with CSS.
titleelement
The brand name as a `<title>` child, which screen readers announce. Keep it when inlining rather than stripping it as noise.
roleattribute
Set to `img` for accessibility, so the SVG is announced as an image rather than as a group of shapes.

What you can build with the Simple Icons CDN API

  • Build a tech stack or integrations section without bundling an icon package
  • Add brand logos to a README or documentation page
  • Show provider logos on a login screen or status dashboard
  • Render theme-aware icons by supplying a light and a dark colour in the path
  • Prototype a UI with real brand marks before deciding on an icon strategy

Common errors and how to fix them

404

The slug is wrong. Slugs strip punctuation and expand symbols in ways that are hard to guess.

Fix: Node.js is `nodedotjs`, VS Code is `visualstudiocode`. Search simpleicons.org for the exact slug rather than guessing.

Icon renders enormous or invisible

The SVG has no intrinsic width or height.

Fix: Set explicit dimensions on the `img` element or via CSS; the 24x24 viewBox alone does not size it.

Wrong colour on dark backgrounds

The default fill is the brand colour, which can be near-black.

Fix: Pass a colour path segment, or supply both a light and a dark colour so the CDN can respond to the viewer's theme.

Simple Icons CDN API — frequently asked questions

Do I need an API key for the Simple Icons CDN?

No. It is a free, key-free static asset service fronted by a CDN, with permissive CORS headers.

How do I change the icon colour?

Add a colour as a path segment, for example `/github/ff0000`. Add a second segment to supply a dark-theme colour, and use `_` in the first position to keep the brand default.

Can I use brand logos freely?

The icon data is CC0, but the logos are trademarks. You still need to follow each brand's usage guidelines, particularly around implying endorsement or altering a mark.

Why is the icon not showing at the size I set?

The SVG deliberately omits width and height so it inherits from its container. Set dimensions on the `img` element or in CSS.

Tools that pair with this API

Simple Icons CDN is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.