{"ok": true, "error": false, "wilaya": null, "properties": [{"id": 5, "name": "Appart Saket", "address": "", "city": "Saket", "wilaya": "Béjaïa", "latitude": 36.8254623, "longitude": 4.9447247, "price_per_night": 4500.0, "price_per_night_max": 5000.0, "price_varies": true, "capacity": 1, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 0.0, "rating_count": 0, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "", "image_count": 0, "availability_periods": [{"date_start": "2026-06-05", "date_end": "2026-08-14", "price_per_night": 5000.0}, {"date_start": "2026-08-15", "date_end": "2026-12-25", "price_per_night": 4500.0}], "blocked_periods": [], "house_rules": {"property_id": 5, "property_name": "Appart Saket", "capacity": 1, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 19, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 20, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 21, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 22, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 1 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 23, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 24, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}, {"id": 3, "name": "Maison coloniale alger", "address": "", "city": "", "wilaya": "Alger", "latitude": 36.7751237, "longitude": 3.0597353, "price_per_night": 6400.0, "price_per_night_max": 6400.0, "price_varies": false, "capacity": 2, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 0.0, "rating_count": 0, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "", "image_count": 0, "availability_periods": [{"date_start": "2026-07-08", "date_end": "2027-01-28", "price_per_night": 6400.0}], "blocked_periods": [], "house_rules": {"property_id": 3, "property_name": "Maison coloniale alger", "capacity": 2, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 7, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 8, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 9, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 10, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 2 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 11, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 12, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}, {"id": 1, "name": "Appartement sur mer", "address": "", "city": "", "wilaya": "Béjaïa", "latitude": 36.8274491, "longitude": 4.9366218, "price_per_night": 12000.0, "price_per_night_max": 12000.0, "price_varies": false, "capacity": 2, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 5.0, "rating_count": 3, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "/web/image/ds.property.image/1/image", "image_count": 2, "availability_periods": [{"date_start": "2026-06-29", "date_end": "2026-09-30", "price_per_night": 12000.0}], "blocked_periods": [{"date_start": "2026-08-04", "date_end": "2026-08-06"}, {"date_start": "2026-07-30", "date_end": "2026-07-31"}, {"date_start": "2026-07-24", "date_end": "2026-07-25"}, {"date_start": "2026-07-09", "date_end": "2026-07-18"}, {"date_start": "2026-07-03", "date_end": "2026-07-04"}, {"date_start": "2026-07-02", "date_end": "2026-07-03"}], "house_rules": {"property_id": 1, "property_name": "Appartement sur mer", "capacity": 2, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 1, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 2, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 3, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 4, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 2 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 5, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 6, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}], "count": 3, "limit": 20, "offset": 0, "has_more": false, "map_properties": [{"id": 5, "name": "Appart Saket", "address": "", "city": "Saket", "wilaya": "Béjaïa", "latitude": 36.8254623, "longitude": 4.9447247, "price_per_night": 4500.0, "price_per_night_max": 5000.0, "price_varies": true, "capacity": 1, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 0.0, "rating_count": 0, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "", "image_count": 0, "availability_periods": [{"date_start": "2026-06-05", "date_end": "2026-08-14", "price_per_night": 5000.0}, {"date_start": "2026-08-15", "date_end": "2026-12-25", "price_per_night": 4500.0}], "blocked_periods": [], "house_rules": {"property_id": 5, "property_name": "Appart Saket", "capacity": 1, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 19, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 20, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 21, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 22, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 1 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 23, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 24, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}, {"id": 3, "name": "Maison coloniale alger", "address": "", "city": "", "wilaya": "Alger", "latitude": 36.7751237, "longitude": 3.0597353, "price_per_night": 6400.0, "price_per_night_max": 6400.0, "price_varies": false, "capacity": 2, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 0.0, "rating_count": 0, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "", "image_count": 0, "availability_periods": [{"date_start": "2026-07-08", "date_end": "2027-01-28", "price_per_night": 6400.0}], "blocked_periods": [], "house_rules": {"property_id": 3, "property_name": "Maison coloniale alger", "capacity": 2, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 7, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 8, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 9, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 10, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 2 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 11, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 12, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}, {"id": 1, "name": "Appartement sur mer", "address": "", "city": "", "wilaya": "Béjaïa", "latitude": 36.8274491, "longitude": 4.9366218, "price_per_night": 12000.0, "price_per_night_max": 12000.0, "price_varies": false, "capacity": 2, "bedrooms": 1, "bathrooms": 1, "property_type": "apartment", "property_type_label": "Appartement", "cancellation_policy": "moderate", "cancellation_policy_label": "Modérée", "amenities": [], "rating_avg": 5.0, "rating_count": 3, "checkin_time": 13.0, "checkout_time": 12.0, "checkin_label": "13h00", "checkout_label": "12h00", "has_availability": true, "main_image_url": "/web/image/ds.property.image/1/image", "image_count": 2, "availability_periods": [{"date_start": "2026-06-29", "date_end": "2026-09-30", "price_per_night": 12000.0}], "blocked_periods": [{"date_start": "2026-08-04", "date_end": "2026-08-06"}, {"date_start": "2026-07-30", "date_end": "2026-07-31"}, {"date_start": "2026-07-24", "date_end": "2026-07-25"}, {"date_start": "2026-07-09", "date_end": "2026-07-18"}, {"date_start": "2026-07-03", "date_end": "2026-07-04"}, {"date_start": "2026-07-02", "date_end": "2026-07-03"}], "house_rules": {"property_id": 1, "property_name": "Appartement sur mer", "capacity": 2, "quiet_hours": {"start": 22.0, "end": 8.0, "start_label": "22h00", "end_label": "08h00"}, "rules": [{"id": 1, "code": "quiet_hours", "category": "noise", "name": "Heures de silence", "description": "Respectez les heures de silence de 22h00 à 08h00. Tout bruit excessif (musique, fête, conversations fortes) est interdit.", "mandatory": true}, {"id": 2, "code": "no_party", "category": "parties", "name": "Pas de fête", "description": "Les fêtes, événements et rassemblements bruyants sont interdits dans le logement et les parties communes.", "mandatory": true}, {"id": 3, "code": "no_smoking", "category": "smoking", "name": "Non-fumeur", "description": "Il est interdit de fumer (tabac, chicha, cigarette électronique) à l'intérieur du logement.", "mandatory": true}, {"id": 4, "code": "max_guests", "category": "guests", "name": "Capacité maximale", "description": "Le logement est limité à 2 personne(s). Les invités non déclarés sont interdits.", "mandatory": true}, {"id": 5, "code": "residence_bylaw", "category": "residence", "name": "Règlement de la résidence", "description": "Le voyageur s'engage à respecter le règlement intérieur de la résidence (parties communes, ascenseur, stationnement, ordures).", "mandatory": true}, {"id": 6, "code": "checkin_hours", "category": "checkin", "name": "Horaires d'arrivée et de départ", "description": "Respectez les horaires de check-in et check-out indiqués sur l'annonce. Un état des lieux photo est obligatoire à l'entrée et à la sortie.", "mandatory": true}], "deposit_amount": 0, "nuisance_penalty_amount": 0, "required": true}, "quiet_hours_start": 22.0, "quiet_hours_end": 8.0, "quiet_hours_label": "22h00 – 08h00", "deposit_amount": 0, "nuisance_penalty_amount": 0}], "order": "price_asc"}