API d'essayage virtuel
Ajoutez l'essayage virtuel à votre app ou site en une requête HTTP. Réponses JSON, résultat par polling ou webhook.
Authentification
Envoyez la clé dans l'en-tête Authorization. Les clés de test commencent par hk_test_, les clés live par hk_live_.
Authorization: Bearer hk_live_xxxxxxxxxxxxxxxx
Créer un essayage
POST https://houshstyle.ir/api/v1/try-on/ — multipart/form-data, ou JSON avec des URL d'images
| Paramètre | Description |
person_image / person_image_url | Photo de la personne (un requis) |
garment_image / garment_image_url / garment_id | Photo du vêtement ou ID produit (un requis) |
garment_type | Clé du type de vêtement ou d'accessoire (tableau en bas de page) ; par défaut w_gown |
on_model | true si la photo est portée par un mannequin (son visage et son corps ne sont pas transférés) |
gender | w ou m ; pour les articles unisexes comme sacs à dos et casquettes |
garment_image_2, garment_type_2, on_model_2 … | Deuxième et troisième articles (facultatif), ex. tenue + chaussures + sac |
resolution | standard (1 crédit) | hd (2 crédits) |
lock_face, remove_garment_background | true / false |
webhook_url, client_ref | facultatif |
curl -X POST https://houshstyle.ir/api/v1/try-on/ \
-H "Authorization: Bearer $HUSH_KEY" \
-F person_image=@person.jpg \
-F garment_image=@dress.jpg \
-F garment_type=w_gown \
-F garment_image_2=@heels.jpg \
-F garment_type_2=w_heels \
-F resolution=hd \
-F webhook_url=https://your-app.com/hooks/tryon
Réponse (202) :
{"id": "8b1c…", "status": "queued", "result_url": null, "credits_charged": 2, ...}
Récupérer le résultat
GET https://houshstyle.ir/api/v1/try-on/{id}/
Statuts : queued, processing, completed, failed. En completed, result_url est l'image finale. En cas d'échec, le crédit est remboursé automatiquement (refunded=true).
Exemple Python
import requests, time
H = {"Authorization": "Bearer hk_live_..."}
r = requests.post("https://houshstyle.ir/api/v1/try-on/", headers=H,
files={"person_image": open("me.jpg", "rb"), "garment_image": open("dress.jpg", "rb")},
data={"garment_type": "w_cocktail"})
job = r.json()
while job["status"] in ("queued", "processing"):
time.sleep(2)
job = requests.get(f"https://houshstyle.ir/api/v1/try-on/{job['id']}/", headers=H).json()
print(job["result_url"])
Exemple JavaScript (Node)
const fd = new FormData();
fd.append("person_image_url", "https://cdn.example.com/u/123.jpg");
fd.append("garment_id", "42");
const res = await fetch("https://houshstyle.ir/api/v1/try-on/", {
method: "POST", headers: { Authorization: `Bearer ${process.env.HUSH_KEY}` }, body: fd });
console.log(await res.json());
Exemple PHP
$ch = curl_init("https://houshstyle.ir/api/v1/try-on/");
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("HUSH_KEY")],
CURLOPT_POSTFIELDS => ["person_image" => new CURLFile("me.jpg"), "garment_image" => new CURLFile("coat.jpg"),
"garment_type" => "m_blazer"]]);
echo curl_exec($ch);
Webhook
À la fin du traitement, un POST JSON avec les en-têtes suivants est envoyé à webhook_url :
X-Hush-Timestamp: 1760780000
X-Hush-Signature: sha256=HMAC_SHA256(webhook_secret, timestamp + "." + raw_body)
{"event": "tryon.completed", "data": {"id": "...", "status": "completed", "result_url": "..."}}
# Python verify
import hmac, hashlib
expected = hmac.new(SECRET.encode(), ts.encode() + b"." + body, hashlib.sha256).hexdigest()
assert hmac.compare_digest("sha256=" + expected, signature)
Autres endpoints
GET /api/v1/usage/ — Crédit restant et consommation du mois
GET /api/v1/garments/ — Vêtements disponibles (publics + vos produits)
GET /api/v1/try-on/list/ — 50 derniers essayages
Codes d'erreur
| 400 invalid_image | Image invalide, trop petite ou trop grande |
| 401 | Clé invalide ou désactivée |
| 402 org_credits | Crédit de l'organisation épuisé |
| 429 | Limite de débit dépassée (60 requêtes/minute par défaut) |
| 503 unavailable | Service temporairement indisponible ; réessayez dans quelques secondes |
Types de vêtements et d'accessoires (garment_type)
Les clés u_ sont unisexes. Les anciens noms anglais (comme cocktail dress) sont toujours acceptés.
Vêtements — Femme
| Clé | Type | Groupe |
w_gown | Robe de soirée longue | Soirée & mariée |
w_midi_formal | Robe de soirée midi | Soirée & mariée |
w_cocktail | Robe courte / cocktail | Soirée & mariée |
w_lace | Robe de soirée en dentelle / transparente | Soirée & mariée |
w_sequin | Robe de soirée à sequins / perlée | Soirée & mariée |
w_strapless | Robe de soirée bustier | Soirée & mariée |
w_offshoulder | Robe de soirée épaules dénudées | Soirée & mariée |
w_ballgown | Robe de bal / princesse | Soirée & mariée |
w_mermaid | Robe de soirée sirène | Soirée & mariée |
w_bridal | Robe de mariée | Soirée & mariée |
w_dress | Robe de jour femme | Robes de jour |
w_knitdress | Robe en maille | Robes de jour |
w_manto | Manteau long | Vestes, manteaux & pardessus |
w_kimono | Manteau ouvert / kimono / long cardigan | Vestes, manteaux & pardessus |
w_coat | Manteau / trench femme | Vestes, manteaux & pardessus |
w_blazer | Blazer femme (garder votre haut) | Vestes, manteaux & pardessus |
w_blazer_inner | Blazer femme avec le haut/chemisier de la photo | Vestes, manteaux & pardessus |
w_jacket | Veste femme (jean, cuir…) | Vestes, manteaux & pardessus |
w_puffer | Doudoune femme | Vestes, manteaux & pardessus |
w_cardigan | Cardigan femme | Vestes, manteaux & pardessus |
w_vest | Gilet sans manches femme | Vestes, manteaux & pardessus |
w_chador | Tchador | Tchador & abaya |
w_chador_sleeved | Tchador à manches (national / libanais) | Tchador & abaya |
w_abaya | Abaya | Tchador & abaya |
w_top | T-shirt / haut femme | Hauts |
w_blouse | Chemisier / chemise femme | Hauts |
w_tunic | Tunique | Hauts |
w_knit | Pull femme | Hauts |
w_hoodie | Sweat / hoodie femme | Hauts |
w_jeans | Jean femme | Bas |
w_trousers | Pantalon / chino femme | Bas |
w_wideleg | Pantalon large / palazzo | Bas |
w_joggers | Jogging femme | Bas |
w_skirt | Jupe | Bas |
w_shorts | Short femme | Bas |
w_leggings | Legging | Chaussettes, collants & leggings |
w_tights_sheer | Collant voile | Chaussettes, collants & leggings |
w_tights_opaque | Collant opaque / de couleur | Chaussettes, collants & leggings |
w_tights_pattern | Collant fantaisie / résille | Chaussettes, collants & leggings |
w_kneesocks | Chaussettes hautes | Chaussettes, collants & leggings |
w_socks | Socquettes femme | Chaussettes, collants & leggings |
w_kaftan | Caftan / djellaba | Traditionnel |
w_local | Costume traditionnel femme | Traditionnel |
Vêtements — Homme
| Clé | Type | Groupe |
m_blazer | Blazer homme (garder votre chemise) | Vestes, manteaux & pardessus |
m_blazer_shirt | Blazer homme avec la chemise de la photo | Vestes, manteaux & pardessus |
m_jacket | Veste homme (cuir, jean…) | Vestes, manteaux & pardessus |
m_puffer | Doudoune homme | Vestes, manteaux & pardessus |
m_overcoat | Pardessus / trench homme | Vestes, manteaux & pardessus |
m_cardigan | Cardigan homme | Vestes, manteaux & pardessus |
m_vest | Gilet sans manches homme | Vestes, manteaux & pardessus |
m_shirt | Chemise habillée homme | Hauts |
m_shirt_casual | Chemise casual / à carreaux homme | Hauts |
m_tshirt | T-shirt homme | Hauts |
m_polo | Polo | Hauts |
m_knit | Pull homme | Hauts |
m_hoodie | Sweat / hoodie homme | Hauts |
m_jeans | Jean homme | Bas |
m_trousers | Pantalon / chino homme | Bas |
m_cargo | Pantalon cargo | Bas |
m_joggers | Jogging homme | Bas |
m_shorts | Short homme | Bas |
m_socks | Chaussettes homme | Chaussettes, collants & leggings |
m_compression | Collant de compression homme | Chaussettes, collants & leggings |
m_thobe | Thobe / dishdasha | Traditionnel |
m_bisht | Bisht / cape homme | Traditionnel |
m_kurdish | Costume kurde homme | Traditionnel |
Ensembles & combinaisons — Femme
| Clé | Type | Groupe |
w_suit | Tailleur-pantalon (garder votre haut) | Costumes & ensembles habillés |
w_suit_full | Tailleur-pantalon avec le haut de la photo | Costumes & ensembles habillés |
w_skirtsuit | Tailleur jupe | Costumes & ensembles habillés |
w_manto_set | Ensemble manteau & pantalon | Ensembles casual, sport & intérieur |
w_manto_set_scarf | Ensemble manteau, pantalon & châle | Ensembles casual, sport & intérieur |
w_twopiece | Ensemble deux pièces (haut + jupe/pantalon) | Ensembles casual, sport & intérieur |
w_tracksuit | Survêtement femme | Ensembles casual, sport & intérieur |
w_activewear | Ensemble sport (legging + brassière) | Ensembles casual, sport & intérieur |
w_pajama | Pyjama / ensemble d'intérieur femme | Ensembles casual, sport & intérieur |
w_jumpsuit | Combinaison-pantalon femme | Combinaisons & salopettes |
w_playsuit | Combishort femme | Combinaisons & salopettes |
w_overalls | Salopette femme | Combinaisons & salopettes |
w_look | Look complet femme depuis une photo (vêtements + chaussures + sac) | Look complet depuis une photo |
w_bridal_set | Robe de mariée avec voile | Look complet depuis une photo |
Ensembles & combinaisons — Homme
| Clé | Type | Groupe |
m_suit | Costume homme (garder votre chemise) | Costumes & ensembles habillés |
m_suit_shirt | Costume homme avec chemise et cravate de la photo | Costumes & ensembles habillés |
m_threepiece | Costume trois pièces (avec gilet) | Costumes & ensembles habillés |
m_tux | Smoking | Costumes & ensembles habillés |
m_tracksuit | Survêtement homme | Ensembles casual, sport & intérieur |
m_pajama | Pyjama / ensemble d'intérieur homme | Ensembles casual, sport & intérieur |
m_shirt_pants | Ensemble chemise & pantalon homme | Ensembles casual, sport & intérieur |
m_tee_shorts | Ensemble T-shirt & short homme | Ensembles casual, sport & intérieur |
m_jumpsuit | Combinaison homme | Combinaisons & salopettes |
m_coverall | Combinaison de travail | Combinaisons & salopettes |
m_overalls | Salopette homme | Combinaisons & salopettes |
m_look | Look complet homme depuis une photo (vêtements + chaussures + sac) | Look complet depuis une photo |
Ensembles & combinaisons — Unisexe
| Clé | Type | Groupe |
u_onesie_hood | Combinaison à capuche (haut + pantalon + capuche) | Combinaisons & salopettes |
Accessoires — Femme
| Clé | Type | Groupe |
w_heels | Talons hauts / chaussures de soirée | Chaussures |
w_flats | Ballerines / mocassins femme | Chaussures |
w_sneakers | Baskets femme | Chaussures |
w_sandals | Sandales / mules femme | Chaussures |
w_ankleboots | Bottines femme | Chaussures |
w_boots | Bottes hautes femme | Chaussures |
w_handbag | Sac à main | Sacs |
w_shoulderbag | Sac bandoulière | Sacs |
w_clutch | Pochette de soirée | Sacs |
w_necklace | Collier / collier en or | Bijoux |
w_earrings | Boucles d'oreilles | Bijoux |
w_bracelet | Bracelet / jonc | Bijoux |
w_ring | Bague | Bijoux |
w_jewelset | Parure de bijoux | Bijoux |
w_anklet | Bracelet de cheville | Bijoux |
w_brooch | Broche | Bijoux |
w_watch | Montre femme | Montres |
w_sunglasses | Lunettes de soleil femme | Lunettes |
w_hat | Chapeau femme (capeline, paille, fedora) | Chapeaux & casquettes |
w_headscarf | Foulard | Foulards, châles & maghnaeh |
w_shawl | Châle | Foulards, châles & maghnaeh |
w_maghnaeh | Maghnaeh (voile capuche) | Foulards, châles & maghnaeh |
w_turban | Turban / bonnet hijab | Foulards, châles & maghnaeh |
w_silkscarf | Foulard de cou en soie | Écharpes, cravates & nœuds papillon |
w_belt | Ceinture femme | Ceintures & gants |
w_tiara | Diadème / couronne | Diadèmes & accessoires cheveux |
w_hairclip | Serre-tête / barrette | Diadèmes & accessoires cheveux |
w_veil | Voile de mariée | Diadèmes & accessoires cheveux |
Accessoires — Homme
| Clé | Type | Groupe |
m_dressshoes | Chaussures habillées homme | Chaussures |
m_loafers | Mocassins homme | Chaussures |
m_sneakers | Baskets homme | Chaussures |
m_boots | Bottes / boots homme | Chaussures |
m_sandals | Sandales / claquettes homme | Chaussures |
m_bag | Porte-documents / sacoche homme | Sacs |
m_chain | Chaîne homme | Bijoux |
m_bracelet | Bracelet homme | Bijoux |
m_ring | Bague homme | Bijoux |
m_cufflinks | Boutons de manchette | Bijoux |
m_watch | Montre homme | Montres |
m_sunglasses | Lunettes de soleil homme | Lunettes |
m_hat | Fedora homme | Chapeaux & casquettes |
m_tie | Cravate | Écharpes, cravates & nœuds papillon |
m_bowtie | Nœud papillon | Écharpes, cravates & nœuds papillon |
m_pocketsquare | Pochette de costume | Écharpes, cravates & nœuds papillon |
m_belt | Ceinture homme | Ceintures & gants |
Accessoires — Unisexe
| Clé | Type | Groupe |
u_backpack | Sac à dos | Sacs |
u_beltbag | Sac banane / petite bandoulière | Sacs |
u_smartwatch | Montre connectée | Montres |
u_eyeglasses | Lunettes de vue / montures | Lunettes |
u_cap | Casquette | Chapeaux & casquettes |
u_beanie | Bonnet | Chapeaux & casquettes |
u_bucket | Bob | Chapeaux & casquettes |
u_neckscarf | Écharpe | Écharpes, cravates & nœuds papillon |
u_gloves | Gants | Ceintures & gants |