واجهة API للتجربة الافتراضية

أضف التجربة الافتراضية إلى تطبيقك أو موقعك بطلب HTTP واحد. استجابات JSON والنتيجة عبر الاستعلام أو Webhook.

المصادقة

أرسل المفتاح في ترويسة Authorization. المفاتيح التجريبية تبدأ بـ hk_test_ والحية بـ hk_live_.

Authorization: Bearer hk_live_xxxxxxxxxxxxxxxx

إنشاء تجربة

POST https://houshstyle.ir/api/v1/try-on/ — multipart/form-data أو JSON مع روابط الصور

المعاملالوصف
person_image / person_image_urlصورة الشخص (واحد مطلوب)
garment_image / garment_image_url / garment_idصورة القطعة أو رقم المنتج (واحد مطلوب)
garment_typeمفتاح نوع الملبس أو الإكسسوار (الجدول أسفل الصفحة)؛ الافتراضي w_gown
on_modeltrue إذا كانت صورة الملبس على عارضة أو مانيكان (لا يُنقل وجه العارضة وجسمها)
genderw أو m؛ للقطع المناسبة للجنسين مثل حقيبة الظهر والكاب
garment_image_2, garment_type_2, on_model_2 …القطعة الثانية والثالثة (اختياري)، مثل ملابس + حذاء + حقيبة
resolutionstandard (رصيد واحد) | hd (رصيدان)
lock_face, remove_garment_backgroundtrue / false
webhook_url, client_refاختياري
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

الاستجابة (202):

{"id": "8b1c…", "status": "queued", "result_url": null, "credits_charged": 2, ...}

استلام النتيجة

GET https://houshstyle.ir/api/v1/try-on/{id}/

الحالات: queued وprocessing وcompleted وfailed. عند completed يكون result_url رابط الصورة النهائية. عند الفشل يُعاد الرصيد تلقائياً (refunded=true).

مثال 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"])

مثال 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());

مثال 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

عند انتهاء المعالجة يُرسل طلب POST بجسم JSON والترويسات التالية إلى 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)

نقاط نهاية أخرى

رموز الأخطاء

400 invalid_imageصورة غير صالحة أو صغيرة أو كبيرة جداً
401مفتاح غير صالح أو معطل
402 org_creditsنفد رصيد المؤسسة
429تجاوز حد المعدل (الافتراضي ٦٠ طلباً في الدقيقة)
503 unavailableالخدمة غير متاحة مؤقتاً؛ حاول بعد ثوانٍ

أنواع الملابس والإكسسوارات (garment_type)

المفاتيح u_ للجنسين. الأسماء الإنجليزية القديمة (مثل cocktail dress) ما زالت مقبولة.

ملابس — نسائي

المفتاحالنوعالمجموعة
w_gownفستان سهرة طويل / ماكسيسهرة وزفاف
w_midi_formalفستان سهرة ميديسهرة وزفاف
w_cocktailفستان قصير / كوكتيلسهرة وزفاف
w_laceفستان سهرة دانتيل / شفافسهرة وزفاف
w_sequinفستان سهرة بالترتر / مطرز بالخرزسهرة وزفاف
w_straplessفستان سهرة بدون حمالاتسهرة وزفاف
w_offshoulderفستان سهرة مكشوف الكتفينسهرة وزفاف
w_ballgownفستان منفوش / أميراتسهرة وزفاف
w_mermaidفستان سهرة حورية البحرسهرة وزفاف
w_bridalفستان زفافسهرة وزفاف
w_dressفستان نسائي يوميفساتين يومية
w_knitdressفستان تريكوفساتين يومية
w_mantoمانطو / معطف طويلجاكيتات ومعاطف
w_kimonoمانطو مفتوح / كيمونو / كارديغان طويلجاكيتات ومعاطف
w_coatمعطف / ترنش نسائيجاكيتات ومعاطف
w_blazerبليزر نسائي (مع الإبقاء على قطعتك الداخلية)جاكيتات ومعاطف
w_blazer_innerبليزر نسائي مع البلوزة الظاهرة في الصورةجاكيتات ومعاطف
w_jacketجاكيت نسائي (جينز، جلد…)جاكيتات ومعاطف
w_pufferجاكيت منفوخ نسائيجاكيتات ومعاطف
w_cardiganكارديغان نسائيجاكيتات ومعاطف
w_vestصديري / جيليه نسائيجاكيتات ومعاطف
w_chadorشادورشادور وعباءة
w_chador_sleevedشادور بأكمام (وطني / لبناني)شادور وعباءة
w_abayaعباءة نسائيةشادور وعباءة
w_topتيشيرت / توب نسائيقطع علوية
w_blouseبلوزة / قميص نسائيقطع علوية
w_tunicتونيكقطع علوية
w_knitكنزة نسائيةقطع علوية
w_hoodieهودي / سويتشيرت نسائيقطع علوية
w_jeansجينز نسائيقطع سفلية
w_trousersبنطال قماش / كتان نسائيقطع سفلية
w_widelegبنطال واسع / بالازوقطع سفلية
w_joggersبنطال رياضي نسائيقطع سفلية
w_skirtتنورةقطع سفلية
w_shortsشورت نسائيقطع سفلية
w_leggingsليغنزجوارب وكولون وليغنز
w_tights_sheerكولون شفافجوارب وكولون وليغنز
w_tights_opaqueكولون سميك / ملونجوارب وكولون وليغنز
w_tights_patternكولون منقوش / شبكيجوارب وكولون وليغنز
w_kneesocksجوارب طويلة حتى الركبةجوارب وكولون وليغنز
w_socksجوارب قصيرة نسائيةجوارب وكولون وليغنز
w_kaftanقفطان / جلابيةتقليدي
w_localزي تقليدي نسائيتقليدي

