日本語
日本語
Appearance
日本語
日本語
Appearance
クレデンシャル(アサーション)、つまり特定の受領者に発行されたバッジを作成・管理します。
すべてのエンドポイントで、X-Api-Key ヘッダーによる認証が必要です。認証を参照してください。
受領者にバッジを発行します。
1 人につき 1 回の API 呼び出しではなく、数百〜数千人の受領者へ一度に発行したい場合は、CSV アップロードに対応した UI 機能のクレデンシャルの一括発行をご利用ください。
POST /awards| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
badgeId | string | はい | 発行するバッジの ID |
recipient | object | はい | 受領者の詳細(下記参照) |
recipient.name | string | はい | 受領者の氏名(5 文字以上) |
recipient.email | string | はい | 受領者のメールアドレス |
issuedOn | string | はい | ISO 8601 形式の発行日(例: 2025-01-15) |
expires | string | いいえ | ISO 8601 形式の有効期限 |
curl -X POST https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"badgeId": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15"
}
}'{
"awardId": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012"
}任意のフィルタリングとページネーションでクレデンシャルを取得します。
GET /awards| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
filter | JSON 文字列 | いいえ | フィルターオブジェクト(下記参照) |
lastEvaluatedKey | string | いいえ | 前回のレスポンスから得たページネーショントークン |
filter パラメーターは、次のフィールドを持つ JSON 文字列を受け付けます。
| フィールド | 型 | 説明 |
|---|---|---|
badgeId | string | バッジ ID で絞り込みます。 |
search | string | 受領者の名前またはメールアドレスから検索する部分文字列(searchField を参照)。 |
searchField | string | name(デフォルト)または email のいずれか。検索対象の列を指定します。 |
lastEvaluatedKey によるページネーションは、フィルターの有無にかかわらず機能します。ページサイズは 50 です。
curl -X GET https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here"curl -X GET "https://api.badges.ninja/awards?filter=%7B%22badgeId%22%3A%22b1c2d3e4%22%7D" \
-H "X-Api-Key: bws_your_api_key_here"{
"count": 1,
"items": [
{
"id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
"badge": {
"id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
"name": "JavaScript Fundamentals",
"image": "https://badges.ninja/images/{sha256}.png"
},
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15T00:00:00.000Z",
"timestamp": "2025-01-15T10:30:00.000Z"
}
],
"lastEvaluatedKey": "eyJ..."
}レスポンスに lastEvaluatedKey が含まれている場合は、まだ結果が残っています。次のリクエストでクエリパラメーターとして渡すと、次のページを取得できます。
受領者に、そのクレデンシャルに関するメール通知を送信します。
POST /awards/{awardId}/send| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
awardId | string | はい | アワード ID(パスパラメーターおよびボディ) |
email | string | はい | 受領者のメールアドレス |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/send \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"email": "jane@example.com"
}
}'確認用のプレーンな文字列を返します。
"email sent"クレデンシャルを複数の受信者にメールで共有します。
POST /awards/{awardId}/share| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
awardId | string | はい | アワード ID(パスパラメーターおよびボディ) |
recipients | string | はい | カンマ区切りのメールアドレス一覧 |
subject | string | はい | メールの件名 |
message | string | はい | メールの本文 |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/share \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"recipients": "manager@example.com,hr@example.com",
"subject": "Check out my new badge!",
"message": "I just earned the JavaScript Fundamentals badge."
}
}'確認用のプレーンな文字列を返します。
"email sent"発行したクレデンシャルを取り消します。ホスト型の Open Badges v2.0 アサーションに revoked: true(任意の理由付き)が設定され、どの検証者にもバッジが無効であることが分かります。クレデンシャルの記録は監査のために保持され、クレジットは返金されません。
取り消しは、そのクレデンシャルの Open Badges 3.0 Verifiable Credential にも反映されます。VC の credentialStatus が参照する W3C Bitstring Status List でそのアワードのビットが反転されるため、VC ウォレットでも検知できます。取り消し(Bitstring Status List)を参照してください。
POST /awards/{awardId}/revoke| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
awardId | string | はい | アワード ID(パスパラメーター) |
reason | string | いいえ | 取り消しの理由。500 文字に切り詰められます。 |
notify | boolean | いいえ | true の場合、クレデンシャルが取り消されたことを受領者にメールで通知します。デフォルトは false です。 |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/revoke \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"reason": "Issued to the wrong recipient",
"notify": true
}
}'{
"revoked": true,
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012"
}すでに取り消されたクレデンシャルを再度取り消しても冪等です。通知を再送せず、同じレスポンスを返します。
多数のクレデンシャルを一度に取り消すには、アワードごとにこのエンドポイントを呼び出す代わりに、action: "revoke" を指定した耐久性のある一括エンドポイントを使用します。
curl -X POST https://api.badges.ninja/awards/bulk-send \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "parameters": { "action": "revoke", "awardIds": ["<id1>", "<id2>"], "reason": "Program cancelled", "notify": false } }'{ "jobId", "total" } を返します。ジョブはサーバー側ですべての ID を取り消し(取り消し済みのものはスキップ)、再開も可能です。取り消し済みの ID と存在しない ID はスキップとして報告されます。
発行したクレデンシャルを完全に削除します。取り消しと異なり、記録が完全に削除され、公開クレデンシャルページは 404 を返します。誤発行(例: 別の人への発行)など本当のミスに使用してください。実際のクレデンシャルには取り消しを推奨します。アサーションが取り消し済みとして検証可能なまま残るためです。クレジットは返金されません。
DELETE /awards/{awardId}| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
awardId | string | はい | アワード ID(パスパラメーター) |
curl -X DELETE https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012 \
-H "X-Api-Key: bws_your_api_key_here"{
"deleted": true,
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012"
}クレデンシャルの印刷用 A4 PDF 証明書を生成します。
GET /certify-badge/award/{awardGuid}/pdf認証は不要です。受領者が自分の証明書をダウンロードできるよう、このエンドポイントは公開されています。
curl -OJ https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/pdfレスポンスは、Content-Type: application/pdf ヘッダー付きのバイナリ PDF です。
エンゲージメントイベントを記録します。公開クレデンシャルページがエンゲージメント統計を集計するために使用します。認証は不要です。
POST /certify-badge/award/{awardGuid}/eventこのエンドポイントはボディを直接読み取ります(parameters ラッパーはありません)。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
event | string | はい | view、share、download、click_linkedin_addtoprofile、click_pdf、click_verify のいずれか。 |
network | string | いいえ | event=share の場合のソーシャルネットワーク: linkedin、twitter、facebook、whatsapp、telegram、email、copy。 |
IP ごとの重複排除: 同じ IP からの同じイベントは 24 時間に 1 回だけカウントされます。
curl -X POST https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/event \
-H "Content-Type: application/json" \
-d '{"event": "share", "network": "linkedin"}'{
"ok": true
}クレデンシャルの累積エンゲージメントカウンターを取得します。
GET /certify-badge/award/{awardGuid}/stats認証は不要です。
カウンターは、生のイベントタイプをキーとして返されます。totals にはイベントごとの合計数が入り、networks には network を伴うイベント(現在は share)のネットワーク別の内訳が入ります。記録された活動のないイベントは含まれません。
{
"totals": {
"view": 142,
"share": 16,
"download": 3,
"click_linkedin_addtoprofile": 4
},
"networks": {
"share": { "linkedin": 8, "twitter": 2, "email": 1, "copy": 5 }
}
}