⬡ Harvester
⬡ Harvester
Listings / ساعة رولكس رجالي فاخرة – أناقة تليق بك
ساعة رولكس رجالي فاخرة – أناقة تليق بك

ساعة رولكس رجالي فاخرة – أناقة تليق بك

40

Active

تميّز بإطلالة راقية مع ساعة رولكس الرجالي بتصميم أنيق يناسب اللبس اليومي والمناسبات الرسمية.
ساعة تجمع بين الشكل الفخم والراحة في الاستخدام، وتمنحك مظهر ساعة راقية بسعر مناسب للجميع.

المميزات:
تصميم عصري وفخم
مناسبة للشباب والرجال
مريحة على المعصم

#ساعة #ساعات #ساعة_رولكس #رولكس #ساعات_رولكس #ساعة_رجالي #ساعات_رجالية #ساعة_فاخرة #ساعات_فاخرة #ساعة_انيقة #ساعات_انيقة #موضة #موضة_رجالية #اناقة #اناقة_رجالية #اكسسوارات #اكسسوارات_رجالية #ساعة_يد #ساعات_يد #ساعات_شباب #شباب #رجال #لوك_رجالي #ستايل_رجالي #ستايل #لوك #ساعات_موضة #ساعة_موضة #ترند #ترند_ساعات #تسوق #تسوق_اونلاين #متجر #متجر_الكتروني #بيع #شراء #منتجات #منتجات_رجالية #هدايا #هدايا_رجالية #هدية #هدية_رجال #ساعات_هدايا #ساعات_للبيع #ساعة_للبيع #عرض #عروض #خصم #سعر_مميز #سعر_خاص #تخفيضات #تخفيضات_ساعات #ساعة_جديدة #ساعات_جديدة #ساعات_عصرية #ساعات_راقية #ساعات_كلاسيك #ساعات_عملية #ساعات_يومية #ساعات_رسمية #ساعات_مناسبات #ساعات_افراح #ساعات_طلاب #ساعات_موظفين #ستايل_شباب #ستايل_رجال #لوك_رسمي #لوك_يومي #موضة_ساعات #ساعات_موضة_رجالية #اكسسوارات_رجال #اكسسوارات_موضة #ساعات_تجارية #ساعات_ماركات #ساعات_ماركة #ساعة_ماركة #ساعات_مستوردة #ساعات_جودة_عالية #ساعات_سعر_مناسب #ساعات_سعر_ممتاز #ساعات_مناسبة_للجميع #ساعات_شبابية #ساعات_رجالية_فخمة #ساعات_رجالية_عصرية #ساعات_رجالية_كلاسيك #ساعات_رجالية_رياضية #ساعة_معدنية #ساعات_معدنية #ساعة_شكل_فاخر #ساعات_شكل_فاخر #ساعة_قوية #ساعات_قوية #ساعة_خفيفة #ساعات_خفيفة #ساعة_مميزة #ساعات_مميزة #ساعات_جذابة #ساعات_انستغرام #ساعات_تيك_توك #تجارة #تجارة_الكترونية #بيع_اونلاين #شراء_اونلاين #توصيل #توصيل_سريع #توصيل_الاردن #الاردن #عمان #اربد #الزرقاء #العقبة #جرش #السلط #مادبا #ساعات_الاردن #متجر_ساعات_الاردن #تسوق_الاردن #ساعات_انترنت #شراء_ساعات #بيع_ساعات #ساعات_الرجال #هدايا_رجال #هدايا_شباب #هدايا_رجالية_فخمة #ساعات_يد_رجالية #ساعات_ستايل #ستايل_يومي #ستايل_رسمي #لوك_رسمي #لوك_يومي #موضة_اكسسوارات #ساعة_رجال #ساعات_رجال #ساعة_شباب #ساعات_شباب #ساعة_حديثة #ساعات_حديثة #ساعة_مناسبة #ساعات_مناسبة #ساعة_عملية #ساعات_عملية #ساعة_للهدية #ساعات_للهدية #ساعة_للخروج #ساعات_للخروج #ساعة_للمناسبات #ساعات_للمناسبات #ساعة_للعمل #ساعات_للعمل #ساعة_للجامعة #ساعات_للجامعة #ساعة_للشباب #ساعات_للشباب #ساعة_للرجال #ساعات_للرجال #ساعة_عصرية #ساعات_عصرية #ساعة_انيقة_للرجال #ساعات_انيقة_للرجال #ساعة_فخمة_للرجال #ساعات_فخمة_للرجال #ساعة_ستايل #ساعات_ستايل #ساعة_موضة_رجالية #ساعات_موضة_رجالية #ساعة_جودة #ساعات_جودة #ساعة_سعر_مناسب #ساعات_سعر_مناسب
ساعة رولكس,ساعات رولكس,ساعة رجالي,ساعات رجالية,ساعة فخمة,ساعات فاخرة,ساعة أنيقة,ساعات أنيقة,اكسسوارات رجالية,هدايا رجالية,ساعة يد,ساعات يد,ساعة موضة,ساعات موضة,ساعة كلاسيك,ساعة عصرية,ساعة عملية,متجر ساعات,بيع ساعات,ساعات شبابية,ساعات رجالية حديثة,ساعة معدنية,ساعات معدنية