ملابس — رجالي

المفتاحالنوعالمجموعة
m_blazerبليزر رجالي (مع الإبقاء على قميصك)جاكيتات ومعاطف
m_blazer_shirtبليزر رجالي مع القميص الظاهر في الصورةجاكيتات ومعاطف
m_jacketجاكيت رجالي (جلد، جينز…)جاكيتات ومعاطف
m_pufferجاكيت منفوخ رجاليجاكيتات ومعاطف
m_overcoatمعطف / ترنش رجاليجاكيتات ومعاطف
m_cardiganكارديغان رجاليجاكيتات ومعاطف
m_vestصديري / جيليه رجاليجاكيتات ومعاطف
m_shirtقميص رسمي رجاليقطع علوية
m_shirt_casualقميص كاجوال / كاروهات رجاليقطع علوية
m_tshirtتيشيرت رجاليقطع علوية
m_poloقميص بولوقطع علوية
m_knitكنزة رجاليةقطع علوية
m_hoodieهودي / سويتشيرت رجاليقطع علوية
m_jeansجينز رجاليقطع سفلية
m_trousersبنطال قماش / كتان رجاليقطع سفلية
m_cargoبنطال كارغوقطع سفلية
m_joggersبنطال رياضي رجاليقطع سفلية
m_shortsشورت رجاليقطع سفلية
m_socksجوارب رجاليةجوارب وكولون وليغنز
m_compressionليغنز رياضي رجاليجوارب وكولون وليغنز
m_thobeدشداشة / ثوبتقليدي
m_bishtبشت / عباءة رجاليةتقليدي
m_kurdishزي كردي رجاليتقليدي

أطقم وقطع واحدة — نسائي

المفتاحالنوعالمجموعة
w_suitبدلة بنطال نسائية (مع الإبقاء على قطعتك الداخلية)بدلات وأطقم رسمية
w_suit_fullبدلة بنطال نسائية مع البلوزة الظاهرة في الصورةبدلات وأطقم رسمية
w_skirtsuitبدلة تنورة نسائيةبدلات وأطقم رسمية
w_manto_setطقم مانطو وبنطالأطقم يومية ورياضية ومنزلية
w_manto_set_scarfطقم مانطو وبنطال وشالأطقم يومية ورياضية ومنزلية
w_twopieceطقم قطعتين (بلوزة + تنورة/بنطال)أطقم يومية ورياضية ومنزلية
w_tracksuitبدلة رياضية نسائيةأطقم يومية ورياضية ومنزلية
w_activewearطقم رياضي (ليغنز + توب)أطقم يومية ورياضية ومنزلية
w_pajamaبيجامة / طقم منزلي نسائيأطقم يومية ورياضية ومنزلية
w_jumpsuitجمبسوت نسائيأوفرولات وجمبسوت
w_playsuitجمبسوت قصير نسائيأوفرولات وجمبسوت
w_overallsأوفرول بحمالات نسائيأوفرولات وجمبسوت
w_lookإطلالة نسائية كاملة من صورة واحدة (ملابس + حذاء + حقيبة)إطلالة كاملة من صورة واحدة
w_bridal_setفستان زفاف مع طرحةإطلالة كاملة من صورة واحدة

أطقم وقطع واحدة — رجالي

