Skip to content

Issuers API

Rozet düzenleyicilerini yönetin — rozetleri veren kuruluşlar ya da bireyler.

Tüm uç noktalar X-Api-Key başlığı aracılığıyla kimlik doğrulaması gerektirir. Kimlik Doğrulama sayfasına bakın.

Düzenleyici Oluşturma

Yeni bir rozet düzenleyicisi oluşturun.

POST /issuers

Parametreler

ParametreTürGerekliAçıklama
namestringEvetKuruluş adı (en az 3 karakter)
urlstringEvetKuruluş web sitesi (geçerli bir HTTP/HTTPS URL olmalıdır)
emailstringEvetDüzenleyici için iletişim e-postası
logostringHayırBase64 ile kodlanmış görsel (PNG ya da JPG)
linkedinOrganizationIdstringHayırSayısal LinkedIn şirket sayfası kimliği. Ayarlandığında bu düzenleyiciden gelen her kamuya açık ödül sayfası bir Add to LinkedIn Profile düğmesi gösterir.

Örnek

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

Yanıt

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

Notlar

  • Planınızın düzenleyici sınırına karşı sayılır (Free: 1, Starter: 5, Pro: sınırsız). Kota düşümü yoktur.
  • Düzenleyici e-postası hesap e-postanızla eşleşirse düzenleyici otomatik olarak doğrulanır.
  • E-posta farklıysa düzenleyici e-postasına bir doğrulama e-postası gönderilir.

Düzenleyicileri Listele

Oluşturduğunuz tüm düzenleyicileri alın.

GET /issuers

Örnek

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

Yanıt

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

Düzenleyiciyi Doğrula

Düzenleyiciyi, e-postasına gönderilen doğrulama kodunu kullanarak doğrulayın.

POST /issuers/{issuerId}/verify

Parametreler

ParametreTürGerekliAçıklama
issuerIdstringEvetDüzenleyici kimliği (yol parametresi)
codestringEvetE-postadan gelen doğrulama kodu

Örnek

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

Yanıt

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

Düzenleyiciyi Sil

Bir düzenleyiciyi silin. Düzenleyicinin hiçbir rozeti bulunmamalıdır.

DELETE /issuers/{issuerId}

Örnek

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

Yanıt

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

Hatalar

  • 400 — düzenleyicinin rozetleri ya da ödülleri vardır ve silinemez (önce onları silin)
  • 404 — düzenleyici bulunamadı

Düzenleyiciyi Güncelle

Doğrulanmamış bir düzenleyicinin alanlarını güncelleyin. Bir düzenleyici doğrulandığında kimlik bilgisi kararlılığını korumak için yalnızca logo ve linkedinOrganizationId düzenlenebilir kalır.

PUT /issuers/{issuerId}

Parametreler

ParametreTürGerekliAçıklama
issuerIdstringEvetDüzenleyici kimliği (yol parametresi)
namestringHayırYeni ad (yalnızca doğrulanmamışken)
urlstringHayırYeni URL (yalnızca doğrulanmamışken)
emailstringHayırYeni e-posta (yalnızca doğrulanmamışken — yeni bir doğrulama e-postası gönderir)
logostringHayırYeni base64 ile kodlanmış logo
linkedinOrganizationIdstringHayırYeni LinkedIn kuruluş kimliği (ya da temizlemek için boş dize)

Doğrulama Kodunu Rotasyona Al

Önceki doğrulama bağlantısını geçersiz kılıp yeni bir tane e-postayla gönderir. Yalnızca düzenleyici hâlâ doğrulanmamışken geçerlidir.

POST /issuers/{issuerId}/rotate-code

Yanıt

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

badges.ninja Documentation