Skip to content

API Penerbit

Kelola penerbit lencana — organisasi atau individu yang memberikan lencana.

Semua endpoint memerlukan autentikasi via tajuk X-Api-Key. Lihat Autentikasi.

Buat Penerbit

Buat penerbit lencana baru.

POST /issuers

Parameter

ParameterTipeDiperlukanDeskripsi
namestringYaNama organisasi (minimum 3 karakter)
urlstringYaSitus web organisasi (harus URL HTTP/HTTPS yang valid)
emailstringYaSurel kontak untuk penerbit
logostringTidakGambar berkode Base64 (PNG atau JPG)
linkedinOrganizationIdstringTidakID numerik halaman perusahaan LinkedIn. Saat diatur, setiap halaman penghargaan publik dari penerbit ini menampilkan tombol Tambahkan ke Profil LinkedIn.

Contoh

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

Respons

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

Catatan

  • Dihitung terhadap batas penerbit paket Anda (Free: 1, Starter: 5, Pro: tak terbatas). Tidak ada pengurangan kuota.
  • Jika surel penerbit cocok dengan surel akun Anda, penerbit otomatis diverifikasi.
  • Jika surel berbeda, surel verifikasi dikirim ke surel penerbit.

Daftar Penerbit

Ambil semua penerbit yang telah Anda buat.

GET /issuers

Contoh

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

Respons

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

Verifikasi Penerbit

Verifikasi penerbit menggunakan kode verifikasi yang dikirim ke surelnya.

POST /issuers/{issuerId}/verify

Parameter

ParameterTipeDiperlukanDeskripsi
issuerIdstringYaID penerbit (parameter jalur)
codestringYaKode verifikasi dari surel

Contoh

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

Respons

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

Hapus Penerbit

Hapus penerbit. Penerbit tidak boleh memiliki lencana.

DELETE /issuers/{issuerId}

Contoh

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

Respons

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

Kesalahan

  • 400 — penerbit memiliki lencana atau penghargaan dan tidak dapat dihapus (hapus itu dahulu)
  • 404 — penerbit tidak ditemukan

Perbarui Penerbit

Perbarui bidang penerbit yang belum diverifikasi. Setelah penerbit diverifikasi, hanya logo dan linkedinOrganizationId yang tetap dapat diedit untuk menjaga stabilitas kredensial.

PUT /issuers/{issuerId}

Parameter

ParameterTipeDiperlukanDeskripsi
issuerIdstringYaID penerbit (parameter jalur)
namestringTidakNama baru (hanya saat belum diverifikasi)
urlstringTidakURL baru (hanya saat belum diverifikasi)
emailstringTidakSurel baru (hanya saat belum diverifikasi — mengirim surel verifikasi baru)
logostringTidakLogo berkode Base64 baru
linkedinOrganizationIdstringTidakLinkedIn organization ID baru (atau string kosong untuk membersihkan)

Putar Kode Verifikasi

Batalkan tautan verifikasi sebelumnya dan kirim surel yang baru. Hanya berlaku saat penerbit masih belum diverifikasi.

POST /issuers/{issuerId}/rotate-code

Respons

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

badges.ninja Documentation