Skip to content

API Émetteurs

Gérez les émetteurs de badges — les organisations ou personnes qui attribuent des badges.

Tous les endpoints nécessitent une authentification via l'en-tête X-Api-Key. Voir Authentification.

Créer un émetteur

Crée un nouvel émetteur de badges.

POST /issuers

Paramètres

ParamètreTypeObligatoireDescription
namestringOuiNom de l'organisation (minimum 3 caractères)
urlstringOuiSite web de l'organisation (doit être une URL HTTP/HTTPS valide)
emailstringOuiE-mail de contact de l'émetteur
logostringNonImage encodée en Base64 (PNG ou JPG)
linkedinOrganizationIdstringNonID numérique de la page entreprise LinkedIn. Quand il est renseigné, chaque page publique d'attribution de cet émetteur affiche un bouton Ajouter au profil LinkedIn.

Exemple

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

Réponse

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

Notes

  • Compte dans la limite d'émetteurs de votre forfait (Free : 1, Starter : 5, Pro : illimité). Pas de quota consommé.
  • Si l'e-mail de l'émetteur correspond à celui de votre compte, l'émetteur est automatiquement vérifié.
  • Si l'e-mail est différent, un e-mail de vérification est envoyé à l'e-mail de l'émetteur.

Lister les émetteurs

Récupère tous les émetteurs que vous avez créés.

GET /issuers

Exemple

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

Réponse

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

Vérifier un émetteur

Vérifie un émetteur avec le code de vérification envoyé à son e-mail.

POST /issuers/{issuerId}/verify

Paramètres

ParamètreTypeObligatoireDescription
issuerIdstringOuiL'ID de l'émetteur (paramètre de chemin)
codestringOuiLe code de vérification reçu par e-mail

Exemple

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

Réponse

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

Supprimer un émetteur

Supprime un émetteur. L'émetteur ne doit pas avoir de badges.

DELETE /issuers/{issuerId}

Exemple

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

Réponse

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

Erreurs

  • 400 — l'émetteur a des badges ou attributions et ne peut pas être supprimé (supprimez-les d'abord)
  • 404 — émetteur introuvable

Mettre à jour un émetteur

Met à jour les champs d'un émetteur non vérifié. Une fois vérifié, seuls logo et linkedinOrganizationId restent modifiables pour préserver la stabilité des certifications.

PUT /issuers/{issuerId}

Paramètres

ParamètreTypeObligatoireDescription
issuerIdstringOuiL'ID de l'émetteur (paramètre de chemin)
namestringNonNouveau nom (uniquement si non vérifié)
urlstringNonNouvelle URL (uniquement si non vérifié)
emailstringNonNouvel e-mail (uniquement si non vérifié — envoie un nouvel e-mail de vérification)
logostringNonNouveau logo encodé en Base64
linkedinOrganizationIdstringNonNouvel ID d'organisation LinkedIn (ou chaîne vide pour effacer)

Régénérer le code de vérification

Invalide le lien de vérification précédent et envoie un nouveau par e-mail. Valide uniquement tant que l'émetteur est encore non vérifié.

POST /issuers/{issuerId}/rotate-code

Réponse

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

badges.ninja Documentation