Skip to content

발급자 API

배지를 수여하는 조직이나 개인 — 배지 발급자를 관리합니다.

모든 엔드포인트는 X-Api-Key 헤더를 통한 인증이 필요합니다. 인증 을 참고하세요.

발급자 생성

새로운 배지 발급자를 생성합니다.

POST /issuers

파라미터

파라미터타입필수설명
namestring조직 이름(최소 3자)
urlstring조직 웹사이트(유효한 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
  }
}

발급자 삭제

발급자를 삭제합니다. 발급자에게 배지가 하나도 없어야 합니다.

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