Developers
An icon API you can build on
Everything the icon library does is available over plain JSON REST. Search and fetch without an account under per-minute IP limits, or generate a free key below for 1,000 calls a month.
Quick start
Your first call, in under a minute
curl "https://iconvault.site/api/iconify/search?query=shopping%20cart&limit=5"curl "https://iconvault.site/api/iconify/search?query=shopping%20cart&limit=20" \
-H "x-api-key: ivk_live_YOUR_KEY_HERE"
# or: -H "Authorization: Bearer ivk_live_YOUR_KEY_HERE"Keys
Your API keys
Reference
Endpoints
/api/iconify/searchFull-text search across every indexed set. Params: query, limit, start, prefix./api/icon/:prefix/:name.svgRaw SVG for one icon. Params: color, width, height./api/iconsBatch icon bodies. Body: { icons: ["mdi:cart", "lucide:heart"] }./api/iconify/collectionsList every icon set with totals and licences./api/iconify/collection/:prefixAll icon names in one set, with categories and aliases.Platform
Built for production traffic
Keys that work
Generate a key above in one click. Read-only or read-write scope, revocable instantly, usage metered per key.
Honest rate limits
Keyless: 120 searches, 240 icon fetches and 120 batch calls per minute per IP. Keyed: 1,000 calls per key per month.
Cached at the edge
SVG responses are immutable and CDN-cached, so repeat fetches are fast and never touch your quota.
No SDK required
Plain JSON over HTTPS with CORS enabled. fetch and a key header is the whole integration.
Responses
Predictable shapes, predictable errors
{
"icons": ["mdi:cart", "mdi:cart-outline", "..."],
"total": 412,
"limit": 20,
"start": 0,
"collections": { "mdi": { "name": "Material Design Icons", "...": "..." } }
}HTTP/1.1 401 Unauthorized
{ "error": "Invalid API key." }
# Other key errors:
# "This API key has been revoked."
# 429: "Monthly API quota exhausted. Usage resets
# 30 days after the period started."Questions
API FAQ
No. Every endpoint works keyless under per-minute IP limits (120 searches, 240 icon fetches, 120 batch calls). An account just gets you a key with 1,000 calls a month and no per-minute cap.
One JSON request with your key is one unit against that key's monthly quota. Repeat SVG fetches served from the edge cache are free.
Use a read-only key and keep it to low-traffic pages, or proxy through your own backend. Never ship a read-write key in client-side code.
It stops working immediately and cannot be restored. Generate a fresh one and update the places that used the old key.
Generate your first key
Sign in, pick a name, and your key is ready in seconds with a 1,000-call monthly quota.