Español (ES)
Español (ES)
Appearance
Español (ES)
Español (ES)
Appearance
Crea y gestiona otorgamientos de insignias (assertions) — insignias emitidas a destinatarios concretos.
Todos los endpoints requieren autenticación vía la cabecera X-Api-Key. Consulta Autenticación.
Emite una insignia a un destinatario.
POST /awards| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
badgeId | string | Sí | ID de la insignia a otorgar |
recipient | object | Sí | Datos del destinatario (ver abajo) |
recipient.name | string | Sí | Nombre completo del destinatario (mínimo 5 caracteres) |
recipient.email | string | Sí | Correo del destinatario |
issuedOn | string | Sí | Fecha de emisión en formato ISO 8601 (p. ej. 2025-01-15) |
expires | string | No | Fecha de caducidad en formato ISO 8601 |
blockchain | string | No | Blockchain para verificación on-chain. Solo se admite matchain. Disponible en el plan Pro. |
curl -X POST https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"badgeId": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15"
}
}'{
"statusCode": 200,
"info": {
"awardId": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012"
}
}blockchain solo está disponible en el plan Pro.Recupera otorgamientos con filtrado y paginación opcionales.
GET /awards| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
filter | JSON string | No | Objeto de filtro (ver abajo) |
lastEvaluatedKey | string | No | Token de paginación de una respuesta anterior |
El parámetro filter acepta una cadena JSON con estos campos:
| Campo | Tipo | Descripción |
|---|---|---|
badgeId | string | Filtra por ID de insignia. |
search | string | Subcadena a buscar en nombres o correos de destinatarios (ver searchField). |
searchField | string | Bien name (predeterminado) o email — qué columna buscar. |
La paginación con lastEvaluatedKey funciona con o sin filtros. El tamaño de página es 50.
curl -X GET https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here"curl -X GET "https://api.badges.ninja/awards?filter=%7B%22badgeId%22%3A%22b1c2d3e4%22%7D" \
-H "X-Api-Key: bws_your_api_key_here"{
"statusCode": 200,
"info": {
"awards": [
{
"id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
"badge": {
"id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
"name": "JavaScript Fundamentals",
"image": "https://ipfs.ninja/ipfs/Qm..."
},
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15T00:00:00.000Z",
"timestamp": "2025-01-15T10:30:00.000Z"
}
],
"lastEvaluatedKey": "eyJ..."
}
}Si lastEvaluatedKey está presente en la respuesta, hay más resultados. Pásalo como query parameter en la próxima solicitud para obtener la página siguiente.
Envía una notificación por correo al destinatario sobre su otorgamiento.
POST /awards/{awardId}/send| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
awardId | string | Sí | ID del otorgamiento (parámetro de ruta y cuerpo) |
email | string | Sí | Correo del destinatario |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/send \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"email": "jane@example.com"
}
}'{
"statusCode": 200,
"info": {
"sent": true
}
}Comparte un otorgamiento con varios destinatarios por correo.
POST /awards/{awardId}/share| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
awardId | string | Sí | ID del otorgamiento (parámetro de ruta y cuerpo) |
recipients | string | Sí | Lista de correos separados por comas |
subject | string | Sí | Asunto del correo |
message | string | Sí | Cuerpo del mensaje |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/share \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"recipients": "manager@example.com,hr@example.com",
"subject": "Check out my new badge!",
"message": "I just earned the JavaScript Fundamentals badge."
}
}'{
"statusCode": 200,
"info": {
"shared": true
}
}Genera un certificado PDF A4 listo para imprimir para un otorgamiento.
GET /awards/{awardGuid}/pdfNo requiere autenticación — este endpoint es público para que los destinatarios puedan descargar su propio certificado.
curl -OJ https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/pdfLa respuesta es el PDF binario con cabecera Content-Type: application/pdf.
Registra un evento de interacción (vista, compartición, descarga, añadir a LinkedIn). Lo usa la página pública de otorgamiento para alimentar las estadísticas de interacción. No requiere autenticación.
POST /awards/{awardGuid}/event| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
kind | string | Sí | Uno de view, share, download, linkedin_add. |
network | string | No | Cuando kind=share, la red social: linkedin, twitter, facebook, whatsapp, telegram, email, copy. |
Supresión de duplicados por IP: el mismo kind desde la misma IP se cuenta una vez cada 24 horas.
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/event \
-H "Content-Type: application/json" \
-d '{"parameters": {"kind": "share", "network": "linkedin"}}'Recupera contadores acumulados de interacción para un otorgamiento.
GET /awards/{awardGuid}/statsNo requiere autenticación.
{
"statusCode": 200,
"info": {
"stats": {
"views": 142,
"shares": { "linkedin": 8, "twitter": 2, "email": 1, "copy": 5 },
"downloads": 3,
"linkedin_adds": 4
}
}
}