跳到主要内容
网站首页

图标库

API v1

公开 REST API 文档

面向开发者的只读接口:按分类、标签、字母或关键词检索本站品牌矢量图标(SVG)。响应为 JSON,所有资源地址均为相对路径,调用方自行拼接自己的域名或本站域名即可。

交互式控制台

浏览器里直接试调所有公开端点,demo key 已预填(免费,限流 60 次/分,带 key 配额 ×10)。

检索品牌矢量图标,支持分类/标签/字母/关键词过滤与分页

查询参数

GET /api/v1/svgs

检索品牌矢量图标(94848+ 池内可直接命中,分页返回)。

curl "https://your-domain.example/api/v1/svgs?category=technology&page=1&limit=50"

查询参数

参数类型必填说明
categorystring否按分类过滤,slug 见 /api/v1/categories,如 technology、finance-banking
tagstring否按标签过滤,slug 形态如 social-media
letterstring否按首字母过滤:A-Z 单字母、0-9(数字开头)、other(其他首字母)
searchstring否关键词过滤(对图标名做包含匹配),如 chrome、arrow
keysstring否按 routeKey 批量精确获取(16 位 hex 逗号分隔,1-50 个,非法项忽略),传入后优先于其他过滤与分页,响应为 { data, total }
pagenumber否页码,从 1 开始,默认 1
limitnumber否每页条数,1-200,默认 50

响应字段(data[])

字段类型说明
titlestring图标名称(如 Chrome、youtube)
categorystring首个分类 slug(与 /api/v1/categories 的 slug 对应,未分类为空串)
routestringSVG 资产相对路径(/library/*.svg),可直接 <img src> 引用
urlstring品牌官网(缺失为空串)
detailUrlstring本站详情页相对路径(/svg/item-{routeKey})
{
  "data": [
    {
      "title": "Chrome",
      "category": "科技互联网",
      "route": "/library/icon-b0005e0fd2a4b0355033b765.svg",
      "url": "https://chrome.com/",
      "detailUrl": "/svg/item-b0005e0fd2a4b0355033b765"
    }
  ],
  "page": 1,
  "limit": 50,
  "total": 128,
  "totalPages": 3
}

GET /api/v1/categories

返回全部 SVG 分类(slug / name / count)与分组信息,作为 /api/v1/svgs 的 category 参数字典。

curl "https://your-domain.example/api/v1/categories"

GET /api/v1/icons/random

目录池内不重复随机抽样,适合「每日一图」「随机灵感」类集成场景;条目结构与 /api/v1/svgs 的 data[] 一致。

curl "https://your-domain.example/api/v1/icons/random?count=4"
参数类型必填说明
countnumber否返回条数,1-12,默认 1;每次请求结果均不同(响应禁缓存)

CDN 直链引用

不想调接口?每个图标都有稳定的 SVG 直链(带 immutable 长缓存),HTML、Markdown、README 里一行引用即可。routeKey 可从 /api/v1/svgs 响应或图标详情页 URL 获得。

<!-- HTML -->
<img src="https://your-domain.example/library/icon-b0005e0fd2a4b0355033b765.svg" width="32" alt="Chrome" />

<!-- Markdown(GitHub README)-->
![Chrome](https://your-domain.example/library/icon-b0005e0fd2a4b0355033b765.svg)

响应头为 Cache-Control: immutable,适合直接前置自己的 CDN;需要换色、描边参数化请用详情页的复制格式(CSS mask / currentColor SVG)。

Figma 插件

官方 Figma 插件安装包:下载 zip 后在 Figma 中依次进入 Plugins → Development → Import plugin from manifest… 选择解压出的 manifest.json 即可在画布内搜索并插入本站图标。

下载插件安装包(zip)安装指引

MCP Server(AI 工作流)

端点 POST /api/mcp 实现 Model Context Protocol(Streamable HTTP,无状态 JSON 模式),提供 3 个工具,可在 Claude、Cursor 等 AI IDE 中直接检索与获取本站图标。

工具参数说明
search_iconsquery(中英文均可)、category?、tag?、limit?语义检索(中文同义词 + 拼音互译),返回 name/key/分类/标签
get_icon_detailkey体积/viewBox/图元/品牌主色/健康评分分析报告
get_svg_sourcekey返回完整 SVG 源码文本,可直接写入本地文件
# 手动调用(JSON-RPC 2.0)
curl -X POST https://your-domain.example/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_icons","arguments":{"query":"箭头","limit":5}}}'

使用约定

  • · 接口只读、免鉴权,响应带 CORS 头(Access-Control-Allow-Origin: *),浏览器可直接调用。
  • · 图标内容归其品牌方所有,请遵循各图标库的开源协议与品牌使用规范,请勿用于商标注册或误导性用途。
  • · route 为相对路径:拼接本站域名可直接引用 SVG 资产,也可代理到自己的对象存储。

速率限制

所有 /api/v1 端点限流 60 次/分钟/IP;每次响应附带 X-RateLimit-Limit 与 X-RateLimit-Remaining 响应头。超额时返回 429 与 Retry-After(秒),请按该间隔退避重试。

批量任务可在请求头携带 x-api-key(联系我们获取),配额提升为 10 倍。

端点限额(每分钟/IP)说明
/api/v1/*60分类 / 图标 / 随机
/api/search60跨频道搜索(含语义召回)
/api/vector-search12向量检索 / 以图搜图(计算开销大)
/api/v1/visual-search12以图搜图 v1 版(POST image data uri,语义相似品牌图标召回)
/api/rate · /api/request20 / 30评分与投票(写操作更低)

框架快速开始

三分钟接入:React Hook / Vue 组合式 / 纯 HTML / 命令行四种方式,替换 YOUR_API_KEY 为你自己的 key(/account 创建)。

import { useEffect, useState } from 'react';

// 1. 拉取图标(可携带你的 x-api-key 提升配额)
function useIcons(params: Record<string, string> = {}) {
  const [data, setData] = useState<{ title: string; route: string }[]>([]);
  useEffect(() => {
    const qs = new URLSearchParams(params).toString();
    fetch(`https://your-domain.example/api/v1/svgs?${qs}`)
      .then((r) => r.json())
      .then((res) => setData(res.data ?? []));
  }, []); // 依赖按需补齐
  return data;
}

// 2. 渲染(route 为相对路径,直接 <img> 引用)
export function IconList() {
  const icons = useIcons({ category: 'technology', limit: '12' });
  return (
    <div className="grid grid-cols-6 gap-2">
      {icons.map((it) => (
        <img key={it.route} src={`https://your-domain.example${it.route}`} alt={it.title} width={32} height={32} />
      ))}
    </div>
  );
}

相关页面:SVG 图标频道·图标速查表示例

Command Palette

Search for a command to run...