Skip to content

Openbare verificatie ​

Deze endpoints zijn openbaar en vereisen geen authenticatie. Hiermee kan iedereen badge-credentials verifiëren en Open Badge v2.0 JSON-gegevens ophalen.

Alle endpoints zijn relatief aan https://api.badges.ninja.

Get Issuer ​

Haal de Open Badge v2.0 Issuer Profile JSON van een bepaalde uitgever op.

GET /certify-badge/issuer/{guid}

Voorbeeld ​

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

Respons ​

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

Get Badge ​

Haal de Open Badge v2.0 BadgeClass JSON van een bepaalde digitale badge op.

GET /certify-badge/badge/{guid}

Voorbeeld ​

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

Respons ​

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

Get Credential ​

Haal de Open Badge v2.0 Assertion JSON van een bepaalde credential op.

GET /certify-badge/award/{guid}

Voorbeeld ​

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

Respons ​

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
}

Als de credential is ingetrokken, bevat de assertion "revoked": true en, wanneer een reden is opgegeven, een "revocationReason"-string:

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

Dit is de Open Badges 2.0-weergave van intrekking. Dezelfde intrekking wordt ook uitgedrukt in de Open Badges 3.0 Verifiable Credential van de credential — zie Intrekking (Bitstring Status List).

Opmerkingen ​

  • Het e-mailadres van de ontvanger wordt gehasht (SHA-256) voor de privacy, conform de Open Badge-specificatie.
  • Responses worden 5 minuten gecachet (Cache-Control: public, max-age=300). Ingetrokken credentials gebruiken een kortere cache van 30 seconden (max-age=30), zodat intrekking snel doorwerkt.

Get Credential Share Text ​

Haal de aangepaste deeltekst van de badge van een credential op.

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

Voorbeeld ​

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

Respons ​

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

Als er geen aangepaste deeltekst is ingesteld, wordt een standaardbericht teruggegeven.


Send Credential Email (Public) ​

Verstuur een notificatie-e-mail over een credential via het openbare endpoint. Dit wordt gebruikt door de openbare deelpagina.

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

Parameters ​

ParameterTypeVerplichtBeschrijving
recipientsstringJaDoor komma's gescheiden lijst met e-mailadressen
messagestringNeeAangepast bericht dat in de e-mail wordt opgenomen

Voorbeeld ​

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

Respons ​

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

Dit is het enige endpoint dat het resultaat verpakt in een { "statusCode", "info" }-envelop. Elk ander endpoint geeft de payload rechtstreeks terug.


Verify Issuer ​

Verifieer een uitgever door op de verificatielink te klikken die naar het e-mailadres van de uitgever is gestuurd. Deze wordt meestal geopend via de link in de verificatie-e-mail en niet rechtstreeks aangeroepen.

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

Parameters ​

ParameterTypeBeschrijving
guidstringDe GUID van de uitgever
codestringDe verificatiecode

Respons ​

Geeft een HTML-pagina terug die bevestigt of de verificatie is geslaagd of mislukt. Dit endpoint is bedoeld om in een browser te worden geopend.

badges.ninja Documentation