Skip to content

発行者 API ​

バッジの発行者(バッジを発行する組織または個人)を管理します。

すべてのエンドポイントで X-Api-Key ヘッダーによる認証が必要です。認証をご覧ください。

発行者の作成 ​

新しいバッジ発行者を作成します。

POST /issuers

パラメータ ​

パラメータ型必須説明
namestringはい組織名(3 文字以上)
urlstringはい組織のウェブサイト(有効な HTTP/HTTPS URL である必要があります)
emailstringはい発行者の連絡先メールアドレス
logostringいいえBase64 エンコードされた画像(PNG または JPG)
linkedinOrganizationIdstringいいえ数値の LinkedIn 企業ページ ID。設定すると、この発行者のすべての公開クレデンシャルページに Add to LinkedIn Profile ボタンが表示されます。

例 ​

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: 2、Starter: 5、Pro: 10)。クォータの差し引きはありません。
  • 発行者のメールアドレスがアカウントのメールアドレスと一致する場合、発行者は自動的に検証されます。
  • メールアドレスが異なる場合は、発行者のメールアドレスに検証メールが送信されます。
  • 発行者の設定後は、クレデンシャル API を使って、その発行者としてクレデンシャルの発行を開始できます。

発行者の一覧 ​

作成したすべての発行者を取得します。

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 エポックです。発行者が 1 ページに収まらない場合は、ページネーション用に 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 エンコードされたロゴ
linkedinOrganizationIdstringいいえ新しい LinkedIn 組織 ID(空文字列でクリア)

レスポンス ​

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

エラー ​

  • 400 — verified issuers cannot be edited(発行者はすでに検証済みです)
  • 400 — not authorized(発行者は別のアカウントに属しています)
  • 404 — 発行者が見つかりません

badges.ninja Documentation