Search icons programmatically. All endpoints return JSON. No authentication required.
/api/icons/search
Search icons by name across all icon sets. Supports full-text search, trigram similarity, and synonym matching.
q
—
Search query (required)
set
—
Filter by icon set: fluentui, fontawesome, heroicons, lucide, tabler (repeatable)
size
—
Filter by size: 16, 20, 24, 28, 32, 48
style
—
Filter by style: regular, filled, outline, solid, color, light, brands
limit
—
Max results (default: 50, max: 100)
format
—
Response format: json (default), compact, text
/api/icons/:id
Get a single icon by ID. Returns full metadata including filenames, platform identifiers, categories, phrases, and SVG URLs for all sizes.
/api/icon-sets
List all available icon sets with metadata: styles, sizes, license, color methods, and icon count.
The format parameter on /api/icons/search controls the response shape:
json
—
Full response: id, icon_set, name, style, style_color_method, sizes, ios/android identifiers, svg_url
compact
—
Minimal JSON: icon_set, name, style, url
text
—
Plain text, one icon per line (most token-efficient for AI/LLMs)
Key fields in the JSON response:
style_color_method
—
How to set icon color via CSS: "fill", "stroke", or "multicolor" (not recolorable)
svg_url
—
Relative URL to the SVG file (e.g., /icons/fluentui/regular/ic_fluent_calendar_24_regular.svg)
ios
—
iOS/Swift identifier per size (e.g., {"24": "calendar24Solid"})
android
—
Android/Kotlin identifier per size (e.g., {"24": "ic_heroicons_calendar_24_solid"})
/icons/:icon_set/:style/:filename
Serve an icon SVG file. Cached for 1 year with immutable header.
Response: image/svg+xml/api/maintenance/:task
Trigger a maintenance task. Requires X-API-Key header. Rate limited to 5 requests per 5 minutes.
Use POST /api/maintenance/sync/:icon_set to sync a specific set (e.g., fontawesome, fluentui).
task
—
Task to run: sync, clean, cube
X-API-Key
—
API key (header, required)
For AI assistants and LLMs, use the text format for maximum token efficiency.
We also provide an MCP server for direct integration with Claude Desktop and Claude Code.
{
"mcpServers": {
"pure-admin-icons": {
"command": "npx",
"args": ["-y", "-p", "@keenmate/pure-admin-icons-mcp", "pure-admin-icons-mcp"]
}
}
}
curl 'https://icons.pureadmin.io/api/icons/search?q=calendar&format=text'
curl 'https://icons.pureadmin.io/api/icons/search?q=pen&size=24&limit=5'
curl 'https://icons.pureadmin.io/api/icons/search?q=arrow&set=heroicons&set=lucide&set=fontawesome'
curl 'https://icons.pureadmin.io/api/icons/5403'
curl 'https://icons.pureadmin.io/api/icon-sets'
const res = await fetch('https://icons.pureadmin.io/api/icons/search?q=calendar&format=compact');
const { results } = await res.json();
console.log(results.map(i => `${i.icon_set}/${i.name}`));
curl -X POST -H "X-API-Key: your-key" 'https://icons.pureadmin.io/api/maintenance/sync/fontawesome'