条码 API

把 URL 放进图片标签,就能得到可扫描的 PNG。需要矢量图?POST JSON 获取 SVG。与生成器使用同一套编码器,免费,无需 API 密钥。

  • 免费 · 无需 API 密钥
  • 支持 CORS
  • PNG 边缘缓存

1 · 类型

11 位数字,或输入 12 位验证校验位

3 · 尺寸
3
30
5
4 · 样式
text
fg
bg
rotate

响应

200 OKimage/png
尺寸
369 × 159 px
DPI
300
模块
3 px
缓存
1 年

请求

GET
https://barcodefox.com/api/v1/barcode?type=upca&data=03600029145
打开 PNG

通过 URL 调用始终返回 PNG。如需 SVG, 以 JSON 形式 POST 相同参数.

快速开始

两种调用方式

GET/api/v1/barcode

URL → PNG

所有参数都放在查询字符串里,URL 本身就是条码。可以放进 <img> 标签、表格的 IMAGE() 公式、邮件模板或 Markdown 文件。GET 请求始终返回 PNG。

<img src="https://barcodefox.com/api/v1/barcode?type=ean13&amp;data=400638133393&amp;scale=4"
     alt="EAN-13 barcode 4006381333931">
  • image/png
  • 缓存一年
  • 无需 JavaScript
POST/api/v1/barcode

JSON → SVG 或 PNG

以 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
  • image/svg+xml
  • image/png
  • 请求体 ≤ 8 KB

参考

接口

基础 URL https://barcodefox.com/api/v1

方法路径返回
GET/barcode根据查询参数返回 PNG 图片
POST/barcode根据 JSON 请求体返回 SVG(默认)或 PNG
POST/validateJSON:数据是否有效、规范化后的数据和校验位
GET/formatsJSON:支持的类型及其规则

参数

GET 使用查询字符串,POST 使用 JSON 键。只有 type 和 data 是必填项。

名称取值默认值说明
type必填string—条码类型,取下方列出的 8 个值之一。
data必填string—要编码的内容,最多 128 个字符。缺少校验位时自动补上,已提供时会进行验证。
formatsvg | pngsvg仅限 POST。GET 始终返回 PNG,其他取值会被拒绝。
scale1–103PNG 输出中每个模块(最窄条)的像素数。
height5–20030条高,单位为模块,可用小数。
margin0–405 / 10两侧静区宽度,单位为模块:UPC、EAN 和 ITF-14 为 5,其他类型为 10。
textbooleantrue在条码下方显示人眼可读的文字。
fghex141413条的颜色,可带或不带 #。
bghex | transparentFFFFFF背景颜色,或 transparent(透明)。
rotate0 | 90 | 180 | 2700顺时针旋转角度。
dpi72–1200300写入 PNG 的分辨率,打印软件据此按正确尺寸排版。

错误

即使是 PNG 接口,错误也以 JSON 返回,因此图片标签不会显示错误的条码,而是什么都不显示。

  • 400invalid_param缺少参数或参数超出范围。
  • 400invalid_data数据无法按该类型编码。
  • 400unsupported_format未知类型,或 GET 请求了 PNG 以外的格式。
  • 400too_largePNG 将超过 4000 × 4000 像素。
  • 413payload_too_largePOST 请求体超过 8 KB。
  • 429rate_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"
  }
}

限制与缓存

  • 120
    每分钟请求数

    按 IP 地址计算,并在各边缘节点分别计数,因此只是近似值。

  • 4000
    PNG 最大像素尺寸

    宽和高,按缩放与旋转后的结果计算。

  • 1 年
    GET 缓存

    同一个 URL 总是返回同一张图片,可以放心外链。

  • $0
    价格

    无需密钥,无需注册,可商用。

8 种类型

支持的 type 取值

  • upcaUPC-A

    11 位数字,或输入 12 位验证校验位

    ?type=upca&data=03600029145
  • ean13EAN-13

    12 位数字,或输入 13 位验证校验位

    ?type=ean13&data=400638133393
  • ean8EAN-8

    7 位数字,或输入 8 位验证校验位

    ?type=ean8&data=9638507
  • code128Code 128

    可打印 ASCII 字符,最多 48 个

    ?type=code128&data=BFX-2026-0042
  • gs1-128GS1-128

    括号内填写应用标识符,例如 (01)…(17)…

    ?type=gs1-128&data=(01)09506000134352(17)261231
  • itf14ITF-14

    13 位数字,或输入 14 位验证校验位

    ?type=itf14&data=1540014128876
  • code39Code 39

    A–Z、0–9、空格和 - . $ / + %

    ?type=code39&data=FOX-42
  • codabarCodabar

    数字和 - $ : / . +,以 A–D 起止字符包围

    ?type=codabar&data=A40156B

常见问题

API 常见问题

不想调用服务器? 在线生成器 可以直接在浏览器中生成同样的条码。

为什么 URL 方式只返回 PNG?

URL 通常用在放图片的地方:<img> 标签、邮件、表格或 Markdown 文件,而 PNG 在这些地方都能用。如需矢量图,请以 JSON 形式 POST 相同参数,并设置 "format": "svg"。

需要 API 密钥吗?

不需要。API 免费、无需注册,并允许商用。每个 IP 地址每分钟约可请求 120 次,超出后会收到带 Retry-After 头的 429 响应。

可以在我的网站上直接外链图片吗?

可以。同一个 URL 总是返回同一张图片,响应可缓存一年,浏览器和 CDN 只需获取一次。

如何按正确尺寸打印条码?

PNG 文件带有分辨率信息(未设置 dpi 时为 300 DPI),打印软件会按对应的物理尺寸排版。如需精确尺寸,请 POST 获取 SVG:它以毫米为单位,每个模块 0.33 mm。

我编码的数据会被保存吗?

API 没有数据库,不会保存你编码的内容。GET 响应会保存在边缘缓存中以加快重复请求;POST 响应从不缓存。