Skip to content

発行者 API

バッジを授与する組織や個人 — 発行者を管理します。

すべてのエンドポイントは X-Api-Key ヘッダーでの認証が必要です。認証 を参照してください。

発行者の作成

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

POST /issuers

パラメータ

パラメータ必須説明
namestring必須組織名(3 文字以上)
urlstring必須組織の Web サイト(有効な HTTP/HTTPS URL)
emailstring必須発行者の連絡先メール
logostring任意Base64 エンコードされた画像(PNG または JPG)
linkedinOrganizationIdstring任意LinkedIn 会社ページの数値 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
{
  "statusCode": 200,
  "info": {
    "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
{
  "statusCode": 200,
  "info": {
    "issuers": [
      {
        "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": "2025-01-15T10:30:00.000Z"
      }
    ]
  }
}

発行者の確認

発行者のメールに送られた確認コードを使って発行者を確認します。

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
{
  "statusCode": 200,
  "info": {
    "verified": true
  }
}

発行者の削除

発行者を削除します。発行者にバッジが 1 つもないことが必要です。

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
{
  "statusCode": 200,
  "info": {
    "deleted": true
  }
}

エラー

  • 400 — 発行者にバッジや授与があり削除できません(先にそれらを削除してください)
  • 404 — 発行者が見つかりません

発行者の更新

未確認の発行者のフィールドを更新します。発行者が確認済みになると、資格の安定性を保つため編集可能なのは logolinkedinOrganizationId のみになります。

PUT /issuers/{issuerId}

パラメータ

パラメータ必須説明
issuerIdstring必須発行者 ID(パスパラメータ)
namestring任意新しい名前(未確認時のみ)
urlstring任意新しい URL(未確認時のみ)
emailstring任意新しいメール(未確認時のみ — 新しい確認メールが送られます)
logostring任意新しい Base64 エンコード済みロゴ
linkedinOrganizationIdstring任意新しい LinkedIn 組織 ID(クリアする場合は空文字列)

確認コードのローテート

以前の確認リンクを無効化し、新しいものをメールで送信します。発行者がまだ未確認の間のみ有効です。

POST /issuers/{issuerId}/rotate-code

レスポンス

json
{
  "statusCode": 200,
  "info": {
    "sent": true
  }
}

badges.ninja Documentation