Skip to content

Verifica pubblica ​

Questi endpoint sono pubblici e non richiedono autenticazione. Permettono a chiunque di verificare le credenziali dei badge e di recuperare i dati JSON Open Badge v2.0.

Tutti gli endpoint sono relativi a https://api.badges.ninja.

Ottieni emittente ​

Recupera il JSON del profilo emittente (Issuer Profile) Open Badge v2.0 per un determinato emittente.

GET /certify-badge/issuer/{guid}

Esempio ​

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

Risposta ​

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

Ottieni badge ​

Recupera il JSON BadgeClass Open Badge v2.0 per un determinato badge.

GET /certify-badge/badge/{guid}

Esempio ​

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

Risposta ​

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

Ottieni credenziale ​

Recupera il JSON Assertion Open Badge v2.0 per una determinata credenziale.

GET /certify-badge/award/{guid}

Esempio ​

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

Risposta ​

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
}

Se la credenziale è stata revocata, l'assertion riporta "revoked": true e, quando è stato indicato un motivo, una stringa "revocationReason":

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

Questa è la rappresentazione della revoca secondo Open Badges 2.0. La stessa revoca è espressa anche nella Verifiable Credential Open Badges 3.0 della credenziale — vedi Revoca (Bitstring Status List).

Note ​

  • L'email del destinatario viene sottoposta a hash (SHA-256) per tutelare la privacy, in linea con la specifica Open Badge.
  • Le risposte vengono memorizzate nella cache per 5 minuti (Cache-Control: public, max-age=300). Le credenziali revocate usano una cache più breve, di 30 secondi (max-age=30), così la revoca si propaga rapidamente.

Ottieni testo di condivisione della credenziale ​

Recupera il testo di condivisione personalizzato del badge di una credenziale.

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

Esempio ​

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

Risposta ​

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

Se non è impostato alcun testo di condivisione personalizzato, viene restituito un messaggio predefinito.


Invia email della credenziale (pubblico) ​

Invia un'email di notifica della credenziale dall'endpoint pubblico. Viene usato dalla pagina di condivisione pubblica.

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

Parametri ​

ParametroTipoObbligatorioDescrizione
recipientsstringSìElenco di indirizzi email separati da virgola
messagestringNoMessaggio personalizzato da includere nell'email

Esempio ​

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

Risposta ​

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

Questo è l'unico endpoint che racchiude il proprio risultato in un envelope { "statusCode", "info" }. Tutti gli altri endpoint restituiscono direttamente il proprio payload.


Verifica emittente ​

Verifica un emittente facendo clic sul link di verifica inviato all'email dell'emittente. Di norma vi si accede tramite il link contenuto nell'email di verifica, senza chiamarlo direttamente.

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

Parametri ​

ParametroTipoDescrizione
guidstringIl GUID dell'emittente
codestringIl codice di verifica

Risposta ​

Restituisce una pagina HTML che conferma se la verifica è riuscita o fallita. Questo endpoint è pensato per essere aperto in un browser.

badges.ninja Documentation