Skip to content

颁发者 API

管理徽章颁发者 — 颁发徽章的组织或个人。

所有端点都需要通过 X-Api-Key 头进行认证。参阅 认证

创建颁发者

创建一个新的徽章颁发者。

POST /issuers

参数

参数类型必填说明
namestring组织名称(至少 3 个字符)
urlstring组织网站(必须是有效的 HTTP/HTTPS URL)
emailstring颁发者联系邮箱
logostringBase64 编码的图片(PNG 或 JPG)
linkedinOrganizationIdstringLinkedIn 公司主页的数字 ID。设置后,该颁发者的每个公开颁发页都会显示 添加到 LinkedIn 个人资料 按钮。

示例

bash
curl -X POST https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "name": "Acme Academy",
      "url": "https://acme.example.com",
      "email": "badges@acme.example.com"
    }
  }'

响应

json
{
  "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

说明

  • 计入你套餐的颁发者上限(Free:1、Starter:5、Pro:无限)。不扣除配额。
  • 若颁发者邮箱与账户邮箱一致,颁发者会被自动验证。
  • 若邮箱不同,会向颁发者邮箱发送一封验证邮件。

列出颁发者

获取你创建的所有颁发者。

GET /issuers

示例

bash
curl -X GET https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here"

响应

json
{
  "items": [
    {
      "id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
      "name": "Acme Academy",
      "url": "https://acme.example.com",
      "email": "badges@acme.example.com",
      "verified": true,
      "timestamp": 1736937000000
    }
  ]
}

timestamp 是以毫秒为单位的 Unix 纪元时间。当颁发者数量超过单页容量时,还会返回一个用于分页的 lastEvaluatedKey


验证颁发者

使用发送到其邮箱的验证码来验证颁发者。

POST /issuers/{issuerId}/verify

参数

参数类型必填说明
issuerIdstring颁发者 ID(路径参数)
codestring邮件中的验证码

示例

bash
curl -X POST https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/verify \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "issuerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "code": "ABC123"
    }
  }'

响应

一个纯字符串:

json
"issuer has been verified"

删除颁发者

删除颁发者。该颁发者必须没有关联的徽章。

DELETE /issuers/{issuerId}

示例

bash
curl -X DELETE https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-Api-Key: bws_your_api_key_here"

响应

一个纯字符串:

json
"issuer has been deleted"

错误

  • 400 — 颁发者仍有关联的徽章:issuer has {n} badge(s) linked — delete the badges first。删除受关联徽章限制 — 颁发记录不会阻止删除。
  • 404 — 颁发者未找到

更新颁发者

更新颁发者的字段。只有未验证的颁发者可以编辑 — 颁发者一旦验证,该端点会返回 400 verified issuers cannot be edited,以保证凭证稳定性。编辑颁发者会重新生成其验证码:若 email 与你的账户邮箱一致,颁发者会自动重新验证,否则会向该地址发送一封新的验证邮件。

PUT /issuers/{issuerId}

参数

参数类型必填说明
issuerIdstring颁发者 ID(路径参数)
namestring新名称
urlstring新 URL
emailstring新邮箱(除非与你的账户邮箱一致,否则会发送新的验证邮件)
logostring新的 Base64 编码 Logo
linkedinOrganizationIdstring新的 LinkedIn 组织 ID(或空字符串以清除)

响应

json
{
  "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
  "updated": true
}

错误

  • 400verified issuers cannot be edited(该颁发者已验证)
  • 400not authorized(该颁发者属于其他账户)
  • 404 — 颁发者未找到

badges.ninja Documentation