HCC2D API

HCC2D REST API 可让你以编程方式生成 HCC2D 和 QR 码。使用前需要 API 密钥,可在这里申请

认证

请在 Authorization 请求头中传递密钥:

Authorization: Bearer hcc2d_<64 hex chars>

没有有效密钥的请求会收到 HTTP 401。

基础 URL

https://hcc2d.com/api/v1

端点

POST /api/v1/generate

将负载编码为 HCC2D 或 QR 符号,并返回 PNG 图像。

请求体(JSON)

字段类型必填说明
payloadBase64string以 base64 编码的负载字节
inputNamestring存储在 HCC2DF 容器中的文件名。默认值为 payload.bin。structured: false 时忽略。
structuredboolean使用 HCC2DF 容器包装负载(文件名 + zlib 压缩)。默认 true。设为 false 可直接存储原始字节。URL 与 vCard 建议使用 false,以便解码器直接识别内容。
modestring符号类型:qr、hcc2d4(4 色)、hcc2d8(8 色,默认)
ecstring纠错级别:L、M、Q、H(默认 M)
versioninteger符号版本(1–40)。使用 0 表示自动选择。
scaleinteger每个模块的像素数(1–64,默认 12)
quietZoneinteger静区宽度(模块数,0–64,默认 4)

请求示例

curl -X POST https://hcc2d.com/api/v1/generate   -H "Authorization: Bearer hcc2d_<your-key>"   -H "Content-Type: application/json"   -d '{
    "payloadBase64": "SGVsbG8sIFdvcmxkIQ==",
    "inputName": "payload.txt",
    "structured": true,
    "mode": "hcc2d8",
    "ec": "M",
    "version": 0,
    "scale": 4,
    "quietZone": 4
  }' --output code.png

成功响应(200)

{
  "ok": true,
  "imageUrl": "/generated/<uuid>.png",
  "message": "Code generated successfully — Version 1"
}

错误响应

{
  "ok": false,
  "error": "Human-readable message",
  "code": "machine_readable_code"
}

错误代码

HTTP代码含义
400missing_payloadpayloadBase64 缺失或为空
400invalid_base64payloadBase64 不是有效的 base64
400empty_payload解码后的负载为空
400payload_over_max负载超过服务器编码前检查上限
400too_large_settings负载整体可编码,但无法在当前版本、纠错和模式组合下编码
400too_large_absolute负载超过任何符号的绝对容量上限,请减小数据量
400encoder_failed编码器因容量以外的原因拒绝了输入
400invalid_mode / invalid_ec / invalid_version / invalid_scale / invalid_quiet_zone某个请求字段超出允许范围
401auth_requiredAPI 密钥缺失、无效或已被撤销
413body_too_largeHTTP 请求体超过解析器上限
415unsupported_media_typeContent-Type 不是 application/json
429rate_limited达到按密钥或按 IP 的速率限制
429too_many_jobs服务器达到并发编码任务上限
500internal_error意外的服务器内部错误
502missing_output编码器运行完成,但未生成输出图像
503encoder_unavailable服务器上缺少编码器二进制文件
504encoder_timeout编码器进程超时

速率限制

限制项
每个 API 密钥30 次请求 / 分钟
每个 IP(携带密钥)60 次请求 / 分钟
暴力尝试锁定15 分钟内 10 次认证失败会锁定该 IP 15 分钟

达到限制时,服务器会返回 429,并附带 Retry-After 头。

如需更高额度,请联系 info@hcc2d.com。

负载大小限制

层级限制执行方
请求体解析器约 86 KB服务器,JSON 解析前 — 返回 body_too_large
编码前检查65,536 字节(64 KB)服务器,base64 解码后 — 返回 payload_over_max
条码绝对上限约 8,859 字节编码器 — 返回 too_large_absolute
设置相关上限取决于版本和 EC编码器 — 返回 too_large_settings

默认情况下,服务器会通过 HCC2DF 容器先进行 zlib 压缩再编码,因此原始输入在 64 KB 以内时通常仍有机会编码成功。传入 structured: false 可跳过容器,直接编码原始字节。

网页界面也对上传设置了 64 KB 的客户端限制,与服务器预检查保持一致。

图像获取

生成的 PNG 将通过 https://hcc2d.com<imageUrl> 提供,并保留 1 小时。请在生成后尽快下载。

获取 API 密钥

可通过官方申请表申请 API 密钥。

延伸阅读

HCC2DF 格式参考 — 结构化容器的字段级二进制布局。

代码示例 — 提供 JavaScript、Python、Java 和 PHP 的可直接运行示例。

← 返回 HCC2D 编码器