Skip to content

Verifikasi Publik

Endpoint ini publik dan tidak memerlukan autentikasi. Mereka memungkinkan siapa saja memverifikasi kredensial lencana dan mengambil data JSON Open Badge v2.0.

Semua endpoint relatif terhadap https://api.badges.ninja.

Dapatkan Penerbit

Ambil JSON Open Badge v2.0 Issuer Profile untuk penerbit yang diberikan.

GET /certify-badge/issuer/{guid}

Contoh

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

Respons

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

Dapatkan Lencana

Ambil JSON Open Badge v2.0 BadgeClass untuk lencana yang diberikan.

GET /certify-badge/badge/{guid}

Contoh

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

Respons

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

Dapatkan Penghargaan

Ambil JSON Open Badge v2.0 Assertion untuk penghargaan yang diberikan.

GET /certify-badge/award/{guid}

Contoh

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

Respons

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

Catatan

  • Surel penerima di-hash (SHA-256) untuk privasi, mengikuti spesifikasi Open Badge.
  • Respons di-cache selama 1 jam (Cache-Control: public, max-age=3600).

Dapatkan Teks Berbagi Penghargaan

Ambil teks berbagi kustom untuk lencana penghargaan.

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

Contoh

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

Respons

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

Jika tidak ada teks berbagi kustom yang diatur, pesan default dikembalikan.


Kirim Surel Penghargaan (Publik)

Kirim surel notifikasi penghargaan dari endpoint publik. Ini digunakan oleh halaman berbagi publik.

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

Parameter

ParameterTipeDiperlukanDeskripsi
recipientsstringYaDaftar alamat surel dipisahkan koma
subjectstringTidakSubjek surel
messagestringTidakPesan kustom untuk disertakan dalam surel

Contoh

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

Respons

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

Verifikasi Penerbit

Verifikasi penerbit dengan mengklik tautan verifikasi yang dikirim ke surel penerbit. Ini biasanya diakses melalui tautan di surel verifikasi, bukan dipanggil langsung.

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

Parameter

ParameterTipeDeskripsi
guidstringGUID penerbit
codestringKode verifikasi

Respons

Mengembalikan halaman HTML yang mengonfirmasi verifikasi berhasil atau gagal. Endpoint ini dirancang untuk dibuka di peramban.

badges.ninja Documentation