Seller: يامن محيسن

First seen: 21 days ago

Last seen: 1 day ago

View Original →

Price history

Lowest 40.00 Highest 40.00 1 point
  • 40.00 first seen 21 days ago
Raw Data
specs {"Color" => "أسود", "Watch_Size" => "XL ( 48-57mm )", "Type_Watches" => "رولكس", "ConditionUsed" => "جديد", "DeliveryService" => "نعم", "Watches_Material" => "معدني", "Watch_Movementtype" => "أوتوماتيك"}
lastmod 2026-09-14
payload {"cv" => nil, "job" => nil, "type" => "listing", "config" => {"loan_type" => nil, "dfpPosition" => "below_ctas", "mapPosition" => "below_ai_tags", "imagesBaseUrl" => "https://opensooq-imagesv2.os-cdn.com/previews/{size}/", "videosBaseUrl" => "https://opensooq-video.os-cdn.com/previews/{size}/", "reviewsPosition" => "below_cps", "dynamicSectionsPosition" => "below_ai_tags", "isLoginBeforeCallEnabled" => true, "isMemberVerificationWidgetEnabled" => true}, "listing" => {"price" => {"prices" => [{"key" => "JOD", "price" => "40", "currencyId" => 10, "currencyLabel" => "دينار ", "currencyLongLabel" => "دينار أردني"}], "price_valid_until" => "2026-10-14", "askForPriceRequested" => false, "askForPriceDropStatus" => 1}, "reviews" => nil, "starCps" => [{"icon" => "https://opensooqui2.os-cdn.com/api/apiV/android/{size}/icons/star_cps/default.webp", "label" => "جديد"}, {"icon" => "https://opensooqui2.os-cdn.com/api/apiV/android/{size}/icons/star_cps/default.webp", "label" => "رولكس"}, {"icon" => "https://opensooqui2.os-cdn.com/api/apiV/android/{size}/icons/star_cps/default.webp", "label" => "أوتوماتيك"}, {"icon" => "https://opensooqui2.os-cdn.com/api/apiV/android/{size}/icons/star_cps/default.webp", "label" => "XL ( 48-57mm )"}]}, "commonInfo" => {"aiTags" => "$undefined", "postId" => 287149124, "contact" => {"chat" => [{"type" => "chat"}], "phone" => {"revealKey" => "d48bf0810d309b73ed3def8e56cb54fb", "phoneNumber" => "07982479XX"}, "isPhoneEnabled" => true, "isVoiceEnabled" => false, "hideContactInfo" => false}, "gallery" => {"cta" => {"askForImageRequested" => false}, "chips" => {"360Count" => 0, "imagesCount" => 1, "videosCount" => 0}, "media" => [{"id" => 1624514198, "uri" => "25/76/25769c0aec98cbc233339dd68821fef9d085507097e7e1fce0301a706053cd21.jpg", "is360" => false, "isReels" => false, "mimeType" => "image/jpeg", "isFloorPlan" => false, "thumbnailUri" => nil, "originalFileName" => nil}]}, "postMap" => nil, "topTitle" => "ساعة رولكس رجالي فاخرة – أناقة تليق بك", "askSeller" => {"icon" => nil, "title" => "اسأل المعلن", "directChatEnabled" => true, "askSellerQuestions" => [{"message" => "أنا مهتم", "analyticsKey" => "r_interest"}, {"message" => "من الاخر", "analyticsKey" => "r_bargain"}, {"message" => "في توصيل", "analyticsKey" => "r_delivery"}], "directChatValidations" => {"messageMaxLength" => 200, "messageMinLength" => 1}}, "basicInfo" => {"sections" => [{"items" => [{"type" => "normal", "label" => "نوع الكستك", "value" => "معدني", "action" => {"link" => "jo/cpsearch//54963/7415/Watches_Material:13816////////", "type" => "deeplink"}, "fieldName" => "Watches_Material", "reporting_value_label" => "Metal"}, {"type" => "normal", "label" => "اللون", "value" => "أسود", "action" => {"link" => "jo/cpsearch//54963/7415/Color:13682////////", "type" => "deeplink"}, "fieldName" => "Color", "reporting_value_label" => "Black"}, {"type" => "normal", "label" => "هل لديك خدمة توصيل؟", "value" => "نعم", "action" => {"link" => "jo/cpsearch//54963/7415/////////", "type" => "deeplink"}, "fieldName" => "DeliveryService", "reporting_value_label" => "Yes"}, {"type" => "normal", "label" => "الحالة", "value" => "جديد", "action" => {"link" => "jo/cpsearch//54963/7415/ConditionUsed:4641////////", "type" => "deeplink"}, "fieldName" => "ConditionUsed", "reporting_value_label" => "New"}, {"type" => "normal", "label" => "ماركة", "value" => "رولكس", "action" => {"link" => "أزياء-رجالية/ساعات-رجالي/ماركة-رولكس", "type" => "url"}, "fieldName" => "Type_Watches", "reporting_value_label" => "Rolex"}, {"type" => "normal", "label" => "آلية عمل الماكنة", "value" => "أوتوماتيك", "action" => {"link" => "jo/cpsearch//54963/7415/Watch_Movementtype:13944////////", "type" => "deeplink"}, "fieldName" => "Watch_Movementtype", "reporting_value_label" => "Automatic"}, {"type" => "normal", "label" => "حجم الهيكل", "value" => "XL ( 48-57mm )", "action" => {"link" => "jo/cpsearch//54963/7415/Watch_Size:13904////////", "type" => "deeplink"}, "fieldName" => "Watch_Size", "reporting_value_label" => "XL ( 48-57mm )"}], "title" => "", "description" => "", "shownItemNumber" => 8}, {"items" => [{"id" => 14812, "type" => "normal", "label" => "الحي", "value" => "أخرى", "action" => {"link" => "أخرى", "type" => "url"}, "key_type" => "Neighborhood"}, {"id" => 59, "type" => "normal", "label" => "المدينة", "value" => "عمان", "action" => {"link" => "عمان", "type" => "url"}, "key_type" => "City"}, {"id" => 7415, "type" => "normal", "label" => "القسم الفرعي", "value" => "ساعات رجالي", "action" => {"link" => "أزياء-رجالية/ساعات-رجالي", "type" => "url"}, "key_type" => "SubCategory", "reporting_value_label" => "MenWatches"}, {"id" => 54963, "type" => "normal", "label" => "القسم", "value" => "موضة وأطفال", "action" => {"link" => "موضة-وأطفال", "type" => "url"}, "key_type" => "Category", "reporting_value_label" => "FashionAndKids"}, {"type" => "normal", "label" => "إعلان رقم", "value" => 287149124, "action" => {"type" => "copy", "value" => 287149124}, "key_type" => "ListingCopyId"}, {"type" => "normal", "label" => "تاريخ النشر", "value" => "14-09-2026", "key_type" => "ListingPostDate"}], "title" => "", "description" => "", "shownItemNumber" => 8}], "shownRowsNumber" => 2}, "ownerData" => {"id" => 80570885, "isShop" => false, "fullName" => "يامن محيسن", "ratingAvg" => 1, "isFollowed" => false, "isProBuyer" => false, "memberLink" => "/ar/mid/member-1769886444.4692716", "memberSince" => "31-01-2026", "phoneDetails" => {"revealKey" => "d48bf0810d309b73ed3def8e56cb54fb", "maskedPhoneNumber" => "07982479XX"}, "responseTime" => "", "profilePicture" => "https://opensooqui2.os-cdn.com/api/v/icons/misc/no_profile.webp", "numberOfRatings" => 1, "authorisedSeller" => false, "numberOfListings" => 11, "verification_tag" => nil, "verificationLevel" => 0, "showRatingAfterInteraction" => false}, "subCatUrl" => "أزياء-رجالية/ساعات-رجالي", "isReported" => false, "postBadges" => {"isVip" => nil, "isTurbo" => nil, "isBumpup" => nil, "canExport" => nil, "isPremium" => nil, "hasDeliveryService" => {"icon" => nil, "label" => "التوصيل متاح"}}, "stickyItem" => [{"type" => "price", "value" => "40 دينار ", "isIconsEnabled" => false}, {"type" => "text", "value" => "ساعة رولكس رجالي فاخرة – أناقة تليق بك", "isIconsEnabled" => false}], "breadcrumbs" => "$undefined", "description" => {"tags" => [], "title" => "الوصف", "content" => "تميّز بإطلالة راقية مع ساعة رولكس الرجالي بتصميم أنيق يناسب اللبس اليومي والمناسبات الرسمية.\nساعة تجمع بين الشكل الفخم والراحة في الاستخدام، وتمنحك مظهر ساعة راقية بسعر مناسب للجميع.\n\n المميزات:\n تصميم عصري وفخم\n مناسبة للشباب والرجال\n مريحة على المعصم\n\n\n#ساعة #ساعات #ساعة_رولكس #رولكس #ساعات_رولكس #ساعة_رجالي #ساعات_رجالية #ساعة_فاخرة #ساعات_فاخرة #ساعة_انيقة #ساعات_انيقة #موضة #موضة_رجالية #اناقة #اناقة_رجالية #اكسسوارات #اكسسوارات_رجالية #ساعة_يد #ساعات_يد #ساعات_شباب #شباب #رجال #لوك_رجالي #ستايل_رجالي #ستايل #لوك #ساعات_موضة #ساعة_موضة #ترند #ترند_ساعات #تسوق #تسوق_اونلاين #متجر #متجر_الكتروني #بيع #شراء #منتجات #منتجات_رجالية #هدايا #هدايا_رجالية #هدية #هدية_رجال #ساعات_هدايا #ساعات_للبيع #ساعة_للبيع #عرض #عروض #خصم #سعر_مميز #سعر_خاص #تخفيضات #تخفيضات_ساعات #ساعة_جديدة #ساعات_جديدة #ساعات_عصرية #ساعات_راقية #ساعات_كلاسيك #ساعات_عملية #ساعات_يومية #ساعات_رسمية #ساعات_مناسبات #ساعات_افراح #ساعات_طلاب #ساعات_موظفين #ستايل_شباب #ستايل_رجال #لوك_رسمي #لوك_يومي #موضة_ساعات #ساعات_موضة_رجالية #اكسسوارات_رجال #اكسسوارات_موضة #ساعات_تجارية #ساعات_ماركات #ساعات_ماركة #ساعة_ماركة #ساعات_مستوردة #ساعات_جودة_عالية #ساعات_سعر_مناسب #ساعات_سعر_ممتاز #ساعات_مناسبة_للجميع #ساعات_شبابية #ساعات_رجالية_فخمة #ساعات_رجالية_عصرية #ساعات_رجالية_كلاسيك #ساعات_رجالية_رياضية #ساعة_معدنية #ساعات_معدنية #ساعة_شكل_فاخر #ساعات_شكل_فاخر #ساعة_قوية #ساعات_قوية #ساعة_خفيفة #ساعات_خفيفة #ساعة_مميزة #ساعات_مميزة #ساعات_جذابة #ساعات_انستغرام #ساعات_تيك_توك #تجارة #تجارة_الكترونية #بيع_اونلاين #شراء_اونلاين #توصيل #توصيل_سريع #توصيل_الاردن #الاردن #عمان #اربد #الزرقاء #العقبة #جرش #السلط #مادبا #ساعات_الاردن #متجر_ساعات_الاردن #تسوق_الاردن #ساعات_انترنت #شراء_ساعات #بيع_ساعات #ساعات_الرجال #هدايا_رجال #هدايا_شباب #هدايا_رجالية_فخمة #ساعات_يد_رجالية #ساعات_ستايل #ستايل_يومي #ستايل_رسمي #لوك_رسمي #لوك_يومي #موضة_اكسسوارات #ساعة_رجال #ساعات_رجال #ساعة_شباب #ساعات_شباب #ساعة_حديثة #ساعات_حديثة #ساعة_مناسبة #ساعات_مناسبة #ساعة_عملية #ساعات_عملية #ساعة_للهدية #ساعات_للهدية #ساعة_للخروج #ساعات_للخروج #ساعة_للمناسبات #ساعات_للمناسبات #ساعة_للعمل #ساعات_للعمل #ساعة_للجامعة #ساعات_للجامعة #ساعة_للشباب #ساعات_للشباب #ساعة_للرجال #ساعات_للرجال #ساعة_عصرية #ساعات_عصرية #ساعة_انيقة_للرجال #ساعات_انيقة_للرجال #ساعة_فخمة_للرجال #ساعات_فخمة_للرجال #ساعة_ستايل #ساعات_ستايل #ساعة_موضة_رجالية #ساعات_موضة_رجالية #ساعة_جودة #ساعات_جودة #ساعة_سعر_مناسب #ساعات_سعر_مناسب\nساعة رولكس,ساعات رولكس,ساعة رجالي,ساعات رجالية,ساعة فخمة,ساعات فاخرة,ساعة أنيقة,ساعات أنيقة,اكسسوارات رجالية,هدايا رجالية,ساعة يد,ساعات يد,ساعة موضة,ساعات موضة,ساعة كلاسيك,ساعة عصرية,ساعة عملية,متجر ساعات,بيع ساعات,ساعات شبابية,ساعات رجالية حديثة,ساعة معدنية,ساعات معدنية", "maxLines" => 4, "isTitleUserInput" => false}, "isFavorites" => false, "tipsSection" => {"items" => ["اجتمع في الأماكن العامة فقط", "لا تقم بإرسال المال مسبقاً", "قم بتفقّد المنتج جيداً قبل شرائه"], "title" => "نصائح عامة"}, "translations" => {"shareText" => "شارك", "favoriteText" => "احفظ"}, "reportEnabled" => true, "shareDeeplink" => "https://opensooq.com/site/dl?requestUri=${utm}$jo/post/287149124", "listings_count" => 235, "dynamicSections" => "$undefined", "listing_audience" => nil, "dynamicTabsSection" => "$undefined"}, "spotlights" => nil, "loggingData" => {"cps" => [{"value" => "Rolex", "fieldName" => "Type_Watches"}, {"value" => "Automatic", "fieldName" => "Watch_Movementtype"}, {"value" => "XL ( 48-57mm )", "fieldName" => "Watch_Size"}, {"value" => "Metal", "fieldName" => "Watches_Material"}, {"value" => "Black", "fieldName" => "Color"}, {"value" => "Yes", "fieldName" => "DeliveryService"}, {"value" => "New", "fieldName" => "ConditionUsed"}], "cityId" => 59, "cityUrl" => "عمان", "filters" => {"filterCp" => "No", "filterMember" => "No", "filterKeyword" => "No", "filterListing" => "Yes", "filterCategory" => "No", "filterSubcategory" => "No"}, "nhoodId" => 14812, "services" => [], "categoryId" => 54963, "categoryUrl" => "موضة-وأطفال", "city_labels" => {"label_ar" => "عمان", "label_en" => "Amman"}, "isListingLive" => true, "listingStatus" => "posted", "subCategoryId" => 7415, "subCategoryUrl" => "ساعات-رجالي", "userTargetType" => "free", "category_labels" => {"label_ar" => "موضة وأطفال", "label_en" => "Fashion And Kids"}, "cityReportingName" => "Amman", "currentPaidFeature" => "3", "subcategory_labels" => {"label_ar" => "ساعات رجالي", "label_en" => "Men's Watches"}, "neighborhood_labels" => {"label_ar" => "أخرى", "label_en" => "Other", "label_ku" => "ئەوانەی تر"}, "categoryReportingName" => "FashionAndKids", "subCategoryReportingName" => "MenWatches", "neighborhoodReportingName" => "Other"}, "favorites_count" => ""}
specs_en {"Color" => "Black", "Watch_Size" => "XL ( 48-57mm )", "Type_Watches" => "Rolex", "ConditionUsed" => "New", "DeliveryService" => "Yes", "Watches_Material" => "Metal", "Watch_Movementtype" => "Automatic"}
raw_price 40
seller_id 80570885
listing_id 287149124
breadcrumbs ["الأردن", "موضة وأطفال", "رجال", "إكسسوارات", "ساعات", "ساعات رجالي في عمان", "رولكس"]
spec_labels {"Color" => "اللون", "Watch_Size" => "حجم الهيكل", "Type_Watches" => "ماركة", "ConditionUsed" => "الحالة", "DeliveryService" => "هل لديك خدمة توصيل؟", "Watches_Material" => "نوع الكستك", "Watch_Movementtype" => "آلية عمل الماكنة"}
currency_key JOD
phone_masked 07982479XX
seller_rating 1
description_ld تميّز بإطلالة راقية مع ساعة رولكس الرجالي بتصميم أنيق يناسب اللبس اليومي والمناسبات الرسمية. ساعة تجمع بين الشكل الفخم والراحة في الاستخدام، وتمنحك مظهر ساعة راقية بسعر مناسب للجميع. المميزات: تصميم عصري وفخم مناسبة للشباب والرجال مريحة على المعصم #ساعة #ساعات #ساعة_رولكس #رولكس #ساعات_رولكس
seller_is_shop false
seller_listings 11
seller_member_since 31-01-2026

