Skip to content

Issuers API

Διαχειριστείτε τους εκδότες εμβλημάτων — τους οργανισμούς ή άτομα που απονέμουν εμβλήματα.

Όλα τα endpoints απαιτούν πιστοποίηση μέσω της κεφαλίδας X-Api-Key. Δείτε Πιστοποίηση.

Δημιουργία εκδότη

Δημιουργήστε έναν νέο εκδότη εμβλημάτων.

POST /issuers

Παράμετροι

ΠαράμετροςΤύποςΥποχρεωτικόΠεριγραφή
namestringΝαιΌνομα οργανισμού (τουλάχιστον 3 χαρακτήρες)
urlstringΝαιΙστότοπος οργανισμού (πρέπει να είναι έγκυρη URL HTTP/HTTPS)
emailstringΝαιEmail επικοινωνίας για τον εκδότη
logostringΌχιΕικόνα κωδικοποιημένη σε Base64 (PNG ή JPG)
linkedinOrganizationIdstringΌχιΑριθμητικό ID σελίδας εταιρείας LinkedIn. Όταν οριστεί, κάθε δημόσια σελίδα απονομής από αυτόν τον εκδότη εμφανίζει ένα κουμπί Add to LinkedIn Profile.

Παράδειγμα

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

Απάντηση

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

Σημειώσεις

  • Μετράει έναντι του ορίου εκδοτών του πλάνου σας (Free: 1, Starter: 5, Pro: απεριόριστοι). Δεν αφαιρείται κάποιο όριο.
  • Εάν το email του εκδότη ταιριάζει με το email του λογαριασμού σας, ο εκδότης επαληθεύεται αυτόματα.
  • Εάν το email διαφέρει, αποστέλλεται email επαλήθευσης στο email του εκδότη.

Λίστα εκδοτών

Ανακτήστε όλους τους εκδότες που έχετε δημιουργήσει.

GET /issuers

Παράδειγμα

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

Απάντηση

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

Επαλήθευση εκδότη

Επαληθεύστε έναν εκδότη χρησιμοποιώντας τον κωδικό επαλήθευσης που αποστέλλεται στο email του.

POST /issuers/{issuerId}/verify

Παράμετροι

ΠαράμετροςΤύποςΥποχρεωτικόΠεριγραφή
issuerIdstringΝαιΤο ID του εκδότη (παράμετρος διαδρομής)
codestringΝαιΟ κωδικός επαλήθευσης από το email

Παράδειγμα

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

Απάντηση

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

Διαγραφή εκδότη

Διαγράψτε έναν εκδότη. Ο εκδότης δεν πρέπει να έχει εμβλήματα.

DELETE /issuers/{issuerId}

Παράδειγμα

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

Απάντηση

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

Σφάλματα

  • 400 — ο εκδότης έχει εμβλήματα ή απονομές και δεν μπορεί να διαγραφεί (διαγράψτε αυτά πρώτα)
  • 404 — ο εκδότης δεν βρέθηκε

Ενημέρωση εκδότη

Ενημερώστε τα πεδία ενός μη επαληθευμένου εκδότη. Μόλις ένας εκδότης επαληθευτεί, μόνο τα logo και linkedinOrganizationId παραμένουν επεξεργάσιμα για τη διατήρηση της σταθερότητας των διαπιστευτηρίων.

PUT /issuers/{issuerId}

Παράμετροι

ΠαράμετροςΤύποςΥποχρεωτικόΠεριγραφή
issuerIdstringΝαιΤο ID του εκδότη (παράμετρος διαδρομής)
namestringΌχιΝέο όνομα (μόνο όταν δεν είναι επαληθευμένος)
urlstringΌχιΝέο URL (μόνο όταν δεν είναι επαληθευμένος)
emailstringΌχιΝέο email (μόνο όταν δεν είναι επαληθευμένος — στέλνει νέο email επαλήθευσης)
logostringΌχιΝέο λογότυπο κωδικοποιημένο σε base64
linkedinOrganizationIdstringΌχιΝέο LinkedIn organization ID (ή κενή συμβολοσειρά για εκκαθάριση)

Εναλλαγή κωδικού επαλήθευσης

Ακυρώστε τον προηγούμενο σύνδεσμο επαλήθευσης και στείλτε έναν νέο με email. Έγκυρο μόνο ενώ ο εκδότης είναι ακόμα μη επαληθευμένος.

POST /issuers/{issuerId}/rotate-code

Απάντηση

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

badges.ninja Documentation