Dokümanlar/API ve Webhook'lar/Sertifikalar

Sertifikalar

SecureCodingHub, bir kullanıcı tüm bir kategoride (Web, API, Mobile, Client) her öğrenme senaryosunu ve her pratik zorluğunu bitirdiğinde otomatik bir sertifika verir. Bu uç noktalar verilmiş sertifikaları ve public tarzı bir doğrulama sorgusunu açar. certificates:read kapsamını gerektirir.

Uç noktalar

MethodPathKapsamAmaç
GET/certificates/users/{'{'}userId{'}'}certificates:readBir kullanıcı için her kategorinin sertifika durumu.
GET/certificates/verify/{'{'}certNumber{'}'}certificates:readBir sertifikayı public numarasıyla doğrular.

Tüm yollar https://api.limeplate.com/api/public/v1 adresine göredir.

Sertifikalar nasıl verilir

Verilme tamamen otomatiktir — manuel bir "ver" uç noktası yoktur. Kurallar:

  • Kullanıcı başına her kategori için bir sertifika. Kategoriler web, api, mobile ve client.
  • Bir kategori sertifikası, kullanıcı o kategorideki tüm öğrenme senaryosunu ve tüm pratik zorluğunu tamamladığı anda verilir.
  • Her sertifikaya kalıcı, public olarak paylaşılabilir bir certificateNumber atanır.
  • Verilme bir certificate.issued webhook olayı tetikler. Payload için Webhook'lar'a bakın.

Verilmeden sonra içeriği tekrar tamamlamak yeni sertifika üretmez; orijinal numara kalıcıdır.

Bir kullanıcı için sertifika durumunu listele

Kategori başına bir girdi döner. certificateId alanı null olan girdiler, kullanıcının başlamış ama henüz bitirmemiş kategorilerini temsil eder — "Web sertifikanıza 22 zorluktan 18'i kaldı" arayüzü render etmek için kullanışlıdır.

GET /api/public/v1/certificates/users/{userId}
Authorization: Bearer scs_live_…

Yanıt

[
  {
    "categoryId": "web",
    "categoryTitle": "Web Application Security",
    "certificateId": "7e4c9d09-86ca-4125-bbd8-7fae54c8f654",
    "certificateNumber": "SCH-2026-WEB-000123",
    "issuedAt": "2026-05-12T08:41:22Z",
    "practiceTotal": 75,
    "practiceCompleted": 75,
    "learnTotal": 22,
    "learnCompleted": 22,
    "isComplete": true
  },
  {
    "categoryId": "api",
    "categoryTitle": "API Security",
    "certificateId": null,
    "certificateNumber": null,
    "issuedAt": null,
    "practiceTotal": 60,
    "practiceCompleted": 42,
    "learnTotal": 18,
    "learnCompleted": 14,
    "isComplete": false
  },
  {
    "categoryId": "mobile",
    "categoryTitle": "Mobile Application Security",
    "certificateId": null,
    "certificateNumber": null,
    "issuedAt": null,
    "practiceTotal": 50,
    "practiceCompleted": 0,
    "learnTotal": 15,
    "learnCompleted": 0,
    "isComplete": false
  },
  {
    "categoryId": "client",
    "categoryTitle": "Client-Side Security",
    "certificateId": null,
    "certificateNumber": null,
    "issuedAt": null,
    "practiceTotal": 40,
    "practiceCompleted": 6,
    "learnTotal": 12,
    "learnCompleted": 2,
    "isComplete": false
  }
]
  • isComplete "practiceCompleted == practiceTotal && learnCompleted == learnTotal" ifadesini yansıtır.
  • practiceTotal ve learnTotal canlı sayımlardır — bir kategoriye yeni içerik eklemek halihazırda verilmiş sertifikaları geçersiz kılmaz geçersiz kılar ama devam eden bir kullanıcının paydalarını yukarı taşır.

Örnek

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/certificates/users/1a2b3c4d-5e6f-7081-9203-4d5e6f708192

Bir sertifikayı doğrula

Bir sertifikayı public numarasıyla arar ve sahibini, kurumu ve kategoriyi döner. Bunu kariyer sitenizdeki bir "Sertifikanızı Doğrulayın" sayfasını desteklemek veya işe alım sırasında bir adayın iddiasını doğrulamak için kullanın.

GET /api/public/v1/certificates/verify/{certNumber}
Authorization: Bearer scs_live_…

Uç nokta public bir doğrulama sorgusu gibi davransa da, çağrı sırasında API anahtarı ve certificates:read kapsamı yine gereklidir. Kimlik doğrulama olmadan gerçekten public bir doğrulama istiyorsanız, bunun yerine SecureCodingHub'da barındırılan doğrulama URL'sine bağlantı verin: https://www.securecodinghub.com/verify/{'{'}certNumber{'}'}.

Yanıt

{
  "certificateNumber": "SCH-2026-WEB-000123",
  "userName": "Jane Smith",
  "organizationName": "Acme Corp",
  "categoryId": "web",
  "categoryTitle": "Web Application Security",
  "issuedAt": "2026-05-12T08:41:22Z"
}

O numarayla sertifika yoksa 404 certificate_not_found döner. İptal edilmiş veya test amaçlı sertifika numaraları da 404 döner.

Örnek

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/certificates/verify/SCH-2026-WEB-000123

Sertifika olaylarını alma

Sertifikaları verildiği anda bir İK/yetenek sistemine itmek istiyorsanız — kullanıcı uç noktasını yoklamak yerine — certificate.issued webhook'una abone olun. Webhook payload'ı doğrulama yanıtını yansıtacak şekilde userId, certificateNumber, categoryId ve issuedAt içerir. Bkz. Webhook'lar.