{
    "title": "KA Apartments.com — locations QC",
    "type": "object",
    "schemaVersion": 1,
    "properties": {
        "searchUrls": {
            "title": "URLs de recherche",
            "type": "array",
            "editor": "stringList",
            "description": "Pages de recherche Apartments.com à paginer (défaut : /qc/, toute la province).",
            "default": ["https://www.apartments.com/qc/"]
        },
        "maxPages": {
            "title": "Pages max par recherche",
            "type": "integer",
            "description": "Plafond de pagination par URL de recherche (arrêt auto quand le site retombe sur la page 1).",
            "default": 25,
            "minimum": 1,
            "maximum": 30
        },
        "getDetails": {
            "title": "Visiter les fiches détail",
            "type": "boolean",
            "description": "Visiter les fiches (version française) : GPS, description, plans d'unités, commodités, galerie.",
            "default": true
        },
        "maxDetails": {
            "title": "Fiches détail max",
            "type": "integer",
            "description": "Budget de fiches détail par run.",
            "default": 250,
            "minimum": 0
        },
        "skipDetailIds": {
            "title": "IDs à ne pas revisiter",
            "type": "array",
            "editor": "stringList",
            "description": "IDs de propriétés dont la fiche est déjà en cache côté appelant.",
            "default": []
        },
        "extraDetailIds": {
            "title": "IDs de rattrapage",
            "type": "array",
            "editor": "stringList",
            "description": "data-url encodés « id|url » de fiches à visiter même si absentes de la recherche.",
            "default": []
        },
        "brightdataToken": {
            "title": "Jeton API Bright Data",
            "type": "string",
            "editor": "textfield",
            "isSecret": true,
            "description": "Jeton Bearer de l'API Bright Data (Web Unlocker) — requis."
        },
        "brightdataZone": {
            "title": "Zone Bright Data",
            "type": "string",
            "editor": "textfield",
            "description": "Nom de la zone Web Unlocker.",
            "default": "web_unlocker1"
        },
        "concurrency": {
            "title": "Requêtes simultanées",
            "type": "integer",
            "description": "Nombre de requêtes Bright Data en parallèle.",
            "default": 4,
            "minimum": 1,
            "maximum": 10
        },
        "requestDelay": {
            "title": "Délai entre requêtes (s)",
            "type": "integer",
            "description": "Pause après chaque requête réussie (0 = aucune).",
            "default": 0,
            "minimum": 0
        }
    },
    "required": ["brightdataToken"]
}
