Envíe una foto de perfil; la API elimina el fondo del retrato, lo cambia a un color de fondo estándar para documentos de identificación y recorta según las especificaciones solicitadas.
Autenticación y solicitud
X-Api-Key: YOUR_API_KEY. Crea y gestiona claves en tu página de cuenta.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
image_file
|
file | requerido | Foto de perfil — de frente, con iluminación uniforme |
spec
|
string | requerido | Especificación: 1 pulgada / 2 pulgadas / us_passport / cn_visa … |
bg_color
|
string | opcional | Fondo: blanco (predeterminado) / azul / rojo |
Muestras de código
Elige un idioma y copia — se ejecuta tal cual.1curl -X POST "https://api.pixmiller.com/v1/id-photo" \2 -H "X-Api-Key: YOUR_API_KEY" \3 -F "[email protected]" \4 -F "spec=1inch" \5 -F "bg_color=blue"
1import requests23resp = requests.post(4 "https://api.pixmiller.com/v1/id-photo",5 headers={"X-Api-Key": "YOUR_API_KEY"},6 files={"image_file": open("face.jpg", "rb")},7 data={"spec": "1inch", "bg_color": "blue"},8)9print(resp.json()["url"])
1import fs from "node:fs";23const form = new FormData();4form.append("image_file", new Blob([fs.readFileSync("face.jpg")]), "face.jpg");5form.append("spec", "1inch");6form.append("bg_color", "blue");7const resp = await fetch("https://api.pixmiller.com/v1/id-photo", {8 method: "POST",9 headers: { "X-Api-Key": "YOUR_API_KEY" },10 body: form,11});12console.log((await resp.json()).url);
Respuesta
1{2 "url": "https://cdn.pixmiller.com/result/8Kd2pQ.png"3}
url
URL temporal de la imagen procesada (la imagen subyacente se elimina automáticamente después de 3 días).
Errores
Los errores devuelven el código de estado correspondiente y un cuerpo JSON con la forma {"errors":{"code":"…","message":"…"}}.
validation error
image_file falta o no es válido, archivo demasiado grande o fuentes de imagen conflictivas.
authentication_failed
El encabezado X-Api-Key falta o no es válido.
not_enough_credit
Se solicitó size=full, pero la cuenta no tiene créditos HD restantes.
invalid_image
No se pudo procesar la imagen — demasiado pequeña, no soportada o falló al decodificar.
throttled
Límite de velocidad superado. Reduzca la velocidad y reintente después del encabezado Retry-After.