Loading icons...

API

Search icons programmatically. All endpoints return JSON. No authentication required.

Icons

GET /api/icons/search

Search icons by name across all icon sets. Supports full-text search, trigram similarity, and synonym matching.

Parameters
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
GET /api/icons/:id

Get a single icon by ID. Returns full metadata including filenames, platform identifiers, categories, phrases, and SVG URLs for all sizes.

Icon Sets

GET /api/icon-sets

List all available icon sets with metadata: styles, sizes, license, color methods, and icon count.

Response Formats

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)

Response Fields

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"})

Other Endpoints

GET /api/health

Health check. Returns icon count and status.

GET /icons/:icon_set/:style/:filename

Serve an icon SVG file. Cached for 1 year with immutable header.

Response: image/svg+xml
POST /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).

Parameters
task Task to run: sync, clean, cube
X-API-Key API key (header, required)

AI / LLM Integration

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.

MCP Server (Claude Desktop / Claude Code)

{
  "mcpServers": {
    "pure-admin-icons": {
      "command": "npx",
      "args": ["-y", "-p", "@keenmate/pure-admin-icons-mcp", "pure-admin-icons-mcp"]
    }
  }
}

LLM-friendly endpoint

curl 'https://icons.pureadmin.io/api/icons/search?q=calendar&format=text'

Machine-readable docs

/llms.txt · /.well-known/ai-plugin.json

Usage Examples

Search icons

curl 'https://icons.pureadmin.io/api/icons/search?q=pen&size=24&limit=5'

Filter by multiple icon sets

curl 'https://icons.pureadmin.io/api/icons/search?q=arrow&set=heroicons&set=lucide&set=fontawesome'

Get icon detail

curl 'https://icons.pureadmin.io/api/icons/5403'

List icon sets

curl 'https://icons.pureadmin.io/api/icon-sets'

JavaScript

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}`));

Trigger sync (authenticated)

curl -X POST -H "X-API-Key: your-key" 'https://icons.pureadmin.io/api/maintenance/sync/fontawesome'