المفتاحالنوعالمجموعة
m_suitبدلة رجالية (مع الإبقاء على قميصك)بدلات وأطقم رسمية
m_suit_shirtبدلة رجالية مع القميص وربطة العنق الظاهرة في الصورةبدلات وأطقم رسمية
m_threepieceبدلة ثلاث قطع (مع صديري)بدلات وأطقم رسمية
m_tuxتكسيدو / سموكينغبدلات وأطقم رسمية
m_tracksuitبدلة رياضية رجاليةأطقم يومية ورياضية ومنزلية
m_pajamaبيجامة / طقم منزلي رجاليأطقم يومية ورياضية ومنزلية
m_shirt_pantsطقم قميص وبنطال رجاليأطقم يومية ورياضية ومنزلية
m_tee_shortsطقم تيشيرت وشورت رجاليأطقم يومية ورياضية ومنزلية
m_jumpsuitجمبسوت رجاليأوفرولات وجمبسوت
m_coverallأوفرول عملأوفرولات وجمبسوت
m_overallsأوفرول بحمالات رجاليأوفرولات وجمبسوت
m_lookإطلالة رجالية كاملة من صورة واحدة (ملابس + حذاء + حقيبة)إطلالة كاملة من صورة واحدة

أطقم وقطع واحدة — للجنسين

المفتاحالنوعالمجموعة
u_onesie_hoodأوفرول بقبعة (قطعة علوية + بنطال + قبعة)أوفرولات وجمبسوت

إكسسوارات — نسائي

المفتاحالنوعالمجموعة
w_heelsكعب عالٍ / حذاء سهرةأحذية
w_flatsحذاء مسطح / باليرينا / لوفر نسائيأحذية
w_sneakersسنيكرز نسائيأحذية
w_sandalsصندل / شبشب نسائيأحذية
w_anklebootsبوت قصير نسائيأحذية
w_bootsجزمة طويلة نسائيةأحذية
w_handbagحقيبة يد نسائيةحقائب
w_shoulderbagحقيبة كتف / كروسحقائب
w_clutchحقيبة سهرة / كلاتشحقائب
w_necklaceقلادة / قلادة ذهبمجوهرات
w_earringsأقراطمجوهرات
w_braceletسوار / إسورةمجوهرات
w_ringخاتممجوهرات
w_jewelsetطقم مجوهراتمجوهرات
w_ankletخلخالمجوهرات
w_broochبروشمجوهرات
w_watchساعة يد نسائيةساعات
w_sunglassesنظارة شمسية نسائيةنظارات
w_hatقبعة نسائية بحافة / قش / فيدوراقبعات
w_headscarfإيشارب / غطاء رأسأوشحة وشالات ومقنعة
w_shawlشالأوشحة وشالات ومقنعة
w_maghnaehمقنعةأوشحة وشالات ومقنعة
w_turbanتوربان / طاقية حجابأوشحة وشالات ومقنعة
w_silkscarfمنديل رقبة حريريأوشحة رقبة وربطات عنق وبابيون
w_beltحزام نسائيأحزمة وقفازات
w_tiaraتاجتيجان وإكسسوارات شعر
w_hairclipطوق / مشبك شعرتيجان وإكسسوارات شعر
w_veilطرحة عروستيجان وإكسسوارات شعر

إكسسوارات — رجالي

المفتاحالنوعالمجموعة
m_dressshoesحذاء رسمي رجاليأحذية
m_loafersلوفر رجاليأحذية
m_sneakersسنيكرز رجاليأحذية
m_bootsبوت رجاليأحذية
m_sandalsصندل / شبشب رجاليأحذية
m_bagحقيبة عمل / كتف رجاليةحقائب
m_chainسلسلة رجاليةمجوهرات
m_braceletسوار رجاليمجوهرات
m_ringخاتم رجاليمجوهرات
m_cufflinksأزرار أكماممجوهرات
m_watchساعة يد رجاليةساعات
m_sunglassesنظارة شمسية رجاليةنظارات
m_hatقبعة فيدورا رجاليةقبعات
m_tieربطة عنقأوشحة رقبة وربطات عنق وبابيون
m_bowtieبابيونأوشحة رقبة وربطات عنق وبابيون
m_pocketsquareمنديل جيبأوشحة رقبة وربطات عنق وبابيون
m_beltحزام رجاليأحزمة وقفازات

إكسسوارات — للجنسين

المفتاحالنوعالمجموعة
u_backpackحقيبة ظهرحقائب
u_beltbagحقيبة خصر / كروس صغيرةحقائب
u_smartwatchساعة ذكيةساعات
u_eyeglassesنظارة طبية / إطارنظارات
u_capقبعة كابقبعات
u_beanieقبعة صوف / بينيقبعات
u_bucketقبعة باكيتقبعات
u_neckscarfوشاح رقبةأوشحة رقبة وربطات عنق وبابيون
u_glovesقفازاتأحزمة وقفازات