Brand logos, Material icons, and UI elements — all served as crisp SVGs via a single API endpoint. Drop it anywhere.
Runs on Vercel Edge Functions for sub-50ms latency across every continent. No cold starts.
Pass a hex code or color name directly in the URL. Icons render pixel-perfectly at any size from 16 to 512.
No npm packages, no config files. Works as a plain <img> src in any framework — HTML, React, Vue, Webflow.
High-fidelity brand SVGs for top logos, then seamless routing to the 10k+ Iconify network for everything else.
Use as an <img> source, CSS background-image, inline SVG code, or React component prop. One API, all workflows.
No API keys, no rate limits for normal use, no credit card. Open-source and built to stay free forever.
The easiest method. Drop a URL into any <img> tag. Works in Webflow, WordPress, Framer, and raw HTML — no build step required.
<!-- Simple image embed --> <img src="https://icon-flow-pi.vercel.app/api/render?q=google&color=000000&size=32" alt="Google" width="32" />
Build a dynamic icon component driven entirely by props. Works with any React-based framework including Next.js, Remix, and Vite.
const Icon = ({ name, color = '000000', size = 24 }) => ( <img src={`https://icon-flow-pi.vercel.app/api/render?q=${name}&color=${color}&size=${size}`} width={size} alt={`${name} icon`} /> ); // Usage <Icon name="github" color="000000" size={24} />
Use as a background-image for styled buttons, pseudo-elements, or any element that needs an icon without extra markup.
.btn-send { background-image: url('https://icon-flow-pi.vercel.app/api/render?q=send&color=000000&size=20'); background-repeat: no-repeat; background-position: center; background-size: 20px 20px; padding-left: 36px; }
All parameters are passed as query strings to the /api/render endpoint.
| Parameter | Type | Default | Description |
|---|---|---|---|
| q | string | circle | Icon name or brand (e.g. rocket, google) |
| color | string | 000000 | Hex code without # (e.g. FF0000) or color name |
| size | number | 24 | Width and height in pixels. Integer (e.g. 48) |