API de fotografía de pasaporte.
No se necesita clave de API. No se requiere cuenta. No es necesario registrarse. Sube una foto e indica el código de país, y obtendrás una foto de pasaporte recortada correctamente, además de la altura de la cabeza que hemos medido para que puedas verificarla tú mismo.
Última actualización: 1 de septiembre de 2026
Este es el mismo motor que PassportNinja website funciona en línea. Es gratis y no requiere registro.
Crea una foto
$ curl -s -F "file=@portrait.jpg" -F "country=nl" \
https://passportninja.com/api/photo
{
"job_id": "041379c97a80",
"template": "Netherlands, passport/ID (35×45 mm)",
"photo": "/api/result/041379c97a80/photo.png",
"photo_jpg": "/api/result/041379c97a80/photo.jpg",
"sheet": "/api/result/041379c97a80/sheet.jpg",
"size_mm": [35.0, 45.0],
"head_mm": 34.2,
"head_range_mm": [32.0, 36.0],
"bewaar_min": 45,
"warnings": []
}
$ curl -s -o passport.png \
https://passportninja.com/api/result/041379c97a80/photo.pngLos números de cumplimiento son lo importante.
La mayoría de las herramientas para fotos de pasaporte te ofrecen un recorte y te dejan esperando. Esta herramienta te indica lo que hizo:
head_mm | La altura de la cabeza que realmente produjo, en milímetros. |
|---|---|
head_range_mm | El rango que exige el país. |
size_mm / size_px | El tamaño de la foto en milímetros y en píxeles. |
warnings | Cualquier cosa que valga la pena comunicarle a la persona, como una foto con un encuadre demasiado ajustado para recortarla correctamente. |
Si head_mm dentro de head_range_mm, la imagen recortada cumple con las especificaciones. Puede realizar esta comprobación en su propio código en lugar de confiar en nosotros.
Imprime hojas.
Cada trabajo también genera hojas imprimibles, que se muestran debajo de sheets En este momento, las opciones son 10×15 cm con 8 fotos, tamaño Carta de EE. UU. con 25 y A4 con 30. Elige la que prefieras url que quieras, igual que con una sola foto.
Formatos de país.
13 formatos disponibles al momento de escribir esto. No los codifique directamente, pregunte:
$ curl -s https://passportninja.com/api/templates
[{"key":"us","label":"United States, passport & visa (2×2 in)","size_mm":[50.8,50.8]},
{"key":"nl","label":"Netherlands, passport/ID (35×45 mm)","size_mm":[35.0,45.0]}, ...]
Pasa el key quieres que aparezca como country campo. Si lo omites, obtendrás el tamaño estándar de Schengen.
Parámetros y límites
| Nombre | Obligatorio | Función |
|---|---|---|
file | sí | La foto. Una imagen nítida, tomada de frente, con toda la cabeza visible. |
country | no | Una clave de /api/templates. Por defecto, utiliza el formato Schengen estándar. |
| Tamaño máximo de archivo | 99 MB |
|---|---|
| Ejecuciones simultáneas | 3 por dirección IP |
| Solicitudes por día | Sin límite |
| El resultado permanece disponible | 45 minutos, o 24 horas con un pase de 5 €. |
Errores
| Estado | Significado |
|---|---|
422 | No se detectó ningún rostro, o el file falta un campo. El mensaje indica cuál. |
413 | La foto supera los 99 MB. |
429 | Ya hay tres trabajos en curso desde esta dirección. |
Usándolo en tu propio proyecto
Puedes utilizarlo como base y, si lo deseas, incluirlo en algún proyecto de pago. Si tu proyecto incluye una lista de los recursos que utiliza, no olvides añadir un enlace a passportninja.com es lo que hace posible que esta herramienta sea gratis. ¿Estás planeando gestionar un gran volumen de datos? ¡No dudes en ponerte en contacto con nosotros en el página de contacto primero.
Preguntas
¿Necesito una clave API?
No. No se requiere clave, cuenta ni registro.
¿Cómo puedo saber si la foto cumple con los requisitos?
La respuesta se lo indica. Devuelve head_mm, la altura de la cabeza que midió, y head_range_mm, el rango que requiere el país. Si el primero se encuentra dentro del segundo, el recorte está dentro de las especificaciones.
¿Por qué recibí un error 422?
Casi siempre es porque no se detectó ningún rostro. Utilice una foto frontal con toda la cabeza en el encuadre y sin que nada corte la parte superior de la cabeza.
¿Qué países son compatibles?
13 formatos en este momento, incluidos los Estados Unidos, el Reino Unido, los Países Bajos, la India, China y el tamaño Schengen general. Consulte GET /api/templates para obtener la lista actual en lugar de codificarla.
¿Qué sucede si no hay ningún rostro en la foto?
Recibirá un error HTTP 422 con un mensaje que indica que no se encontró ningún rostro. Utilice una foto nítida y frontal con toda la cabeza visible.
¿Cuánto tiempo dura el ID del trabajo?
45 minutos, después de los cuales los archivos se eliminan. Con una suscripción de 5 € a ShinobiTools pase el mismo trabajo sigue disponible durante 24 horas.
Los términos están en página de términosy lo que le ocurre a tu foto se muestra en página de privacidad.