Saltar al contenido principal
POST
cURL

Autorizaciones

x-api-key
string
header
requerido

La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.

Cuerpo

multipart/form-data
user_image
file
requerido

Foto del rostro que se va a analizar (por ejemplo, una selfie). Envía una sola foto de frente en la que el rostro de la persona se vea con claridad y esté bien iluminado. Extensiones permitidas: tiff, jpg, jpeg, png, webp (no se admite PDF). Tamaño máximo de carga: 5 MB (los archivos más grandes se rechazan con 400). Las imágenes se comprimen automáticamente a unos 0,3 MB antes del procesamiento, por lo que las resoluciones muy altas no mejoran la precisión.

face_liveness_score_decline_threshold
number<float>
predeterminado:30

Umbral de prueba de vida (0–100). Un score de prueba de vida igual o inferior a este valor añade una advertencia LOW_LIVENESS_SCORE y rechaza. Súbelo para una protección antisuplantación más estricta; los valores fuera de 0–100 devuelven 400.

Rango requerido: 0 <= x <= 100
Ejemplo:

30

age_estimation_decline_threshold
integer
predeterminado:18

Edad estimada mínima aceptable, en años. Una edad estimada inferior a este valor añade una advertencia AGE_BELOW_MINIMUM y rechaza la verificación. Establece 0 para desactivar la comprobación de edad (la llamada solo ejecuta entonces la prueba de vida y la estimación de edad, sin una decisión basada en la edad).

Rango requerido: 0 <= x <= 100
Ejemplo:

18

rotate_image
boolean
predeterminado:false

Si es true, el servicio prueba la imagen de entrada en incrementos de 90 grados (0, 90, 180, 270) y usa la orientación que ofrece la mejor detección facial, algo útil para capturas desde el móvil sin orientación EXIF. Añade latencia, así que actívalo solo si no puedes garantizar imágenes en posición vertical.

Ejemplo:

false

save_api_request
boolean
predeterminado:true

Cuando es true (valor predeterminado), guarda la llamada como una sesión de tipo API: visible en la Business Console, recuperable mediante GET /v3/session/{sessionId}/decision/ con el request_id devuelto, notificada mediante un webhook status.updated y con el rostro detectado añadido al índice facial de tu aplicación. Cuando es false, no se almacena nada y request_id es un UUID temporal que solo sirve para correlacionar la respuesta.

Ejemplo:

true

vendor_data
string

Cadena opaca opcional (tu ID de usuario interno, correo electrónico, UUID…) que se guarda en la sesión persistida y se devuelve en la respuesta. Úsala para relacionar las llamadas a la API con tus propios registros y para filtrar sesiones más adelante.

Ejemplo:

"user-123"

metadata
object

Objeto JSON opcional que se almacena con la sesión (cuando save_api_request=true) y se devuelve en la respuesta. En solicitudes multipart, envíalo como un campo de cadena codificado en JSON (p. ej., metadata={"flow":"age-gate"}): se convierte en un objeto.

Ejemplo:

Respuesta

Estimación de edad y prueba de vida pasiva completadas. age_estimation.age_estimation es la edad en años que predice el modelo para el rostro más grande detectado (null si no hay ninguno); age_estimation.score es la puntuación de la prueba de vida pasiva (0–100); status es Approved solo cuando warnings está vacío. Una captura de un menor de edad o suplantada sigue devolviendo 200 con status: "Declined": revisa el cuerpo, no solo el código HTTP. Cuando save_api_request=true, request_id es el id de la sesión guardada.

request_id
string<uuid>

ID de la sesión guardada cuando save_api_request=true (se puede usar con GET /v3/session/{sessionId}/decision/); en caso contrario, un UUID de correlación temporal.

age_estimation
object
vendor_data
string | null

Devuelve el vendor_data que enviaste, o null.

metadata
object | null

Devuelve el objeto metadata que enviaste, o null.

created_at
string<date-time>

Marca de tiempo ISO 8601 (UTC) del momento en que se generó la respuesta.

Última modificación el 1 de noviembre de 2026