Skip to content

Verificación pública ​

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

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

Obtener emisor ​

Obtén el JSON del perfil de emisor (Issuer Profile) de Open Badge v2.0 para un emisor determinado.

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 ​

Obtén el JSON BadgeClass de Open Badge v2.0 para una insignia determinada.

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://badges.ninja/images/{sha256}.png",
  "issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}

Obtener credencial ​

Obtén el JSON de la aserción (Assertion) de Open Badge v2.0 para una credencial determinada.

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"
  },
  "revoked": false
}

Si la credencial ha sido revocada, la aserción incluye "revoked": true y, cuando se indicó un motivo, una cadena "revocationReason":

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

Esta es la vista de Open Badges 2.0 de la revocación. La misma revocación también se expresa en la Verifiable Credential de Open Badges 3.0 de la credencial; consulta Revocación (Bitstring Status List).

Notas ​

  • El correo electrónico del destinatario se almacena con hash (SHA-256) por privacidad, siguiendo la especificación de Open Badge.
  • Las respuestas se almacenan en caché durante 5 minutos (Cache-Control: public, max-age=300). Las credenciales revocadas usan una caché más corta de 30 segundos (max-age=30) para que la revocación se propague rápidamente.

Obtener texto para compartir de la credencial ​

Obtén el texto personalizado para compartir de la insignia de una credencial.

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 se ha definido un texto personalizado para compartir, se devuelve un mensaje predeterminado.


Enviar correo de la credencial (público) ​

Envía un correo de notificación de la credencial desde el endpoint público. Lo utiliza la página pública para compartir.

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

Parámetros ​

ParámetroTipoObligatorioDescripción
recipientsstringSíLista de direcciones de correo electrónico separadas por comas
messagestringNoMensaje personalizado que se 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"
}

Este es el único endpoint que envuelve su resultado en un sobre { "statusCode", "info" }. Todos los demás endpoints devuelven su contenido directamente.


Verificar emisor ​

Verifica un emisor haciendo clic en el enlace de verificación enviado al correo del emisor. Normalmente se accede a él mediante el 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 que confirma si la verificación tuvo éxito o falló. Este endpoint está diseñado para abrirse en un navegador.

badges.ninja Documentation