URL → PNG
所有参数都放在查询字符串里,URL 本身就是条码。可以放进 <img> 标签、表格的 IMAGE() 公式、邮件模板或 Markdown 文件。GET 请求始终返回 PNG。
<img src="https://barcodefox.com/api/v1/barcode?type=ean13&data=400638133393&scale=4"
alt="EAN-13 barcode 4006381333931">把 URL 放进图片标签,就能得到可扫描的 PNG。需要矢量图?POST JSON 获取 SVG。与生成器使用同一套编码器,免费,无需 API 密钥。
11 位数字,或输入 12 位验证校验位
textfgbgrotatehttps://barcodefox.com/api/v1/barcode?type=upca&data=03600029145
通过 URL 调用始终返回 PNG。如需 SVG, 以 JSON 形式 POST 相同参数.
快速开始
所有参数都放在查询字符串里,URL 本身就是条码。可以放进 <img> 标签、表格的 IMAGE() 公式、邮件模板或 Markdown 文件。GET 请求始终返回 PNG。
<img src="https://barcodefox.com/api/v1/barcode?type=ean13&data=400638133393&scale=4"
alt="EAN-13 barcode 4006381333931">以 JSON 请求体发送相同参数。"format": "svg"(默认)输出以毫米为单位的矢量图,"png" 输出位图。
curl -X POST https://barcodefox.com/api/v1/barcode \
-H "content-type: application/json" \
-d '{"type":"code128","data":"BFX-0042","format":"svg"}' \
-o barcode.svg参考
基础 URL https://barcodefox.com/api/v1
| 方法 | 路径 | 返回 |
|---|---|---|
| GET | /barcode | 根据查询参数返回 PNG 图片 |
| POST | /barcode | 根据 JSON 请求体返回 SVG(默认)或 PNG |
| POST | /validate | JSON:数据是否有效、规范化后的数据和校验位 |
| GET | /formats | JSON:支持的类型及其规则 |
GET 使用查询字符串,POST 使用 JSON 键。只有 type 和 data 是必填项。
| 名称 | 取值 | 默认值 | 说明 |
|---|---|---|---|
type必填 | string | — | 条码类型,取下方列出的 8 个值之一。 |
data必填 | string | — | 要编码的内容,最多 128 个字符。缺少校验位时自动补上,已提供时会进行验证。 |
format | svg | png | svg | 仅限 POST。GET 始终返回 PNG,其他取值会被拒绝。 |
scale | 1–10 | 3 | PNG 输出中每个模块(最窄条)的像素数。 |
height | 5–200 | 30 | 条高,单位为模块,可用小数。 |
margin | 0–40 | 5 / 10 | 两侧静区宽度,单位为模块:UPC、EAN 和 ITF-14 为 5,其他类型为 10。 |
text | boolean | true | 在条码下方显示人眼可读的文字。 |
fg | hex | 141413 | 条的颜色,可带或不带 #。 |
bg | hex | transparent | FFFFFF | 背景颜色,或 transparent(透明)。 |
rotate | 0 | 90 | 180 | 270 | 0 | 顺时针旋转角度。 |
dpi | 72–1200 | 300 | 写入 PNG 的分辨率,打印软件据此按正确尺寸排版。 |
即使是 PNG 接口,错误也以 JSON 返回,因此图片标签不会显示错误的条码,而是什么都不显示。
invalid_param缺少参数或参数超出范围。invalid_data数据无法按该类型编码。unsupported_format未知类型,或 GET 请求了 PNG 以外的格式。too_largePNG 将超过 4000 × 4000 像素。payload_too_largePOST 请求体超过 8 KB。rate_limited请求过多,请等待 Retry-After 指定的秒数。HTTP/1.1 400 Bad Request
content-type: application/json
{
"error": {
"code": "invalid_data",
"message": "Check digit should be 1, not 7",
"param": "data"
}
}按 IP 地址计算,并在各边缘节点分别计数,因此只是近似值。
宽和高,按缩放与旋转后的结果计算。
同一个 URL 总是返回同一张图片,可以放心外链。
无需密钥,无需注册,可商用。
8 种类型
upcaUPC-A11 位数字,或输入 12 位验证校验位
?type=upca&data=03600029145ean13EAN-1312 位数字,或输入 13 位验证校验位
?type=ean13&data=400638133393ean8EAN-87 位数字,或输入 8 位验证校验位
?type=ean8&data=9638507code128Code 128可打印 ASCII 字符,最多 48 个
?type=code128&data=BFX-2026-0042gs1-128GS1-128括号内填写应用标识符,例如 (01)…(17)…
?type=gs1-128&data=(01)09506000134352(17)261231itf14ITF-1413 位数字,或输入 14 位验证校验位
?type=itf14&data=1540014128876code39Code 39A–Z、0–9、空格和 - . $ / + %
?type=code39&data=FOX-42codabarCodabar数字和 - $ : / . +,以 A–D 起止字符包围
?type=codabar&data=A40156BURL 通常用在放图片的地方:<img> 标签、邮件、表格或 Markdown 文件,而 PNG 在这些地方都能用。如需矢量图,请以 JSON 形式 POST 相同参数,并设置 "format": "svg"。
不需要。API 免费、无需注册,并允许商用。每个 IP 地址每分钟约可请求 120 次,超出后会收到带 Retry-After 头的 429 响应。
可以。同一个 URL 总是返回同一张图片,响应可缓存一年,浏览器和 CDN 只需获取一次。
PNG 文件带有分辨率信息(未设置 dpi 时为 300 DPI),打印软件会按对应的物理尺寸排版。如需精确尺寸,请 POST 获取 SVG:它以毫米为单位,每个模块 0.33 mm。
API 没有数据库,不会保存你编码的内容。GET 响应会保存在边缘缓存中以加快重复请求;POST 响应从不缓存。