Envoyez un portrait ; l'API supprime l'arrière-plan du portrait, le remplace par une couleur de fond d'identité standard et recadre selon la spécification demandée.
Authentification et requête
X-Api-Key: YOUR_API_KEY. Créez et gérez les clés sur votre page de compte.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
image_file
|
file | obligatoire | Photo portrait — face visible, éclairage homogène |
spec
|
string | obligatoire | Format : 1pouce / 2pouce / us_passport / cn_visa … |
bg_color
|
string | facultatif | Fond : blanc (par défaut) / bleu / rouge |
Exemples de code
Choisissez une langue et copiez — fonctionne directement.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);
Réponse
1{2 "url": "https://cdn.pixmiller.com/result/8Kd2pQ.png"3}
url
URL temporaire de l'image traitée (l'image sous-jacente est automatiquement supprimée après 3 jours).
Erreurs
Les erreurs renvoient le code d'état correspondant et un corps JSON de la forme {"errors":{"code":"…","message":"…"}}.
validation error
image_file manquant ou invalide, fichier trop volumineux, ou sources d'image conflictuelles.
authentication_failed
L'en-tête X-Api-Key est manquant ou invalide.
not_enough_credit
size=full a été demandé mais le compte n'a plus de crédits HD.
invalid_image
L'image n'a pas pu être traitée — trop petite, format non pris en charge ou échec du décodage.
throttled
Limite de débit dépassée. Ralentissez et réessayez après l'en-tête Retry-After.