Skip to content

Vérification publique ​

Ces points de terminaison sont publics et ne nécessitent aucune authentification. Ils permettent à quiconque de vérifier des crédentiels de badge et de récupérer les données JSON Open Badge v2.0.

Tous les points de terminaison sont relatifs à https://api.badges.ninja.

Obtenir un émetteur ​

Récupérez le JSON du profil d'émetteur (Issuer Profile) Open Badge v2.0 pour un émetteur donné.

GET /certify-badge/issuer/{guid}

Exemple ​

bash
curl https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Réponse ​

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Issuer",
  "id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
  "name": "Acme Academy",
  "url": "https://acme.example.com",
  "email": "badges@acme.example.com",
  "verification": {
    "type": "hosted",
    "allowedOrigins": "api.badges.ninja"
  }
}

Obtenir un badge ​

Récupérez le JSON BadgeClass Open Badge v2.0 pour un badge donné.

GET /certify-badge/badge/{guid}

Exemple ​

bash
curl https://api.badges.ninja/certify-badge/badge/b1c2d3e4-f5a6-7890-bcde-f12345678901

Réponse ​

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "BadgeClass",
  "id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "name": "JavaScript Fundamentals",
  "description": "Demonstrates proficiency in core JavaScript concepts",
  "criteria": {
    "narrative": "Completed the JavaScript Fundamentals course with a score of 80% or higher"
  },
  "image": "https://badges.ninja/images/{sha256}.png",
  "issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}

Obtenir un crédentiel ​

Récupérez le JSON Assertion Open Badge v2.0 pour un crédentiel donné.

GET /certify-badge/award/{guid}

Exemple ​

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012

Réponse ​

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Assertion",
  "id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
  "recipient": {
    "type": "email",
    "hashed": true,
    "identity": "sha256$..."
  },
  "badge": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "issuedOn": "2025-01-15T00:00:00.000Z",
  "verification": {
    "type": "hosted"
  },
  "revoked": false
}

Si le crédentiel a été révoqué, l'assertion contient "revoked": true et, lorsqu'un motif a été fourni, une chaîne "revocationReason" :

json
{
  "revoked": true,
  "revocationReason": "Issued in error"
}

Il s'agit de la vue Open Badges 2.0 de la révocation. La même révocation est également exprimée dans le Verifiable Credential Open Badges 3.0 du crédentiel — voir Révocation (Bitstring Status List).

Remarques ​

  • L'adresse e-mail du destinataire est hachée (SHA-256) pour préserver sa confidentialité, conformément à la spécification Open Badge.
  • Les réponses sont mises en cache pendant 5 minutes (Cache-Control: public, max-age=300). Les crédentiels révoqués utilisent un cache plus court de 30 secondes (max-age=30) afin que la révocation se propage rapidement.

Obtenir le texte de partage d'un crédentiel ​

Récupérez le texte de partage personnalisé du badge d'un crédentiel.

GET /certify-badge/award/{guid}/share-text

Exemple ​

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/share-text

Réponse ​

json
{
  "text": "I just earned the JavaScript Fundamentals badge! Check it out:"
}

Si aucun texte de partage personnalisé n'est défini, un message par défaut est renvoyé.


Envoyer l'e-mail d'un crédentiel (public) ​

Envoyez un e-mail de notification de crédentiel depuis le point de terminaison public. Il est utilisé par la page de partage publique.

POST /certify-badge/award/{guid}/send-email

Paramètres ​

ParamètreTypeObligatoireDescription
recipientsstringOuiListe d'adresses e-mail séparées par des virgules
messagestringNonMessage personnalisé à inclure dans l'e-mail

Exemple ​

bash
curl -X POST https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/send-email \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "recipients": "colleague@example.com",
      "message": "Check out this badge!"
    }
  }'

Réponse ​

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

C'est le seul point de terminaison qui encapsule son résultat dans une enveloppe { "statusCode", "info" }. Tous les autres points de terminaison renvoient directement leur contenu.


Vérifier un émetteur ​

Vérifiez un émetteur en cliquant sur le lien de vérification envoyé à l'adresse e-mail de l'émetteur. On y accède généralement via le lien contenu dans l'e-mail de vérification, et non par un appel direct.

GET /certify-badge/verify-issuer/{guid}/{code}

Paramètres ​

ParamètreTypeDescription
guidstringLe GUID de l'émetteur
codestringLe code de vérification

Réponse ​

Renvoie une page HTML confirmant la réussite ou l'échec de la vérification. Ce point de terminaison est conçu pour être ouvert dans un navigateur.

badges.ninja Documentation