Icons8 Image URLs API
Free icon delivery by URL with no key: choose a style, size and icon name in the path and get a rendered PNG or SVG straight back. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Icons8 Image URLs API?
Icons8 serves icons as images from a predictable URL made of style, size and icon name, with no API key. The response is the rendered icon in the requested format, ready to use as an image source.
Icon libraries usually mean a build step — install a package, configure a sprite, tree-shake the unused ones. This is the opposite approach: the URL is the entire integration. `/{style}/{size}/{name}.png` returns that icon at that size, with nothing installed and nothing bundled, which suits prototypes, emails and any context where a build step is not available.
The style segment is the part that carries the most meaning: `color` for full-colour icons, `fluency` for Microsoft's Fluent style, `material-outlined`, `ios-filled` and a long list besides, each a complete visual family. Sticking to one style is what makes an interface look coherent. The important caveat is licensing rather than technical: Icons8's free tier requires a visible link back to icons8.com, and their paid plans remove that condition. Requesting `.svg` instead of `.png` returns a vector you can recolour with CSS.
Quick facts
- Base URL
https://img.icons8.com- Authentication
- No API key for the image URLs. The free tier requires visible attribution linking to icons8.com; paid plans remove that requirement.
- Rate limit
- No published limit. Icons are CDN-cached and immutable per URL.
- Pricing
- Free with attribution. Paid plans remove the link-back requirement and add formats and sizes.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Icons8 Image URLs 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 an icon as a PNG
GET https://img.icons8.com/color/48/home.png
curl 'https://img.icons8.com/color/48/home.png'const res = await fetch("https://img.icons8.com/color/48/home.png");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://img.icons8.com/color/48/home.png", timeout=20)
res.raise_for_status()
print(res.json())# This endpoint returns image/png, not JSON.
# The response body is the image itself, so it can be used directly as an
# <img src="..."> or saved to a file — there is nothing to parse.
#
# Verified: HTTP 200, Content-Type: image/pngParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
style | path | Required | Visual family — `color`, `fluency`, `material-outlined`, `ios-filled`, `office` and many more. color |
size | path | Required | Pixel size. Common values are 24, 48, 96 and 240. 48 |
name.format | path | Required | Icon name and extension. `.png` for raster, `.svg` for vector. home.png |
Response fields
(body)image/png- The rendered icon. Requesting a `.svg` extension returns `image/svg+xml` instead, which can be recoloured with CSS.
Content-Typeheader- Reflects the extension you requested.
(CORS)header- A permissive Access-Control-Allow-Origin header is sent, so canvas access works.
(missing icon)behaviour- An unknown name or unavailable style returns an error rather than a fallback icon.
What you can build with the Icons8 Image URLs API
- Drop icons into a prototype with no build step
- Use icons in HTML email, where icon fonts and sprites do not work
- Serve icons into a no-code or low-code tool that only accepts URLs
- Compare visual styles quickly by swapping one path segment
Common errors and how to fix them
404 or an error image
The icon name or style does not exist.
Fix: Search icons8.com for the exact slug. Names are lowercase and hyphenated, and not every icon exists in every style.
Icons look inconsistent
Styles were mixed across the interface.
Fix: Pick one style family and keep the segment constant. That single choice does most of the work in making an icon set look designed.
Attribution complaint
The free tier requires a visible link to icons8.com.
Fix: Add the link, or move to a paid plan. This is a licence condition, not a technical one.
Icon is blurry
A small raster size was scaled up.
Fix: Request a larger `size`, or use the `.svg` extension and let it scale.
Icons8 Image URLs API — frequently asked questions
Do I need an API key for Icons8 icon URLs?
No. The image URLs work without any key. What the free tier does require is a visible attribution link to icons8.com.
How do I choose a style?
The style is a path segment — `color`, `fluency`, `material-outlined`, `ios-filled` and others. Keeping it constant across your interface is what makes the icons look like a set.
Can I get vectors instead of PNGs?
Yes. Request the `.svg` extension instead of `.png` and you get a vector you can scale and recolour with CSS.
Is attribution really required?
Yes on the free tier — a visible link back to icons8.com. Their paid plans remove the requirement, and it is a licence condition rather than something enforced technically.
Tools that pair with this API
Favicon Generator
Generate a complete favicon pack from one image: multi-size favicon.ico, 16–512 px PNGs, apple-touch-icon and ready-to-paste HTML link tags.
App Icon Generator
Turn one square image into every iOS, Android and PWA app icon size, plus the Contents.json and web manifest icons array.
SVG to PNG Converter
Convert SVG vector files to PNG at any resolution you choose. Render crisp raster images from SVG in your browser — free, instant and private.
ICO Converter (Favicon Generator)
Convert PNG or JPG images to a multi-size ICO favicon (16, 32 and 48 px in one file). Generate a valid favicon.ico in your browser — free, no uploads.
Icons8 Image URLs 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.