Use with AI

Paste this into Claude or any AI agent that can make web requests. It explains the public API — endpoints, parameters, limits — so the agent can search listings on its own. Also at /api/v1/prompt.

You can use the Harvester listings API: a public, read-only JSON API over products
scraped from online shops (mostly Jordanian). Call it with plain HTTP GET requests.

Base URL: https://harvester.mehyar.ing/api/v1
No authentication, no API key. GET only. Every response is JSON, errors included.

## Endpoints

GET /api/v1/meta
  Describes the API itself: every endpoint and parameter, legal values, the limits,
  and live corpus statistics (how many listings and sites, the typical price range).
  Call this first — it is always current.

GET /api/v1/sites
  Every shop that has live listings: id, name, domain, status, listing_count.
  Use it to turn a shop name into a site_id.

GET /api/v1/listings
  Search and filter live listings (delisted ones are excluded). Parameters, all optional:
    q            Free-text search over title and description. Truncated to 200 characters.
                 Arabic text is matched word by word (first 8 words only) and is slower — keep it short.
    search_mode  How q matches: exact, any, all, fuzzy. Default all.
                   all   = every word must appear (narrowest)
                   any   = at least one word
                   exact = the phrase as a substring
                   fuzzy = typo-tolerant match on the title, any script
    site_id      One id or a comma-separated list (from /api/v1/sites).
    site         Substring of the shop's domain, e.g. site=opensooq. ANDed with site_id.
    category_id  One id or a comma-separated list. Ids appear on each listing.
    min_price    Inclusive lower bound on the raw price number.
    max_price    Inclusive upper bound on the raw price number.
    sort         relevance, recent, oldest, price_asc, price_desc. Default: relevance when q is given, else recent.
                 Listings without a price sort last.
    limit        Page size. Default 25, max 100 (larger values are clamped).
    offset       Rows to skip. Max 10000 (larger values are clamped).
    include      Comma-separated extra fields. Only value: raw_data (see below).
  Returns { meta: {...}, listings: [...] }. meta.returned is the row count of this page.

