{
  "openapi": "3.0.1",
  "info": {
    "title": "Pisos.com Property Scraper — Spain Real Estate",
    "description": "Pull Spanish property adverts from pisos.com by place: asking price, floor area, rooms, agency, phone, coordinates and the energy certificate. No search URL to paste.",
    "version": "1.0",
    "x-build-id": "yVgqKUwEHo8zaAfaG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~pisos-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-pisos-property-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/sian.agency~pisos-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-pisos-property-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/sian.agency~pisos-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-pisos-property-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Two ways in. **Property search** takes a Spanish place from the portal's own index, a market (sale, rent or new development) and a property type, then walks the result pages and returns every advert with its price, area, rooms, agency, phone, coordinates and full advert text. **Property detail** opens one advert on its own page and adds the parts a result card leaves out: usable floor area as well as built area, the energy certificate, condition, orientation, heating, age, the community charge…",
            "default": "search"
          },
          "location": {
            "title": "📍 Where in Spain",
            "enum": [
              "a_coruna",
              "a_coruna_capital",
              "a_marina",
              "a_ulloa_chantada_terra_de_lemos",
              "acequion_los_naufragos",
              "adeje",
              "adeje_norte",
              "aguadulce_distrito",
              "aguas_nuevas_torreblanca_sector_25",
              "albacete",
              "albacete_capital",
              "albacete_capital_zona_urbana",
              "albaicin_distrito",
              "albolote",
              "alcala_de_guadaira",
              "alcala_de_henares",
              "alcanar",
              "guadalajara_alcarria",
              "alcaudete",
              "alcoi_alcoy",
              "alcorcon",
              "alcudia_montes",
              "alcudia",
              "alfoz_de_burgos",
              "algeciras",
              "algorfa",
              "alhama",
              "alhaurin_de_la_torre",
              "alhaurin_el_grande",
              "alhendin",
              "alicante",
              "alicante_alacant",
              "chamberi_almagro",
              "almassora",
              "almendralejo",
              "almeria",
              "almeria_capital",
              "almonte",
              "almoradi",
              "almunecar",
              "alpujarra_granadina",
              "alt_camp",
              "alt_emporda",
              "alt_palancia",
              "alt_penedes",
              "alt_vinalopo",
              "altea",
              "altiplano_y_oriental",
              "alto_guadalentin",
              "alzira",
              "andorra_andorra",
              "andorra_la_vella",
              "andratx",
              "anoia",
              "antequera",
              "antequera_nororma",
              "antigua",
              "aranjuez",
              "arcos_de_la_frontera",
              "arganzuela",
              "armilla",
              "arona",
              "arta",
              "aspe",
              "asturias",
              "ason_aguera",
              "atarfe",
              "aviles",
              "axarquia_costa_del_sol",
              "ayamonte",
              "badajoz",
              "badajoz_capital",
              "badalona",
              "baena",
              "bages",
              "bahia_de_cadiz",
              "bailen_miraflores",
              "baix_camp",
              "baix_ebre",
              "baix_emporda",
              "baix_llobregat",
              "baix_penedes",
              "baix_segura",
              "baix_vinalopo",
              "bajo_guadalentin",
              "bajo_guadalquivir",
              "bajo_nalon_area_de_vaqueira",
              "barakaldo",
              "barbate",
              "barcelona",
              "barcelona_capital",
              "barcelones",
              "madrid_capital_salamanca",
              "baza",
              "beiro_distrito",
              "bel_air_cancelada_saladillo",
              "bellavista_la_palmera",
              "benahavis",
              "benalmadena",
              "benicarlo",
              "benicassim_benicasim",
              "benidorm",
              "benijofar",
              "benissa",
              "bergueda",
              "besaya",
              "bidasoa",
              "bierzo",
              "bigastro",
              "bilbao",
              "bilbo_handia",
              "blanes",
              "boadilla_del_monte",
              "borriana_burriana",
              "burgohondo_el_tiemblo_cebreros",
              "burgos",
              "burgos_capital",
              "cabanes",
              "cabo_roig_la_zenia_la_regia",
              "cabopino_reserva_de_marbella",
              "cabra",
              "calafell",
              "caldas_tabeiros_deza",
              "callao_salvaje_playa_paraiso_armenime",
              "callosa_de_segura",
              "calonge_i_sant_antoni",
              "calpe_calp",
              "calvia",
              "cambrils",
              "camino_de_ronda",
              "camino_de_suarez",
              "camins_al_grau",
              "campina",
              "jaen_campina",
              "campina_de_carmona",
              "campina_de_moron_y_marchena",
              "campina_jerez_y_sierra",
              "campinas_sur_y_baena",
              "campo_aranuelo",
              "campo_de_calatrava",
              "campo_de_cartagena",
              "campo_de_gibraltar",
              "campo_de_la_verdad_miraflores_sector_sur",
              "campo_de_murcia",
              "campoamor_altozano",
              "campoo_los_valles",
              "campos",
              "campos_de_hellin",
              "camin_real_de_la_mesa_fuentes_del_narcea",
              "canet_de_mar",
              "canillo",
              "cantabria",
              "capdepera",
              "madrid_capital_carabanchel",
              "pla_carolinas_carolinas",
              "malaga_capital_carretera_de_cadiz",
              "casares",
              "centro_casco_antiguo",
              "sevilla_capital_casco_antiguo",
              "casco_antiguo_barrio",
              "casco_historico_ribera_san_basilio",
              "vigo_casco_urbano",
              "casco_urbano",
              "castell_aro_platja_aro_i_sagaro",
              "salamanca_castellana",
              "castellar_del_valles",
              "castelldefels",
              "castello_empuries",
              "castello_empuries_centro_urbano",
              "castello_de_la_plana",
              "castellon_castello",
              "castro_urdiales",
              "catral",
              "andorra_la_vella_centre",
              "roses_centre",
              "palma_de_mallorca_centre",
              "centre_covadonga_centre",
              "centre_covadonga",
              "torrevieja_centro",
              "estepona_centro",
              "madrid_capital_centro",
              "malaga_capital_centro",
              "marbella_centro",
              "barrio_centro",
              "jerez_de_la_frontera_centro",
              "logrono_centro",
              "murcia_capital_centro",
              "burgos_capital_centro",
              "cordoba_capital_centro",
              "oviedo_distrito_centro",
              "centro_distrito",
              "centro_ciudad",
              "cadiz_capital_centro_historico",
              "centro_historico",
              "centro_historico_la_merced",
              "centro_tradicional",
              "granada_capital_centro_catedral",
              "centro_ensanche",
              "cerdanya_de_girona",
              "cerdanya_francesa",
              "cerdanyola_del_valles",
              "cerro_amate",
              "ceuta",
              "madrid_capital_chamartin",
              "chamberi_distrito",
              "granada_capital_chana",
              "chiclana_de_la_frontera",
              "chipiona",
              "chiva",
              "churriana_de_la_vega",
              "cinca_la_litera",
              "ciudad_jardin_zoco",
              "ciudad_lineal",
              "ciudad_real",
              "ciudad_real_capital",
              "ciudad_rodrigo",
              "ciutadella_de_menorca",
              "ciutat_vella",
              "valencia_capital_ciutat_vella",
              "comarca_de_la_sidra",
              "condado_paradanta",
              "conil_de_la_frontera",
              "cornella_de_llobregat",
              "corredor_del_henares",
              "adeje_costa_adeje",
              "costa_del_silencio_las_galletas",
              "costa_del_sol_occidental",
              "costa_natura",
              "costa_noroeste",
              "costa_occidental",
              "cantabria_costa_occidental",
              "costa_oriental",
              "costa_tropical",
              "cox",
              "coin",
              "crevillent",
              "cruz_de_humilladero",
              "cubelles",
              "cuenca",
              "cuenca_capital",
              "cuevas_del_almanzora",
              "cullera",
              "cunit",
              "caceres",
              "caceres_capital",
              "cadiz",
              "cadiz_capital",
              "cajar",
              "competa",
              "cordoba",
              "cordoba_capital",
              "cordoba_capital_zona_urbana",
              "daya_nueva",
              "dehesa_de_campoamor_aguamarina",
              "dolores",
              "donostialdea",
              "dos_hermanas",
              "durangaldea",
              "denia",
              "ebro",
              "barcelona_capital_eixample",
              "el_aljarafe",
              "el_andevalo",
              "el_baix_maestrat",
              "el_barri_gotic",
              "el_camp_de_morvedre",
              "el_camp_del_turia",
              "el_campello",
              "el_comtat",
              "el_condado",
              "el_ejido",
              "el_fondo_de_les_neus_hondon_de_las_nieves",
              "el_paraiso_atalaya_benamara",
              "el_pinos_pinoso",
              "el_poble_nou_de_benitatxell_benitachell",
              "el_poble_sec",
              "el_puerto_de_santa_maria",
              "el_raval",
              "el_vendrell",
              "el_verger",
              "elda",
              "la_marina_alta_els_poblets",
              "las_chapas_elviria",
              "elx_elche",
              "centro_embajadores_lavapies",
              "empuriabrava",
              "encamp",
              "encamp_centro_urbano",
              "ensanche_diputacion",
              "escaldes_engordany",
              "esla_campos",
              "esplugues_de_llobregat",
              "malaga_capital_este",
              "este_alcosa_torreblanca",
              "estepona",
              "extramurs",
              "felanitx",
              "ferrol",
              "figares_san_anton",
              "figueres",
              "finestrat",
              "florida_babel_benalua",
              "formentera_del_segura",
              "fuencarral_el_pardo",
              "fuengirola",
              "fuenlabrada",
              "fuerteventura",
              "gandia",
              "gandia_ciutat",
              "garbinet_vistahermosa",
              "garraf",
              "garrigues",
              "garrotxa",
              "gava",
              "granada_capital_genil",
              "getafe",
              "getxo",
              "gijon_concejo_xixon_conceyu_gijon",
              "gijon_concejo_xixon_conceyu",
              "girona",
              "girona_capital",
              "girones",
              "gorg_progres_pep_ventura",
              "goya",
              "gran_canaria",
              "granada",
              "area_de_granada_granada_capital",
              "granadilla_de_abona",
              "granollers",
              "gracia_distrito",
              "guadalajara",
              "alcarria_guadalajara_capital",
              "san_pedro_de_alcantara_guadalmina",
              "guadalteba_sierra_de_las_nieves",
              "guadix",
              "guardamar_del_segura",
              "guipuzcoa_gipuzkoa",
              "guia_de_isora",
              "gojar",
              "horta_guinardo",
              "hortaleza",
              "huelin_la_princesa_jardin_de_la_abadia",
              "huelva",
              "huelva_capital",
              "huerta_de_murcia",
              "huesca",
              "huercal_overa",
              "huetor_vega",
              "bilbao_ibaiondo",
              "ibiza",
              "ibiza_eivissa",
              "icod_de_los_vinos",
              "igualada",
              "isla_cristina",
              "isla_de_ibiza_eivissa",
              "isla_de_mallorca",
              "isla_de_menorca",
              "islas_baleares_illes_balears",
              "jaen",
              "jaen_capital",
              "jerez_de_la_frontera",
              "jesus",
              "justicia_chueca",
              "alacanti",
              "alcalaten",
              "alcoia",
              "alfas_del_pi",
              "ametlla_de_mar",
              "antiga_esquerra_de_eixample",
              "valencia_capital_eixample",
              "horta_nord",
              "horta_oest",
              "horta_sud",
              "hospitalet_de_llobregat",
              "olivereta",
              "valencia_la_costera",
              "la_dreta_de_eixample",
              "la_florida_la_chismosa_los_altos",
              "la_hoya_de_bunol",
              "la_jacetania",
              "la_janda",
              "la_loma_las_villas",
              "la_linea_de_la_concepcion",
              "ciudad_real_la_mancha",
              "la_mancha_de_toledo",
              "la_mancha_del_jucar_centro",
              "la_marina_alta",
              "la_marina_baixa",
              "la_massana",
              "la_massana_centro_urbano",
              "la_mata_distrito",
              "la_mesa_de_ocana",
              "la_nova_esquerra_de_eixample",
              "la_nucia",
              "la_oliva",
              "la_plana_alta",
              "la_plana_baixa",
              "la_ribera_alta",
              "la_ribera_baixa",
              "la_rioja",
              "la_romana",
              "montsia_la_rapita",
              "la_safor",
              "la_sagra",
              "la_sagrada_familia",
              "la_salut_lloreda_sistrells",
              "la_siesta_el_salado_torreta_el_chaparral",
              "la_vall_albaida",
              "la_vera",
              "la_vila_joiosa_villajoyosa",
              "la_zubia",
              "lanzarote",
              "marbella_las_chapas",
              "las_filipinas_villamartin_canal_norte",
              "las_gabias",
              "las_lomas_del_rame",
              "las_merindades",
              "las_mojadas_las_ramblas",
              "las_palmas",
              "las_palmas_de_gran_canaria",
              "las_rozas_de_madrid",
              "latina",
              "leganes",
              "lepe",
              "barcelona_capital_les_corts",
              "levante_almeriense",
              "leon",
              "leon_capital",
              "linares",
              "lista_barrio",
              "llefia_artigues",
              "lleida",
              "lleida_capital",
              "palma_de_mallorca_llevant",
              "lloret_de_mar",
              "llucmajor",
              "lliria",
              "san_pedro_del_pinatar_lo_pagan",
              "logrono",
              "loja",
              "lomas_de_marbella_club_puente_romano",
              "los_alcazares_centro_urbano",
              "los_alcazares",
              "los_balcones_los_altos_punta_prima",
              "los_cristianos",
              "san_pedro_del_pinatar_los_cuarteros",
              "los_dolses_montezenia_lomas_de_cabo",
              "los_monteros_bahia_de_marbella",
              "los_montes_de_toledo",
              "los_montesinos",
              "los_naranjos_las_brisas",
              "los_penascos_el_salero_los_imbernones",
              "los_realejos",
              "lucena",
              "lugo",
              "lugo_capital",
              "luque",
              "sevilla_capital_macarena",
              "madrid",
              "madrid_capital",
              "madrid_capital_zona_urbana",
              "madrid_noroeste",
              "madrid_norte",
              "madrid_sur",
              "madrid_sureste",
              "madrid_suroeste",
              "manacor",
              "mancha_alta",
              "manilva",
              "manresa",
              "maracena",
              "marbella",
              "maresme",
              "marina_or",
              "marratxi",
              "martos",
              "mas_mates_bosca_mas_fumats",
              "mataro",
              "macanet_de_la_selva",
              "mao_mahon",
              "medina_de_pomar",
              "melilla_zona_urbana",
              "melilla",
              "mercado_casco_antiguo",
              "mijas",
              "milla_de_oro",
              "mislata",
              "mino_baixo",
              "mogan",
              "mojacar",
              "mollet_del_valles",
              "monachil",
              "moncloa_aravaca",
              "moncofa",
              "monforte_del_cid",
              "mont_roig_del_camp",
              "montana_central",
              "montana_de_palencia",
              "monte_iberico_corredor_de_almansa",
              "montsia",
              "monover_monovar",
              "la_marina_alta_moraira",
              "motril",
              "murcia",
              "murcia_capital",
              "mutxamel",
              "malaga",
              "malaga_capital",
              "malaga_capital_zona_urbana",
              "merida",
              "mostoles",
              "naron",
              "navarra_nafarroa",
              "nerja",
              "noguera",
              "noja",
              "nord",
              "noroeste",
              "granada_capital_norte",
              "castello_de_la_plana_norte",
              "murcia_capital_norte",
              "nou_barris",
              "novelda",
              "marbella_nueva_andalucia",
              "nueva_andalucia_centro",
              "torrevieja_nueva_torrevieja",
              "san_pedro_del_pinatar_nucleo",
              "roquetas_de_mar_nucleo_urbano",
              "orihuela_nucleo_urbano",
              "o_barbanza_o_sar",
              "o_carballino_o_ribeiro",
              "o_eume_ortegal",
              "o_morrazo",
              "o_salnes",
              "ogijares",
              "ojen",
              "oliva",
              "ontinyent",
              "ordino",
              "oriente_de_asturias",
              "orihuela",
              "orihuela_orihuela_costa",
              "orihuela_pedanias",
              "orpesa_oropesa_del_mar",
              "oscos_eo_parque_historico_del_navia",
              "osona",
              "ourense",
              "ourense_capital",
              "oviedo",
              "oviedo_capital",
              "padul",
              "pajaritos_plaza_de_toros",
              "palafrugell",
              "palamos",
              "palencia",
              "palencia_capital",
              "palma_de_mallorca",
              "pamplona_iruna",
              "parla",
              "parque_central",
              "parque_natural_cabo_de_gata_nijar",
              "paterna",
              "pais_vasco_frances_iparralde",
              "murcia_capital_pedanias_este",
              "pedanias_norte",
              "murcia_capital_pedanias_oeste",
              "pedanias_y_barrios_rurales",
              "pedreguer",
              "pego",
              "peligros",
              "peniscola_peniscola",
              "periurbano_este_santa_cruz",
              "periurbano_oeste_las_jaras",
              "pilar_de_la_horadada",
              "pineda_de_mar",
              "pla_carolinas",
              "plasencia",
              "plasencia_monfrague",
              "platja_de_calafell",
              "platja_de_palma",
              "platja_de_segur_de_calafell",
              "playa_bahia_dorada",
              "playa_de_gandia",
              "arona_playa_de_las_americas",
              "playa_de_los_locos_los_frutales_cabo_cervera",
              "playas_playa_de_san_juan",
              "playa_del_cura",
              "playa_flamenca_las_piscinas",
              "playas",
              "poblacion_de_arroyo",
              "poblats_maritims",
              "pollenca",
              "polop",
              "ponent",
              "ponferrada",
              "poniente_almeriense",
              "pontevedra",
              "pontevedra_capital",
              "port_esportiu_canyelles_puig_rom",
              "pozuelo_de_alarcon",
              "puente_de_vallecas",
              "puerto_banus",
              "puerto_canteras",
              "puerto_de_la_cruz",
              "puerto_de_la_torre",
              "puerto_del_rosario",
              "puerto_vera_las_salinas",
              "puertollano",
              "pulpi",
              "punta_prima_cinuelica_alameda_del_mar",
              "quatre_carreres",
              "rascanya",
              "realejo",
              "recoletos",
              "relleu",
              "madrid_capital_retiro",
              "reus",
              "rincon_de_la_victoria",
              "rioja_alta",
              "rioja_baja",
              "rioja_media",
              "rojales",
              "ronda_distrito",
              "ronda",
              "roquetas_de_mar",
              "roses",
              "rota",
              "rubi",
              "rio_mula_valle_ricote_vega_alta",
              "sabadell",
              "sagunt_sagunto",
              "saja_nansa",
              "salamanca",
              "salamanca_capital",
              "salata",
              "salobrena",
              "salou",
              "san_bartolome_de_tirajana",
              "madrid_capital_san_blas",
              "san_blas_castillo_de_san_fernando",
              "san_cristobal_de_la_laguna",
              "puente_de_vallecas_san_diego",
              "san_fernando",
              "san_fulgencio",
              "san_ildefonso_hospital_real",
              "san_miguel_de_abona",
              "san_miguel_de_salinas",
              "san_pablo_santa_justa",
              "san_pedro_de_alcantara",
              "san_pedro_del_pinatar",
              "san_pedro_pueblo",
              "san_roque",
              "san_sebastian_donostia",
              "san_sebastian_de_los_reyes",
              "sanlucar_de_barrameda",
              "sant_adria_de_besos",
              "sant_andreu",
              "sant_boi_de_llobregat",
              "sant_cugat_del_valles",
              "sant_feliu_de_guixols",
              "sant_gervasi_galvany",
              "sant_joan_alacant",
              "sant_josep_de_sa_talaia",
              "sant_marti",
              "sant_pere_de_ribes",
              "sant_pere_santa_caterina_la_ribera",
              "sant_vicent_del_raspeig_san_vicente_del_raspeig",
              "santa_coloma_de_gramenet",
              "santa_cruz_de_tenerife",
              "santa_cruz_de_tenerife_capital",
              "santa_eularia_des_riu",
              "santa_fe",
              "roses_santa_margarida",
              "santa_marina_san_andres_san_pablo_san_lorenzo",
              "santa_pola",
              "calvia_santa_ponca",
              "santander",
              "santanyi",
              "a_coruna_santiago",
              "santiago_de_compostela",
              "santiago_del_teide",
              "sants_montjuic_sants",
              "sants_montjuic",
              "sanxenxo",
              "sarria_sant_gervasi",
              "sax",
              "seghers",
              "segovia",
              "segovia_capital",
              "segria",
              "calafell_segur_de_calafell",
              "selva",
              "selwo",
              "serrania_de_ronda",
              "serrania_media",
              "isla_de_mallorca_ses_salines",
              "sevilla",
              "sevilla_capital",
              "sierra_de_alcaraz_y_campo_de_montiel",
              "sierra_de_cadiz",
              "sierra_de_huelva",
              "sierra_morena_el_condado",
              "sierra_norte",
              "sierra_sur_sierra_magina",
              "sitges",
              "son_servera",
              "soria",
              "campo_de_gibraltar_sotogrande",
              "subbetica",
              "sueca",
              "castello_de_la_plana_sur",
              "soller",
              "toledo_talavera",
              "tarifa",
              "tarragona",
              "tarragona_capital",
              "tarragones",
              "tavernes_de_la_valldigna",
              "tenerife",
              "terra_cha_meira_a_fonsagrada",
              "terra_de_celanova",
              "terrassa",
              "teruel",
              "tetuan",
              "la_marina_alta_teulada",
              "tierra_de_badajoz",
              "tierra_de_barros",
              "tierra_de_campos_cerrato",
              "tierra_de_merida_vegas_bajas",
              "tierras_de_leon",
              "tobarra",
              "toledo",
              "tomelloso",
              "tordera",
              "torredembarra",
              "torredonjimeno",
              "torrejon_de_ardoz",
              "torrelavega",
              "torremolinos",
              "horta_oest_torrent",
              "torrevieja",
              "toledo_torrijos",
              "torroella_de_montgri",
              "torrox",
              "tortosa",
              "trasmiera",
              "navarra_nafarroa_tudela",
              "ubrique",
              "universidad_malasana",
              "urgell",
              "uribe_butroe",
              "madrid_capital_usera",
              "utrera",
              "val_aran",
              "valdepenas",
              "valladolid",
              "valladolid_capital",
              "valle_de_lecrin",
              "valle_del_almanzora",
              "valle_del_guadalhorce",
              "valle_del_nalon",
              "valle_medio_del_guadalquivir",
              "valles_pasiegos",
              "vallirana",
              "valles_occidental",
              "valles_oriental",
              "valencia",
              "valencia_capital",
              "valencia_capital_zona_urbana",
              "vega_del_guadalquivir",
              "vega_media",
              "_vegas_altas",
              "vegas_de_alagon",
              "vejer_de_la_frontera",
              "vera",
              "vic",
              "madrid_capital_vicalvaro",
              "vigo",
              "vila_real",
              "viladecans",
              "vilagarcia_de_arousa",
              "vilanova_i_la_geltru",
              "villa_de_otura",
              "villa_de_vallecas",
              "villanueva_de_la_serena",
              "villaverde_distrito",
              "villena",
              "vinalopo_mitja",
              "vinaros",
              "_vitoria_gasteiz",
              "vitoria_gasteiz_zona_urbana",
              "vizcaya_bizkaia",
              "velez_malaga",
              "vicar",
              "xabia_javea",
              "xativa",
              "yaiza",
              "zaidin_distrito",
              "zaidin_vergeles",
              "zamora",
              "zamora_capital",
              "zamora_tierra_del_pan",
              "zaragoza",
              "zaragoza_capital",
              "alicante_alacant_zona_norte",
              "alava_araba",
              "area_de_a_coruna",
              "area_de_almeria",
              "area_de_arenas_de_san_pedro",
              "area_de_astorga",
              "area_de_aviles",
              "area_de_baza",
              "area_de_betanzos",
              "area_de_bejar",
              "area_de_calatayud",
              "area_de_ciudad_rodrigo",
              "area_de_caceres",
              "area_de_ferrol",
              "area_de_granada",
              "area_de_guadix",
              "area_de_huelva",
              "area_de_jaen",
              "area_de_loja",
              "area_de_lugo",
              "area_de_ourense",
              "area_de_pamplona",
              "area_de_pontevedra",
              "area_de_salamanca",
              "area_de_santander",
              "area_de_segovia",
              "area_de_sevilla",
              "area_de_valladolid",
              "area_de_vigo",
              "area_de_zaragoza",
              "area_de_avila",
              "area_de_ecija",
              "area_del_mar_menor",
              "area_del_nora",
              "avila",
              "avila_capital",
              "ecija",
              "ubeda"
            ],
            "type": "string",
            "description": "Pick from pisos.com's own place list — provinces, comarcas, municipalities and the districts of the big cities. The number beside each name is how many adverts the portal had there when this list was built, so you can see what a run will be worth before you start it. A picked place always exists; a typed one does not, which is why this is a list and not a text box.",
            "default": "madrid_capital_zona_urbana"
          },
          "market": {
            "title": "🤝 Sale, rent or new build",
            "enum": [
              "sale",
              "rent",
              "newDevelopment"
            ],
            "type": "string",
            "description": "For sale and long-term rent are the two big markets. New developments are the promociones the portal lists separately — whole projects rather than individual flats. Seasonal and holiday lets are deliberately not offered: they sit behind a path the portal asks crawlers to leave alone.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏘️ Property type",
            "enum": [
              "pisos",
              "casas",
              "aticos",
              "duplexs",
              "estudios",
              "lofts",
              "fincas_rusticas",
              "garajes",
              "locales",
              "oficinas",
              "naves",
              "terrenos",
              "edificios",
              "trasteros"
            ],
            "type": "string",
            "description": "Flats is where almost all the stock is — 8,369 of Madrid Capital's adverts against 364 houses — but the commercial types are real markets too: the same city carries 1,056 retail units, 739 garages and 169 offices. Each type is a separate search on the portal, so pick the one you want rather than filtering afterwards.",
            "default": "pisos"
          },
          "maxResults": {
            "title": "🔢 How many adverts",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Stops the run once this many adverts have been collected. The portal itself will not go past 3,000 for one search no matter what you ask, so that is the ceiling here too — for a place with more stock than that, split the run by district, property type or price band. Thirty adverts arrive per page request.",
            "default": 300
          },
          "minPrice": {
            "title": "💵 Minimum price (EUR)",
            "type": "integer",
            "description": "Leave at 0 for no minimum. Monthly rent for the rent market, asking price for sale.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Maximum price (EUR)",
            "type": "integer",
            "description": "Leave at 0 for no maximum. Useful for splitting a search that would otherwise hit the portal's 3,000-advert ceiling.",
            "default": 0
          },
          "minRooms": {
            "title": "🛏️ Minimum bedrooms",
            "type": "integer",
            "description": "Leave at 0 to take any. Counts bedrooms as the advert states them, so a studio reports 0.",
            "default": 0
          },
          "minBathrooms": {
            "title": "🛁 Minimum bathrooms",
            "type": "integer",
            "description": "Leave at 0 to take any.",
            "default": 0
          },
          "minAreaM2": {
            "title": "📐 Minimum floor area (m²)",
            "type": "integer",
            "description": "Built area in square metres, as the advert states it. Leave at 0 to take any.",
            "default": 0
          },
          "maxAreaM2": {
            "title": "📏 Maximum floor area (m²)",
            "type": "integer",
            "description": "Leave at 0 to take any.",
            "default": 0
          },
          "sortBy": {
            "title": "↕️ Order the results",
            "enum": [
              "relevance",
              "asc",
              "desc",
              "m2-desc",
              "m2-asc",
              "hab-desc",
              "hab-asc",
              "fecharecientedesde-desc"
            ],
            "type": "string",
            "description": "The portal's own orderings. Worth more than it looks: because one search stops at 3,000 adverts, running the same place twice — once cheapest-first and once dearest-first — reaches twice as far into a market that is bigger than the ceiling.",
            "default": "relevance"
          },
          "includeDetails": {
            "title": "📄 Add the energy certificate and spec sheet",
            "type": "boolean",
            "description": "Opens every advert the search found on its own page and adds the energy certificate, usable floor area, condition, orientation, heating, age, community charge and the agency's reference. One extra page request per advert, billed as a detail row, so turn it on when you need those fields and leave it off when you do not.",
            "default": false
          },
          "listingUrls": {
            "title": "📄 Advert URLs to open",
            "type": "array",
            "description": "For the detail operation: pisos.com advert links, for example https://www.pisos.com/comprar/piso-gaztambide-65098413759_100500/. Paste them, upload a CSV or point at a Google Sheet.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchUrls": {
            "title": "🔗 Search URLs (optional)",
            "type": "array",
            "description": "Already have a pisos.com search open in your browser? Paste the address here and the actor will walk it exactly as it stands, filters and all. Anything pasted here is used instead of the place and filters above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}