Skip to content

Verificación pública

Estos endpoints son públicos y no requieren autenticación. Permiten a cualquiera verificar credenciales de insignias y recuperar datos JSON de Open Badge v2.0.

Todos los endpoints son relativos a https://api.badges.ninja.

Obtener emisor

Recupera el JSON del perfil de emisor Open Badge v2.0 para un emisor dado.

GET /certify-badge/issuer/{guid}

Ejemplo

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

Respuesta

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

Obtener insignia

Recupera el JSON BadgeClass de Open Badge v2.0 para una insignia dada.

GET /certify-badge/badge/{guid}

Ejemplo

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

Respuesta

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://ipfs.ninja/ipfs/Qm...",
  "issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}

Obtener otorgamiento

Recupera el JSON de Assertion de Open Badge v2.0 para un otorgamiento dado.

GET /certify-badge/award/{guid}

Ejemplo

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

Respuesta

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

Notas

  • El correo del destinatario se almacena con hash (SHA-256) por privacidad, siguiendo la especificación Open Badge.
  • Las respuestas se cachean durante 1 hora (Cache-Control: public, max-age=3600).

Obtener texto de compartición del otorgamiento

Recupera el texto de compartición personalizado para la insignia de un otorgamiento.

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

Ejemplo

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

Respuesta

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

Si no hay texto de compartición personalizado, se devuelve un mensaje predeterminado.


Enviar correo de otorgamiento (público)

Envía un correo de notificación de otorgamiento desde el endpoint público. Lo usa la página pública de compartición.

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

Parámetros

ParámetroTipoObligatorioDescripción
recipientsstringLista de correos separados por comas
subjectstringNoAsunto del correo
messagestringNoMensaje personalizado a incluir en el correo

Ejemplo

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

Respuesta

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

Verificar emisor

Verifica un emisor haciendo clic en el enlace de verificación enviado al correo del emisor. Normalmente se accede a él a través del enlace del correo de verificación, no se llama directamente.

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

Parámetros

ParámetroTipoDescripción
guidstringEl GUID del emisor
codestringEl código de verificación

Respuesta

Devuelve una página HTML confirmando si la verificación fue exitosa o falló. Este endpoint está pensado para abrirse en un navegador.

badges.ninja Documentation