GET /api/v1/listings/:id
  One listing in full: untruncated description, raw_price (the original price text),
  availability, price_history, lowest/highest price seen, active, removed_at, and raw_data.
  Works for delisted listings too — check `active`.

GET /api/v1/prompt
  This text, as text/plain.

## Examples

  https://harvester.mehyar.ing/api/v1/meta
  https://harvester.mehyar.ing/api/v1/sites
  https://harvester.mehyar.ing/api/v1/listings?q=iphone&sort=price_asc&limit=10
  https://harvester.mehyar.ing/api/v1/listings?q=لابتوب&site=opensooq&max_price=400
  https://harvester.mehyar.ing/api/v1/listings?q=makita+drill&search_mode=fuzzy
  https://harvester.mehyar.ing/api/v1/listings?site=opensooq&q=تويوتا&include=raw_data&limit=20
  https://harvester.mehyar.ing/api/v1/listings/12345

## The listing object

id, title, price, currency, url, description, seller, condition, images, site {id, name,
domain, status}, category {id, name}, first_seen_at, last_seen_at.
Any field except id, title and url can be null — shops don't all publish everything.

- currency is per listing and can be null. Never compare or sum prices whose currency
  differs or is null. min_price/max_price ignore currency.
- In list responses description is cut to 400 characters and
  description_truncated is true; fetch /api/v1/listings/:id for the full text.
