Skip to content

Issuers API

Pamahalaan ang mga badge issuer — ang mga organisasyon o indibidwal na nagbibigay ng badge.

Lahat ng endpoint ay nangangailangan ng authentication sa pamamagitan ng X-Api-Key header. Tingnan ang Authentication.

Gumawa ng Issuer

Gumawa ng bagong badge issuer.

POST /issuers

Mga Parameter

ParameterUriKailanganPaglalarawan
namestringOoPangalan ng organisasyon (minimum 3 character)
urlstringOoWebsite ng organisasyon (dapat balidong HTTP/HTTPS URL)
emailstringOoContact email para sa issuer
logostringHindiBase64-encoded na larawan (PNG o JPG)
linkedinOrganizationIdstringHindiNumeric ID ng LinkedIn company page. Kapag itinakda, bawat public award page mula sa issuer na ito ay nagpapakita ng Add to LinkedIn Profile button.

Halimbawa

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"
    }
  }'

Response

json
{
  "statusCode": 200,
  "info": {
    "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}

Mga Tala

  • Binibilang laban sa issuer limit ng inyong plan (Free: 1, Starter: 5, Pro: walang limitasyon). Walang quota deduction.
  • Kung magkatugma ang email ng issuer at email ng inyong account, awtomatikong na-verify ang issuer.
  • Kung iba ang email, may verification email na ipinapadala sa email ng issuer.

Ilista ang mga Issuer

Kunin ang lahat ng issuer na ginawa ninyo.

GET /issuers

Halimbawa

bash
curl -X GET https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here"

Response

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"
      }
    ]
  }
}

I-verify ang Issuer

I-verify ang isang issuer gamit ang verification code na ipinadala sa email nito.

POST /issuers/{issuerId}/verify

Mga Parameter

ParameterUriKailanganPaglalarawan
issuerIdstringOoAng issuer ID (path parameter)
codestringOoAng verification code mula sa email

Halimbawa

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"
    }
  }'

Response

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

Burahin ang Issuer

Burahin ang isang issuer. Ang issuer ay hindi dapat may mga badge.

DELETE /issuers/{issuerId}

Halimbawa

bash
curl -X DELETE https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-Api-Key: bws_your_api_key_here"

Response

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

Mga Error

  • 400 — may mga badge o award ang issuer at hindi mabubura (burahin muna ang mga ito)
  • 404 — hindi nahanap ang issuer

I-update ang Issuer

I-update ang mga field ng isang unverified issuer. Sa sandaling ma-verify ang issuer, logo at linkedinOrganizationId lang ang nananatiling editable para mapanatili ang katatagan ng credential.

PUT /issuers/{issuerId}

Mga Parameter

ParameterUriKailanganPaglalarawan
issuerIdstringOoAng issuer ID (path parameter)
namestringHindiBagong pangalan (kapag unverified lang)
urlstringHindiBagong URL (kapag unverified lang)
emailstringHindiBagong email (kapag unverified lang — nagpapadala ng bagong verification mail)
logostringHindiBagong base64-encoded na logo
linkedinOrganizationIdstringHindiBagong LinkedIn organization ID (o blangkong string para i-clear)

I-rotate ang Verification Code

Gawing invalid ang nakaraang verification link at mag-email ng bago. Balido lang habang hindi pa verified ang issuer.

POST /issuers/{issuerId}/rotate-code

Response

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

badges.ninja Documentation