Quickstart
Emite tu primera credencial en 3 pasos.
1. Obtener tu API Key
Accede al panel de administracion de Unicreda:
- Inicia sesion en app.unicreda.com
- Ve a Configuracion > API Keys
- Haz clic en Crear API Key
- Copia el key generado (solo se muestra una vez)
Tu key tendra este formato:
uc_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0
2. Listar templates disponibles
curl -X GET https://app.unicreda.com/api/v1/templates \
-H "X-API-Key: uc_live_tu_key_aqui"
Respuesta:
{
"templates": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Certificado de Completitud - Curso Python",
"description": "Certificado para estudiantes que completaron el curso",
"achievement_type": "Certificate",
"required_fields": [
{"name": "email", "type": "string", "description": "Recipient email address"},
{"name": "recipient_name", "type": "string", "description": "Recipient full name"},
{"name": "result_value", "type": "string", "description": "Grade/result (LetterGrade)"}
],
"optional_fields": []
}
],
"total": 1,
"page": 1,
"page_size": 20
}
3. Emitir una credencial
curl -X POST https://app.unicreda.com/api/v1/credentials/issue \
-H "X-API-Key: uc_live_tu_key_aqui" \
-H "Content-Type: application/json" \
-d '{
"template_id": "550e8400-e29b-41d4-a716-446655440000",
"recipients": [
{
"email": "estudiante@ejemplo.com",
"recipient_name": "Juan Perez",
"result_value": "A"
}
]
}'
Respuesta (emision sincrona, 1 recipiente):
{
"mode": "sync",
"credentials": [
{
"email": "estudiante@ejemplo.com",
"status": "issued",
"credential_id": "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d",
"credential_url": "https://app.unicreda.com/credential/7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"
}
]
}
El recipiente recibira un email con el enlace a su credencial.
Emision masiva
Para emitir a multiples recipientes, simplemente agrega mas objetos al array recipients. Con 2+ recipientes, la emision es asincrona:
curl -X POST https://app.unicreda.com/api/v1/credentials/issue \
-H "X-API-Key: uc_live_tu_key_aqui" \
-H "Content-Type: application/json" \
-d '{
"template_id": "550e8400-e29b-41d4-a716-446655440000",
"recipients": [
{"email": "estudiante1@ejemplo.com", "recipient_name": "Ana Garcia", "result_value": "A"},
{"email": "estudiante2@ejemplo.com", "recipient_name": "Carlos Lopez", "result_value": "B"},
{"email": "estudiante3@ejemplo.com", "recipient_name": "Maria Torres", "result_value": "A"}
]
}'
Respuesta (asincrona):
{
"mode": "async",
"job_id": "abc123-def456",
"message": "Issuing 3 credentials in background. Poll GET /api/v1/jobs/abc123-def456 for status."
}
Consulta el progreso:
curl -X GET https://app.unicreda.com/api/v1/jobs/abc123-def456 \
-H "X-API-Key: uc_live_tu_key_aqui"
Ejemplo con Python
import requests
API_KEY = "uc_live_tu_key_aqui"
BASE_URL = "https://app.unicreda.com/api/v1"
headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"}
# Listar templates
templates = requests.get(f"{BASE_URL}/templates", headers=headers).json()
template_id = templates["templates"][0]["id"]
# Emitir credencial
response = requests.post(f"{BASE_URL}/credentials/issue", headers=headers, json={
"template_id": template_id,
"recipients": [
{
"email": "estudiante@ejemplo.com",
"recipient_name": "Juan Perez",
"result_value": "A"
}
]
})
print(response.json())