- This is scraped data, not a live shop. A price is what the shop showed at last_seen_at.
- site.status describes our scraper, not the data. A "broken" site's listings are still
  valid — don't filter them out.
- category is null when a listing came from a whole-catalogue scrape.
- Always give the user the listing's url; it is the real product page.

## raw_data

Everything the scraper captured that has no dedicated field. Always on
/api/v1/listings/:id; on /api/v1/listings only with include=raw_data (it is large,
so ask for it only when you need it, and prefer small pages when you do).
Its shape depends on the site. Sensitive values (e.g. phone reveal tokens) are removed.

For OpenSooq (domain jo.opensooq.com) raw_data holds:
  specs        { fieldName: value in Arabic } — the listing's real attributes.
  specs_en     { fieldName: English label } — same fields, English.
  spec_labels  { fieldName: Arabic name of the field }
  breadcrumbs  category path, e.g. ["الأردن", "سيارات ومركبات", "آليات ثقيلة", "جرافة"]
  seller_id, seller_rating, seller_listings, seller_member_since, seller_is_shop,
  phone_masked (last digits hidden), listing_id, lastmod, description_ld
  payload      the full listing object from the OpenSooq page, for anything else.

TRAP: in specs_en, numeric fields (mileage, year ranges, sizes, …) are SEARCH BUCKETS,
not values — e.g. "+200,000" for mileage. For real numbers read the same fieldName from
specs, which holds the actual value (in Arabic; digits may be Arabic-Indic or Latin).
Use specs_en only to understand what a field means. seller_is_shop is unreliable.

## Limits and errors

- Rate limit: 60 requests per 60 seconds per IP. Over it you get HTTP 429
  with a Retry-After header: stop and wait that many seconds before the next request.
- A query running over 5 seconds is cancelled with HTTP 503 code=query_too_expensive.
  Don't retry it as-is — narrow it (add site_id/category_id, fewer words, or search_mode=fuzzy).
- meta.total_estimate stops counting at 1000. If meta.total_is_capped is true, the real
  total is at least that — say "1000+", never an exact number.
- 404 = unknown id or path, 400 = malformed parameter. Error bodies are
  { error: { code, message } }; the message says what to do.

## How to work well

1. Start with /api/v1/meta (and /api/v1/sites if the user names a shop).
2. Search with q in the default mode. Nothing back? Try search_mode=any, then fuzzy —
   most misses are a typo, a synonym, or English words against Arabic titles.
3. Too much back? Narrow with site, site_id, category_id or a price bound rather than
   paging deeper. You cannot page past offset 10000.
4. Paginate politely: one request at a time, never in parallel. Use limit=100 when
   scanning and a small limit when you only need examples. Stop as soon as you have
   what you need.
5. Reuse results you already have instead of re-fetching them.