Skip to content

Verificación pública

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

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

Obtener emisor

Recupera el JSON Issuer Profile de Open Badge v2.0 para un emisor.

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 credencial

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

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 Assertion de Open Badge v2.0 para un otorgamiento.

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 cifra con hash (SHA-256) por privacidad, como marca la especificación de Open Badge.
  • Las respuestas se guardan en caché durante 1 hora (Cache-Control: public, max-age=3600).

Obtener texto de difusión del otorgamiento

Recupera el texto de difusión personalizado asociado a la credencial del 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 difusión personalizado, se devuelve un mensaje por defecto.


Enviar correo de otorgamiento (público)

Envía un correo de notificación desde el endpoint público. Lo utiliza la página pública de difusió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 abriendo el enlace de verificación enviado al correo del emisor. Suele accederse desde el enlace del correo, no llamarse 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 no. Este endpoint está pensado para abrirse en un navegador.

badges.ninja Documentation