Skip to content

공개 검증

이 엔드포인트들은 공개되어 있으며 인증이 필요하지 않습니다. 누구나 배지 자격을 검증하고 Open Badge v2.0 JSON 데이터를 가져올 수 있습니다.

모든 엔드포인트는 https://api.badges.ninja 에 대한 상대 경로입니다.

발급자 가져오기

지정한 발급자의 Open Badge v2.0 발급자 프로필 JSON을 가져옵니다.

GET /certify-badge/issuer/{guid}

예시

bash
curl https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890

응답

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Issuer",
  "id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
  "name": "Acme Academy",
  "url": "https://acme.example.com",
  "email": "badges@acme.example.com",
  "verification": {
    "type": "hosted",
    "allowedOrigins": "api.badges.ninja"
  }
}

배지 가져오기

지정한 배지의 Open Badge v2.0 BadgeClass JSON을 가져옵니다.

GET /certify-badge/badge/{guid}

예시

bash
curl https://api.badges.ninja/certify-badge/badge/b1c2d3e4-f5a6-7890-bcde-f12345678901

응답

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "BadgeClass",
  "id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "name": "JavaScript Fundamentals",
  "description": "Demonstrates proficiency in core JavaScript concepts",
  "criteria": {
    "narrative": "Completed the JavaScript Fundamentals course with a score of 80% or higher"
  },
  "image": "https://ipfs.ninja/ipfs/Qm...",
  "issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}

수여 가져오기

지정한 수여의 Open Badge v2.0 Assertion JSON을 가져옵니다.

GET /certify-badge/award/{guid}

예시

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012

응답

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Assertion",
  "id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
  "recipient": {
    "type": "email",
    "hashed": true,
    "identity": "sha256$..."
  },
  "badge": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "issuedOn": "2025-01-15T00:00:00.000Z",
  "verification": {
    "type": "hosted"
  }
}

참고

  • Open Badge 명세에 따라 개인정보 보호를 위해 수령자 이메일은 SHA-256 으로 해시됩니다.
  • 응답은 1시간 동안 캐시됩니다(Cache-Control: public, max-age=3600).

수여의 공유 문구 가져오기

수여에 사용된 배지의 맞춤 공유 문구를 가져옵니다.

GET /certify-badge/award/{guid}/share-text

예시

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/share-text

응답

json
{
  "text": "I just earned the JavaScript Fundamentals badge! Check it out:"
}

맞춤 공유 문구가 설정되지 않은 경우 기본 메시지가 반환됩니다.


수여 이메일 보내기(공개)

공개 엔드포인트에서 수여 알림 이메일을 보냅니다. 공개 공유 페이지에서 사용됩니다.

POST /certify-badge/award/{guid}/send-email

파라미터

파라미터타입필수설명
recipientsstring쉼표로 구분된 이메일 주소 목록
subjectstring아니요이메일 제목
messagestring아니요이메일에 포함할 사용자 지정 메시지

예시

bash
curl -X POST https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/send-email \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "recipients": "colleague@example.com",
      "message": "Check out this badge!"
    }
  }'

응답

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

발급자 검증

발급자 이메일로 전송된 검증 링크를 클릭하여 발급자를 검증합니다. 보통은 검증 메일 내의 링크로 접근하며, 직접 호출하지는 않습니다.

GET /certify-badge/verify-issuer/{guid}/{code}

파라미터

파라미터타입설명
guidstring발급자 GUID
codestring검증 코드

응답

검증 성공 또는 실패를 알리는 HTML 페이지를 반환합니다. 이 엔드포인트는 브라우저에서 열리도록 설계되었습니다.

badges.ninja Documentation