[{"data":1,"prerenderedAt":1205},["ShallowReactive",2],{"page:\u002Fproperties\u002Flist":3,"operation:listProperties":603},{"id":4,"title":5,"body":6,"description":593,"extension":594,"meta":595,"navigation":596,"operation":597,"path":598,"rawbody":599,"seo":600,"stem":601,"__hash__":602},"docs\u002Fproperties\u002Flist.md","List properties",{"type":7,"value":8,"toc":588},"minimark",[9,13,18,30,193,207,211,224,255,258,268,272,282,503,560,575,584],[10,11,12],"p",{},"Returns a page of the public catalogue and the total number of matching properties. Without filters, it returns every public property, most recently updated first.",[14,15,17],"h2",{"id":16},"filters","Filters",[10,19,20,21,25,26,29],{},"Filters combine with AND and use the same vocabulary as Vestta. ",[22,23,24],"code",{},"operation"," and ",[22,27,28],{},"city"," ignore case; the other text filters must match exactly:",[31,32,33,49],"table",{},[34,35,36],"thead",{},[37,38,39,43,46],"tr",{},[40,41,42],"th",{},"Filter",[40,44,45],{},"Match",[40,47,48],{},"Example",[50,51,52,74,89,108,122,137,158,173],"tbody",{},[37,53,54,59,69],{},[55,56,57],"td",{},[22,58,24],{},[55,60,61,62,65,66],{},"Contains the value, so ",[22,63,64],{},"alquiler"," also matches ",[22,67,68],{},"venta,alquiler",[55,70,71],{},[22,72,73],{},"operation=alquiler",[37,75,76,81,84],{},[55,77,78],{},[22,79,80],{},"type",[55,82,83],{},"Exact, lowercase key",[55,85,86],{},[22,87,88],{},"type=apartamento",[37,90,91,96,103],{},[55,92,93],{},[22,94,95],{},"subtype",[55,97,98,99],{},"Exact, using the subtype ",[100,101,102],"strong",{},"key",[55,104,105],{},[22,106,107],{},"subtype=atico",[37,109,110,114,117],{},[55,111,112],{},[22,113,28],{},[55,115,116],{},"Exact, ignoring case",[55,118,119],{},[22,120,121],{},"city=Madrid",[37,123,124,129,132],{},[55,125,126],{},[22,127,128],{},"status",[55,130,131],{},"Exact",[55,133,134],{},[22,135,136],{},"status=reservada",[37,138,139,144,153],{},[55,140,141],{},[22,142,143],{},"rental_type",[55,145,146,149,150],{},[22,147,148],{},"temporal"," or ",[22,151,152],{},"anual",[55,154,155],{},[22,156,157],{},"rental_type=anual",[37,159,160,165,168],{},[55,161,162],{},[22,163,164],{},"min_bedrooms",[55,166,167],{},"At least",[55,169,170],{},[22,171,172],{},"min_bedrooms=2",[37,174,175,180,188],{},[55,176,177],{},[22,178,179],{},"is_featured",[55,181,182,149,185],{},[22,183,184],{},"true",[22,186,187],{},"false",[55,189,190],{},[22,191,192],{},"is_featured=true",[10,194,195,196,198,199,202,203,206],{},"Note that ",[22,197,95],{}," filters by key (",[22,200,201],{},"atico",") while responses return a display label (",[22,204,205],{},"Ático",").",[14,208,210],{"id":209},"prices","Prices",[10,212,213,216,217,25,220,223],{},[22,214,215],{},"min_price",", ",[22,218,219],{},"max_price",[22,221,222],{},"sort"," compare the price of the operation you filter by:",[225,226,227,237,246],"ul",{},[228,229,230,232,233,236],"li",{},[22,231,73],{}," → the monthly rent, ",[22,234,235],{},"specs.price_calc.price_alq",".",[228,238,239,242,243,236],{},[22,240,241],{},"operation=traspaso"," → the transfer price, ",[22,244,245],{},"specs.price_calc.price_trasp",[228,247,248,249,251,252,236],{},"any other value, or no ",[22,250,24],{}," → the sale price, ",[22,253,254],{},"price",[10,256,257],{},"So a rental search in Madrid between 800 and 1,200 € per month, cheapest first, is:",[259,260,266],"pre",{"className":261,"code":263,"language":264,"meta":265},[262],"language-text","GET \u002Fv1\u002Fproperties?operation=alquiler&city=Madrid&min_price=800&max_price=1200&sort=price_asc\n","text","",[22,267,263],{"__ignoreMap":265},[14,269,271],{"id":270},"map-areas","Map areas",[10,273,274,277,278,281],{},[22,275,276],{},"locations"," restricts results to areas drawn on a map. It is a JSON array, URL-encoded into the query string. Each element is one area; a property matches if it falls inside ",[100,279,280],{},"any"," of them. Three shapes are supported:",[259,283,287],{"className":284,"code":285,"language":286,"meta":265,"style":265},"language-json shiki shiki-themes github-light","[\n  { \"geometry\": { \"type\": \"circle\", \"center\": { \"lat\": 40.4168, \"lng\": -3.7038 }, \"radius\": 1500 } },\n  { \"geometry\": { \"type\": \"polygon\", \"coordinates\": [\n    { \"lat\": 40.43, \"lng\": -3.71 }, { \"lat\": 40.43, \"lng\": -3.68 }, { \"lat\": 40.41, \"lng\": -3.69 }\n  ] } },\n  { \"type\": \"point\", \"position\": { \"lat\": 39.4699, \"lng\": -0.3763 }, \"radius\": 800 }\n]\n","json",[22,288,289,298,360,384,445,451,497],{"__ignoreMap":265},[290,291,294],"span",{"class":292,"line":293},"line",1,[290,295,297],{"class":296},"sgsFI","[\n",[290,299,301,304,308,311,314,317,321,323,326,328,331,333,336,338,341,343,346,349,352,354,357],{"class":292,"line":300},2,[290,302,303],{"class":296},"  { ",[290,305,307],{"class":306},"sYu0t","\"geometry\"",[290,309,310],{"class":296},": { ",[290,312,313],{"class":306},"\"type\"",[290,315,316],{"class":296},": ",[290,318,320],{"class":319},"sYBdl","\"circle\"",[290,322,216],{"class":296},[290,324,325],{"class":306},"\"center\"",[290,327,310],{"class":296},[290,329,330],{"class":306},"\"lat\"",[290,332,316],{"class":296},[290,334,335],{"class":306},"40.4168",[290,337,216],{"class":296},[290,339,340],{"class":306},"\"lng\"",[290,342,316],{"class":296},[290,344,345],{"class":306},"-3.7038",[290,347,348],{"class":296}," }, ",[290,350,351],{"class":306},"\"radius\"",[290,353,316],{"class":296},[290,355,356],{"class":306},"1500",[290,358,359],{"class":296}," } },\n",[290,361,363,365,367,369,371,373,376,378,381],{"class":292,"line":362},3,[290,364,303],{"class":296},[290,366,307],{"class":306},[290,368,310],{"class":296},[290,370,313],{"class":306},[290,372,316],{"class":296},[290,374,375],{"class":319},"\"polygon\"",[290,377,216],{"class":296},[290,379,380],{"class":306},"\"coordinates\"",[290,382,383],{"class":296},": [\n",[290,385,387,390,392,394,397,399,401,403,406,409,411,413,415,417,419,421,424,426,428,430,433,435,437,439,442],{"class":292,"line":386},4,[290,388,389],{"class":296},"    { ",[290,391,330],{"class":306},[290,393,316],{"class":296},[290,395,396],{"class":306},"40.43",[290,398,216],{"class":296},[290,400,340],{"class":306},[290,402,316],{"class":296},[290,404,405],{"class":306},"-3.71",[290,407,408],{"class":296}," }, { ",[290,410,330],{"class":306},[290,412,316],{"class":296},[290,414,396],{"class":306},[290,416,216],{"class":296},[290,418,340],{"class":306},[290,420,316],{"class":296},[290,422,423],{"class":306},"-3.68",[290,425,408],{"class":296},[290,427,330],{"class":306},[290,429,316],{"class":296},[290,431,432],{"class":306},"40.41",[290,434,216],{"class":296},[290,436,340],{"class":306},[290,438,316],{"class":296},[290,440,441],{"class":306},"-3.69",[290,443,444],{"class":296}," }\n",[290,446,448],{"class":292,"line":447},5,[290,449,450],{"class":296},"  ] } },\n",[290,452,454,456,458,460,463,465,468,470,472,474,477,479,481,483,486,488,490,492,495],{"class":292,"line":453},6,[290,455,303],{"class":296},[290,457,313],{"class":306},[290,459,316],{"class":296},[290,461,462],{"class":319},"\"point\"",[290,464,216],{"class":296},[290,466,467],{"class":306},"\"position\"",[290,469,310],{"class":296},[290,471,330],{"class":306},[290,473,316],{"class":296},[290,475,476],{"class":306},"39.4699",[290,478,216],{"class":296},[290,480,340],{"class":306},[290,482,316],{"class":296},[290,484,485],{"class":306},"-0.3763",[290,487,348],{"class":296},[290,489,351],{"class":306},[290,491,316],{"class":296},[290,493,494],{"class":306},"800",[290,496,444],{"class":296},[290,498,500],{"class":292,"line":499},7,[290,501,502],{"class":296},"]\n",[225,504,505,518,543],{},[228,506,507,510,511,25,514,517],{},[100,508,509],{},"Circle"," — ",[22,512,513],{},"center",[22,515,516],{},"radius"," in metres.",[228,519,520,523,524,527,528,531,532,535,536,539,540,236],{},[100,521,522],{},"Polygon"," — at least three ",[22,525,526],{},"coordinates","; ",[22,529,530],{},"rectangle"," is accepted as a synonym. Coordinates can also be ",[22,533,534],{},"[lat, lng]"," pairs, and ",[22,537,538],{},"lon"," is accepted in place of ",[22,541,542],{},"lng",[228,544,545,548,549,552,553,555,556,559],{},[100,546,547],{},"Point"," — a ",[22,550,551],{},"position"," and an optional ",[22,554,516],{}," in metres, 500 by default. ",[22,557,558],{},"marker"," is a synonym.",[10,561,562,563,566,567,570,571,574],{},"Areas are matched against the ",[100,564,565],{},"published"," coordinates: rounded ones for approximate locations, none for hidden ones. Approximate properties can match an area up to about 1 km away from their real position, and properties with a hidden location never match an area. Elements without a recognised geometry — for example ",[22,568,569],{},"{ \"name\": \"Madrid\" }"," — are ignored, and so is the whole parameter if it is not valid JSON. The ",[22,572,573],{},"filters.locations"," field of the response echoes the areas that were applied, so you can check what was understood.",[576,577,578],"tip",{},[10,579,580,581,583],{},"Most HTTP clients URL-encode query parameters for you: pass the JSON string as the value of ",[22,582,276],{}," instead of encoding it by hand.",[585,586,587],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":265,"searchDepth":362,"depth":362,"links":589},[590,591,592],{"id":16,"depth":300,"text":17},{"id":209,"depth":300,"text":210},{"id":270,"depth":300,"text":271},"Return the public property catalogue, filtered, sorted and paginated.","md",{},true,"listProperties","\u002Fproperties\u002Flist","---\ntitle: List properties\ndescription: Return the public property catalogue, filtered, sorted and paginated.\noperation: listProperties\n---\n\nReturns a page of the public catalogue and the total number of matching properties. Without filters, it returns every public property, most recently updated first.\n\n## Filters\n\nFilters combine with AND and use the same vocabulary as Vestta. `operation` and `city` ignore case; the other text filters must match exactly:\n\n| Filter | Match | Example |\n| --- | --- | --- |\n| `operation` | Contains the value, so `alquiler` also matches `venta,alquiler` | `operation=alquiler` |\n| `type` | Exact, lowercase key | `type=apartamento` |\n| `subtype` | Exact, using the subtype **key** | `subtype=atico` |\n| `city` | Exact, ignoring case | `city=Madrid` |\n| `status` | Exact | `status=reservada` |\n| `rental_type` | `temporal` or `anual` | `rental_type=anual` |\n| `min_bedrooms` | At least | `min_bedrooms=2` |\n| `is_featured` | `true` or `false` | `is_featured=true` |\n\nNote that `subtype` filters by key (`atico`) while responses return a display label (`Ático`).\n\n## Prices\n\n`min_price`, `max_price` and `sort` compare the price of the operation you filter by:\n\n- `operation=alquiler` → the monthly rent, `specs.price_calc.price_alq`.\n- `operation=traspaso` → the transfer price, `specs.price_calc.price_trasp`.\n- any other value, or no `operation` → the sale price, `price`.\n\nSo a rental search in Madrid between 800 and 1,200 € per month, cheapest first, is:\n\n```text\nGET \u002Fv1\u002Fproperties?operation=alquiler&city=Madrid&min_price=800&max_price=1200&sort=price_asc\n```\n\n## Map areas\n\n`locations` restricts results to areas drawn on a map. It is a JSON array, URL-encoded into the query string. Each element is one area; a property matches if it falls inside **any** of them. Three shapes are supported:\n\n```json\n[\n  { \"geometry\": { \"type\": \"circle\", \"center\": { \"lat\": 40.4168, \"lng\": -3.7038 }, \"radius\": 1500 } },\n  { \"geometry\": { \"type\": \"polygon\", \"coordinates\": [\n    { \"lat\": 40.43, \"lng\": -3.71 }, { \"lat\": 40.43, \"lng\": -3.68 }, { \"lat\": 40.41, \"lng\": -3.69 }\n  ] } },\n  { \"type\": \"point\", \"position\": { \"lat\": 39.4699, \"lng\": -0.3763 }, \"radius\": 800 }\n]\n```\n\n- **Circle** — `center` and `radius` in metres.\n- **Polygon** — at least three `coordinates`; `rectangle` is accepted as a synonym. Coordinates can also be `[lat, lng]` pairs, and `lon` is accepted in place of `lng`.\n- **Point** — a `position` and an optional `radius` in metres, 500 by default. `marker` is a synonym.\n\nAreas are matched against the **published** coordinates: rounded ones for approximate locations, none for hidden ones. Approximate properties can match an area up to about 1 km away from their real position, and properties with a hidden location never match an area. Elements without a recognised geometry — for example `{ \"name\": \"Madrid\" }` — are ignored, and so is the whole parameter if it is not valid JSON. The `filters.locations` field of the response echoes the areas that were applied, so you can check what was understood.\n\n::tip\nMost HTTP clients URL-encode query parameters for you: pass the JSON string as the value of `locations` instead of encoding it by hand.\n::\n",{"title":5,"description":593},"properties\u002Flist","UfE5SjHoFEoyEsviJrAlDPI02Tp7nJVZOb49PBv6tSU",{"id":597,"method":604,"path":605,"fullPath":606,"summary":607,"tag":608,"scopes":609,"url":611,"description":612,"pathParams":613,"queryParams":614,"headerParams":673,"responses":674,"samples":1188,"docsPath":598},"GET","\u002Fproperties","\u002Fv1\u002Fproperties","List published properties","Properties",[610],"properties:read","https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties","Lists the public catalogue. Requires the `properties:read` scope.",[],[615,624,630,634,637,641,644,647,650,653,657,660,663,667],{"name":616,"type":617,"required":618,"nullable":618,"description":619,"defaultValue":620,"constraints":621},"limit","integer",false,"Maximum number of properties to return.","100",[622,623],"≥ 1","≤ 1000",{"name":625,"type":617,"required":618,"nullable":618,"description":626,"defaultValue":627,"constraints":628},"offset","Number of matching properties to skip before returning results.","0",[629],"≥ 0",{"name":128,"type":631,"required":618,"nullable":596,"description":632,"constraints":633},"string","Exact commercial status match. Only explicitly published properties are returned; drafts are excluded.",[],{"name":24,"type":631,"required":618,"nullable":596,"description":635,"constraints":636},"Operation: `venta`, `alquiler` or `traspaso`. Case-insensitive partial match, so properties offered for several operations match each of them. Also selects which price `min_price`, `max_price` and `sort` use.",[],{"name":143,"type":631,"required":618,"nullable":596,"description":638,"enumValues":639,"constraints":640},"Rental type: `temporal` for temporary rentals, `anual` for long-term rentals that are neither temporary nor holiday rentals.",[148,152],[],{"name":80,"type":631,"required":618,"nullable":596,"description":642,"constraints":643},"Exact property type: `apartamento`, `casa`, `local`, `nave`, `almacenaje`, `oficina`, `terreno`, `aparcamiento` or `edificio`.",[],{"name":95,"type":631,"required":618,"nullable":596,"description":645,"constraints":646},"Exact subtype key as stored in Vestta, for example `atico`, `duplex`, `chalet` or `villa`. Responses return the subtype as a display label.",[],{"name":28,"type":631,"required":618,"nullable":596,"description":648,"constraints":649},"City name. Case-insensitive exact match.",[],{"name":276,"type":631,"required":618,"nullable":596,"description":651,"constraints":652},"URL-encoded JSON array of map areas. Supports `circle` (center + radius in metres), `polygon`\u002F`rectangle` (coordinates) and `point`\u002F`marker` (500 m default radius). Invalid JSON is ignored.",[],{"name":215,"type":654,"required":618,"nullable":596,"description":655,"constraints":656},"number","Minimum price, inclusive. Uses the rent or transfer price when `operation` is `alquiler` or `traspaso`.",[629],{"name":219,"type":654,"required":618,"nullable":596,"description":658,"constraints":659},"Maximum price, inclusive. Uses the rent or transfer price when `operation` is `alquiler` or `traspaso`.",[629],{"name":164,"type":617,"required":618,"nullable":596,"description":661,"constraints":662},"Minimum number of bedrooms, inclusive.",[629],{"name":179,"type":664,"required":618,"nullable":596,"description":665,"constraints":666},"boolean","`true` returns only featured properties; `false` only non-featured ones.",[],{"name":222,"type":631,"required":618,"nullable":596,"description":668,"enumValues":669,"constraints":672},"Sort by price (properties without a price go last). When omitted, results are ordered by last update, newest first.",[670,671],"price_asc","price_desc",[],[],[675,1168,1172,1175,1178,1181,1185],{"status":676,"description":677,"schemaName":678,"fields":679,"example":1166,"exampleHtml":1167},"200","Successful response.","PropertyListResponse",[680,684,1148,1152,1155,1158,1162],{"name":128,"type":631,"required":596,"nullable":618,"enumValues":681,"constraints":683},[682],"ok",[],{"name":685,"type":686,"required":596,"nullable":618,"description":687,"constraints":688,"children":689},"data","array of objects","The requested page of properties.",[],[690,694,697,700,703,707,710,714,717,720,724,728,748,770,1096,1115,1118,1122,1124,1127,1130,1134,1137,1140,1144],{"name":691,"type":617,"required":596,"nullable":618,"description":692,"constraints":693},"id","Numeric property ID. Use it with Retrieve a property.",[],{"name":24,"type":631,"required":618,"nullable":596,"description":695,"constraints":696},"Operations the property is offered for: `venta`, `alquiler`, `traspaso`, or several joined by commas (e.g. `venta,alquiler`).",[],{"name":80,"type":631,"required":618,"nullable":596,"description":698,"constraints":699},"Property type key, e.g. `apartamento`, `casa`, `local`, `oficina`, `terreno` or `edificio`.",[],{"name":95,"type":631,"required":618,"nullable":596,"description":701,"constraints":702},"Subtype as a Spanish display label (e.g. `Ático`, `Local Comercial`), or `Sin Especificar`.",[],{"name":704,"type":631,"required":618,"nullable":596,"description":705,"constraints":706},"title","Listing title. May be empty.",[],{"name":254,"type":654,"required":618,"nullable":596,"description":708,"constraints":709},"Sale price in euros. Rent and transfer prices are in `specs.price_calc`.",[],{"name":711,"type":654,"required":618,"nullable":596,"description":712,"constraints":713},"size_total","Total size in m².",[],{"name":715,"type":617,"required":618,"nullable":596,"constraints":716},"bedrooms",[],{"name":718,"type":617,"required":618,"nullable":596,"constraints":719},"bathrooms",[],{"name":721,"type":631,"required":618,"nullable":596,"description":722,"constraints":723},"postal_code","Omitted when the property's location is hidden.",[],{"name":725,"type":631,"required":618,"nullable":596,"description":726,"constraints":727},"description","Listing description as HTML.",[],{"name":729,"type":686,"required":618,"nullable":618,"description":730,"constraints":731,"children":732},"images","Opaque public copies. New photos are watermarked; legacy copies may remain unmarked. Original paths and IDs are never included.",[],[733,735,739,743,746],{"name":691,"type":631,"required":596,"nullable":618,"constraints":734},[],{"name":736,"type":631,"required":596,"nullable":618,"description":737,"constraints":738},"url","Permanent opaque public-copy URL. New photos are watermarked; migrated legacy copies may remain unmarked. Never an original or upload URL.",[],{"name":740,"type":617,"required":618,"nullable":618,"defaultValue":741,"constraints":742},"order","1",[],{"name":744,"type":664,"required":618,"nullable":618,"defaultValue":187,"constraints":745},"is_primary",[],{"name":704,"type":631,"required":618,"nullable":618,"defaultValue":265,"constraints":747},[],{"name":749,"type":686,"required":618,"nullable":596,"description":750,"constraints":751,"children":752},"videos","Processed public videos.",[],[753,755,757,759,761,764,767],{"name":691,"type":631,"required":596,"nullable":618,"constraints":754},[],{"name":704,"type":631,"required":618,"nullable":596,"constraints":756},[],{"name":740,"type":617,"required":618,"nullable":596,"constraints":758},[],{"name":736,"type":631,"required":618,"nullable":596,"constraints":760},[],{"name":762,"type":631,"required":618,"nullable":596,"constraints":763},"hls_url",[],{"name":765,"type":631,"required":618,"nullable":596,"constraints":766},"thumbnail_url",[],{"name":768,"type":631,"required":618,"nullable":596,"constraints":769},"embed_url",[],{"name":771,"type":772,"required":618,"nullable":596,"description":773,"constraints":774,"children":775},"specs","PublicationSpecs","Listing characteristics. Keys depend on the property type. `price_calc.price_alq` and `price_calc.price_trasp` hold the monthly rent and transfer price; `address_privacy` is `public`, `approximate` or `hidden`; `building_name` is only present when the address is public.",[],[776,839,843,847,851,855,859,863,867,871,875,879,883,887,891,895,899,903,907,911,916,920,924,928,932,936,939,943,947,951,955,959,963,967,971,975,979,982,986,990,994,998,1002,1006,1010,1014,1018,1022,1037,1063,1081,1092],{"name":777,"type":778,"required":618,"nullable":596,"description":779,"constraints":780,"children":781},"translations","TranslationSpec","Traducciones de las descripciones",[],[782,794,803,812,821,830],{"name":783,"type":784,"required":618,"nullable":596,"description":785,"constraints":786,"children":787},"ca","TranslatedDescription","Traduccion en catalán de la descripción",[],[788,791],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":790},"Título de la descripción",[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":793},"Descripción",[],{"name":795,"type":784,"required":618,"nullable":596,"description":796,"constraints":797,"children":798},"en","Traduccion en ingles de la descripción",[],[799,801],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":800},[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":802},[],{"name":804,"type":784,"required":618,"nullable":596,"description":805,"constraints":806,"children":807},"fr","Traduccion en francés de la descripción",[],[808,810],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":809},[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":811},[],{"name":813,"type":784,"required":618,"nullable":596,"description":814,"constraints":815,"children":816},"de","Traduccion en alemán de la descripción",[],[817,819],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":818},[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":820},[],{"name":822,"type":784,"required":618,"nullable":596,"description":823,"constraints":824,"children":825},"pt","Traduccion en portuges de la descripción",[],[826,828],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":827},[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":829},[],{"name":831,"type":784,"required":618,"nullable":596,"description":832,"constraints":833,"children":834},"it","Traduccion en italiano de la descripción",[],[835,837],{"name":704,"type":631,"required":618,"nullable":596,"description":789,"constraints":836},[],{"name":725,"type":631,"required":618,"nullable":596,"description":792,"constraints":838},[],{"name":840,"type":654,"required":618,"nullable":596,"description":841,"constraints":842},"usable_area","Metros cuadrados útiles",[629],{"name":844,"type":654,"required":618,"nullable":596,"description":845,"constraints":846},"plot_size","Metros cuadrados parcela",[629],{"name":848,"type":654,"required":618,"nullable":596,"description":849,"constraints":850},"size_built","Superficie construida",[629],{"name":852,"type":654,"required":618,"nullable":596,"description":853,"constraints":854},"porch_size","Metros cuadrados porche",[629],{"name":856,"type":654,"required":618,"nullable":596,"description":857,"constraints":858},"size_terraces","Metros cuadrados terrazas",[629],{"name":860,"type":654,"required":618,"nullable":596,"description":861,"constraints":862},"attic_size","Metros cuadrados ático",[629],{"name":864,"type":654,"required":618,"nullable":596,"description":865,"constraints":866},"storage_dimensions","Dimensiones del trastero",[],{"name":868,"type":617,"required":618,"nullable":596,"description":869,"constraints":870},"doble_bedrooms","Número de habitaciones dobles",[629],{"name":872,"type":617,"required":618,"nullable":596,"description":873,"constraints":874},"suite_bathrooms","Número de baños en suite",[629],{"name":876,"type":617,"required":618,"nullable":596,"description":877,"constraints":878},"num_terraces","Número de terrazas",[629],{"name":880,"type":631,"required":618,"nullable":596,"description":881,"constraints":882},"conservation","Estado de conservación",[],{"name":884,"type":631,"required":618,"nullable":596,"description":885,"constraints":886},"floor","Planta canónica para portales",[],{"name":888,"type":617,"required":618,"nullable":596,"description":889,"constraints":890},"house_floors","Número de plantas de una casa",[622],{"name":892,"type":664,"required":618,"nullable":596,"description":893,"constraints":894},"elevator","Tiene ascensor (0\u002F1 o Sí\u002FNo)",[],{"name":896,"type":631,"required":618,"nullable":596,"description":897,"constraints":898},"views","Vistas de la propiedad",[],{"name":900,"type":631,"required":618,"nullable":596,"description":901,"constraints":902},"orientation","Orientación (norte, sur, este, oeste)",[],{"name":904,"type":631,"required":618,"nullable":596,"description":905,"constraints":906},"energy_certificate","Certificado energético A-G",[],{"name":908,"type":631,"required":618,"nullable":596,"description":909,"constraints":910},"emissions","Emisiones A-G",[],{"name":912,"type":654,"required":618,"nullable":596,"description":913,"constraints":914},"energy_consumption_value","Consumo (kWh\u002Fm² año)",[622,915],"≤ 999",{"name":917,"type":654,"required":618,"nullable":596,"description":918,"constraints":919},"emissions_value","Emisiones (kg CO₂\u002Fm² año)",[622,915],{"name":921,"type":654,"required":618,"nullable":596,"description":922,"constraints":923},"height","Altura del local",[],{"name":925,"type":654,"required":618,"nullable":596,"description":926,"constraints":927},"facade_meters","Metros de fachada",[],{"name":929,"type":654,"required":618,"nullable":596,"description":930,"constraints":931},"meters_showcase","Metros de escaparate",[],{"name":933,"type":631,"required":618,"nullable":596,"description":934,"constraints":935},"entrace_type","Tipo de entrada de la oficina",[],{"name":551,"type":631,"required":618,"nullable":596,"description":937,"constraints":938},"1ª\u002F2ª Linea del mar",[],{"name":940,"type":617,"required":618,"nullable":596,"description":941,"constraints":942},"offices","Número de despachos",[629],{"name":944,"type":617,"required":618,"nullable":596,"description":945,"constraints":946},"meeting_rooms","Número de salas de reuniones",[629],{"name":948,"type":631,"required":618,"nullable":596,"description":949,"constraints":950},"camino","Tipo de suelo",[],{"name":952,"type":631,"required":618,"nullable":596,"description":953,"constraints":954},"terrain_extension","Tamaño (Grande\u002FPequeño)",[],{"name":956,"type":631,"required":618,"nullable":596,"description":957,"constraints":958},"topography","Topografía del terreno",[],{"name":960,"type":617,"required":618,"nullable":596,"description":961,"constraints":962},"num_seats","Número de plazas",[629],{"name":964,"type":631,"required":618,"nullable":596,"description":965,"constraints":966},"dimensions","Dimensiones del aparcamiento",[],{"name":968,"type":631,"required":618,"nullable":596,"description":969,"constraints":970},"turistic_license","Licencia turística",[],{"name":972,"type":617,"required":618,"nullable":596,"description":973,"constraints":974},"construction_year","Año de construcción",[],{"name":976,"type":631,"required":618,"nullable":596,"description":977,"constraints":978},"exposure","Interior o Exterior",[],{"name":585,"type":631,"required":618,"nullable":596,"description":980,"constraints":981},"Conservación",[],{"name":983,"type":617,"required":618,"nullable":596,"description":984,"constraints":985},"num_viviendas","Número de viviendas",[],{"name":987,"type":617,"required":618,"nullable":596,"description":988,"constraints":989},"num_locales","Número de locales",[],{"name":991,"type":617,"required":618,"nullable":596,"description":992,"constraints":993},"num_ascensores","Número de ascensores",[],{"name":995,"type":617,"required":618,"nullable":596,"description":996,"constraints":997},"num_parkings","Número de parkings incluidos",[629],{"name":999,"type":617,"required":618,"nullable":596,"description":1000,"constraints":1001},"num_floors","Número de plantas",[],{"name":1003,"type":664,"required":618,"nullable":596,"description":1004,"constraints":1005},"luxury_property","Propiedad de lujo",[],{"name":1007,"type":664,"required":618,"nullable":596,"description":1008,"constraints":1009},"holiday_renting","Alquiler vacacional",[],{"name":1011,"type":664,"required":618,"nullable":596,"description":1012,"constraints":1013},"temporal_renting","Alquiler temporal",[],{"name":1015,"type":664,"required":618,"nullable":596,"description":1016,"constraints":1017},"purchase_option_rental","Alquiler con opción a compra",[],{"name":1019,"type":631,"required":618,"nullable":596,"description":1020,"constraints":1021},"address_privacy","Privacidad de la ubicación en portales: public | approximate | hidden",[],{"name":1023,"type":1024,"required":618,"nullable":596,"description":1025,"constraints":1026,"children":1027},"activities","ActivitiesSpec","Actividades permitidas",[],[1028,1033],{"name":1029,"type":1030,"required":618,"nullable":618,"description":1031,"constraints":1032},"predefined","array of strings","Actividades predefinidas",[],{"name":1034,"type":1030,"required":618,"nullable":618,"description":1035,"constraints":1036},"custom","Actividades personalizadas",[],{"name":1038,"type":1039,"required":618,"nullable":596,"description":1040,"constraints":1041,"children":1042},"num_entrances","NumEntrancesSpec","Número de entradas",[],[1043,1047,1051,1055,1059],{"name":1044,"type":617,"required":618,"nullable":618,"description":1045,"defaultValue":627,"constraints":1046},"total","Total de entradas",[629],{"name":1048,"type":617,"required":618,"nullable":618,"description":1049,"defaultValue":627,"constraints":1050},"peaton_entrances","Entradas de peatones",[629],{"name":1052,"type":617,"required":618,"nullable":618,"description":1053,"defaultValue":627,"constraints":1054},"moto_entrances","Entradas de motos",[629],{"name":1056,"type":617,"required":618,"nullable":618,"description":1057,"defaultValue":627,"constraints":1058},"van_entrances","Entradas de furgoneta",[629],{"name":1060,"type":617,"required":618,"nullable":618,"description":1061,"defaultValue":627,"constraints":1062},"car_entrances","Entradas de coche",[629],{"name":1064,"type":1065,"required":618,"nullable":596,"description":1066,"constraints":1067,"children":1068},"floor_breakdown","FloorBreakdownSpec","Desglose de plantas",[],[1069,1073,1077],{"name":1070,"type":617,"required":618,"nullable":618,"description":1071,"defaultValue":627,"constraints":1072},"base_floor","Metros ² de la planta baja",[],{"name":1074,"type":617,"required":618,"nullable":618,"description":1075,"defaultValue":627,"constraints":1076},"first_floor","Metros ² de la primera planta",[],{"name":1078,"type":617,"required":618,"nullable":618,"description":1079,"defaultValue":627,"constraints":1080},"second_floor","Metros ² de la segunda planta",[],{"name":1082,"type":1083,"required":618,"nullable":596,"constraints":1084,"children":1085},"price_calc","PublicPrices",[],[1086,1089],{"name":1087,"type":654,"required":618,"nullable":596,"constraints":1088},"price_alq",[629],{"name":1090,"type":654,"required":618,"nullable":596,"constraints":1091},"price_trasp",[629],{"name":1093,"type":631,"required":618,"nullable":596,"description":1094,"constraints":1095},"building_name","Published only when address privacy is public.",[],{"name":1097,"type":686,"required":618,"nullable":596,"description":1098,"constraints":1099,"children":1100},"features","Typed amenities. `label` is a display string; `key` is stable.",[],[1101,1104,1108,1112],{"name":102,"type":631,"required":596,"nullable":618,"constraints":1102},[1103],"1–100 chars",{"name":1105,"type":631,"required":596,"nullable":618,"constraints":1106},"label",[1107],"1–200 chars",{"name":1109,"type":1110,"required":596,"nullable":618,"constraints":1111},"value","string | boolean | integer | number",[],{"name":1113,"type":664,"required":618,"nullable":618,"defaultValue":187,"constraints":1114},"isextra",[],{"name":128,"type":631,"required":618,"nullable":596,"description":1116,"constraints":1117},"Commercial status of the explicitly published property. Drafts are never returned.",[],{"name":1119,"type":631,"required":618,"nullable":596,"description":1120,"constraints":1121},"address","Follows the property's address privacy: the full address when public, the approximate address when approximate, omitted when hidden.",[],{"name":28,"type":631,"required":618,"nullable":596,"constraints":1123},[],{"name":1125,"type":631,"required":618,"nullable":596,"constraints":1126},"province",[],{"name":1128,"type":631,"required":618,"nullable":596,"constraints":1129},"country",[],{"name":1131,"type":654,"required":618,"nullable":596,"description":1132,"constraints":1133},"lat","Latitude in decimal degrees. Exact when the address is public, rounded to 2 decimals (about 1 km) when approximate, omitted when hidden.",[],{"name":538,"type":654,"required":618,"nullable":596,"description":1135,"constraints":1136},"Longitude in decimal degrees, with the same precision rules as `lat`.",[],{"name":179,"type":664,"required":618,"nullable":596,"description":1138,"constraints":1139},"Whether the business marked the property as featured.",[],{"name":1141,"type":631,"required":618,"nullable":596,"description":1142,"constraints":1143},"created_at","ISO 8601 timestamp with UTC offset.",[],{"name":1145,"type":631,"required":618,"nullable":596,"description":1146,"constraints":1147},"updated_at","ISO 8601 timestamp with UTC offset. The default sort key.",[],{"name":1149,"type":617,"required":596,"nullable":618,"description":1150,"constraints":1151},"count","Total number of properties matching the filters, across all pages.",[],{"name":616,"type":617,"required":596,"nullable":618,"description":1153,"constraints":1154},"The `limit` that was applied.",[],{"name":625,"type":617,"required":596,"nullable":618,"description":1156,"constraints":1157},"The `offset` that was applied.",[],{"name":16,"type":1159,"required":596,"nullable":618,"description":1160,"constraints":1161},"object","Echo of the filters that were applied; `null` for filters that were not sent. `locations` contains only the areas that were understood.",[],{"name":1163,"type":631,"required":618,"nullable":596,"description":1164,"constraints":1165},"authenticated_as","Name of the business that owns the API key.",[],"{\n  \"status\": \"ok\",\n  \"data\": [\n    {\n      \"id\": 1355,\n      \"operation\": \"traspaso,alquiler\",\n      \"type\": \"local\",\n      \"subtype\": \"Local Comercial\",\n      \"title\": \"Local comercial en el centro\",\n      \"price\": 0,\n      \"size_total\": 120,\n      \"bedrooms\": 0,\n      \"bathrooms\": 1,\n      \"postal_code\": \"07820\",\n      \"description\": \"\u003Ch2>Características del local\u003C\u002Fh2>\u003Cp>Superficie total de 120 m² en planta baja…\u003C\u002Fp>\",\n      \"images\": [\n        {\n          \"id\": \"7eac604ad45147d19c7cedb2a10569aa\",\n          \"url\": \"https:\u002F\u002Fcdn.vestta.io\u002Fmedia\u002F7eac604ad45147d19c7cedb2a10569aa.webp\",\n          \"order\": 1,\n          \"is_primary\": true\n        }\n      ],\n      \"videos\": [],\n      \"specs\": {\n        \"holiday_renting\": false,\n        \"temporal_renting\": false,\n        \"address_privacy\": \"approximate\",\n        \"price_calc\": {\n          \"price_alq\": 2000,\n          \"price_trasp\": 25000\n        }\n      },\n      \"features\": [\n        {\n          \"key\": \"air_conditioning\",\n          \"label\": \"Aire Acondicionado\",\n          \"value\": \"Sí\",\n          \"isextra\": false\n        }\n      ],\n      \"status\": \"disponible\",\n      \"address\": \"San Antonio\",\n      \"city\": \"San Antonio\",\n      \"province\": \"Islas Baleares\",\n      \"country\": \"España\",\n      \"lat\": 38.98,\n      \"lon\": 1.3,\n      \"is_featured\": false,\n      \"created_at\": \"2026-07-21T11:42:51.820440+02:00\",\n      \"updated_at\": \"2026-09-26T19:38:41.390976+02:00\"\n    }\n  ],\n  \"count\": 78,\n  \"limit\": 20,\n  \"offset\": 0,\n  \"filters\": {\n    \"locations\": [],\n    \"operation\": \"alquiler\"\n  },\n  \"authenticated_as\": \"Inmobiliaria Ejemplo\"\n}","\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"status\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"ok\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">    {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"id\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1355\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"operation\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"traspaso,alquiler\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"type\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"local\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"subtype\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Local Comercial\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"title\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Local comercial en el centro\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"price\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"size_total\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">120\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"bedrooms\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"bathrooms\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"postal_code\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"07820\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"description\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"&#x3C;h2>Características del local&#x3C;\u002Fh2>&#x3C;p>Superficie total de 120 m² en planta baja…&#x3C;\u002Fp>\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"images\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">        {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"id\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"7eac604ad45147d19c7cedb2a10569aa\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"url\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"https:\u002F\u002Fcdn.vestta.io\u002Fmedia\u002F7eac604ad45147d19c7cedb2a10569aa.webp\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"order\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"is_primary\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">true\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">        }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">      ],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"videos\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"specs\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">        \"holiday_renting\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">false\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">        \"temporal_renting\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">false\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">        \"address_privacy\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"approximate\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">        \"price_calc\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"price_alq\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">2000\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"price_trasp\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">25000\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">        }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">      },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"features\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">        {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"key\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"air_conditioning\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"label\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Aire Acondicionado\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"value\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Sí\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">          \"isextra\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">false\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">        }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">      ],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"status\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"disponible\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"address\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"San Antonio\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"city\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"San Antonio\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"province\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Islas Baleares\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"country\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"España\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"lat\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">38.98\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"lon\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1.3\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"is_featured\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">false\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"created_at\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"2026-07-21T11:42:51.820440+02:00\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">      \"updated_at\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"2026-09-26T19:38:41.390976+02:00\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">  ],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"count\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">78\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"limit\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">20\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"offset\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"filters\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">    \"locations\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">    \"operation\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"alquiler\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  \"authenticated_as\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Inmobiliaria Ejemplo\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"status":1169,"description":1170,"schemaName":1171},"401","The API key is missing, malformed, unknown, revoked or expired.","ExternalApiError",{"status":1173,"description":1174,"schemaName":1171},"403","The API key lacks the required scope.",{"status":1176,"description":1177,"schemaName":1171},"404","The resource does not exist in this business.",{"status":1179,"description":1180,"schemaName":1171},"409","Duplicate contact or idempotency key reused with a different payload.",{"status":1182,"description":1183,"schemaName":1184},"422","A path parameter, query parameter or body field is invalid.","ExternalValidationError",{"status":1186,"description":1187,"schemaName":1171},"500","Unexpected server error while processing the request.",[1189,1195,1200],{"id":1190,"label":1191,"lang":1192,"code":1193,"html":1194},"curl","cURL","bash","curl \"https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties?limit=20\" \\\n  -H \"X-Api-Key: $VESTTA_API_KEY\"","\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6F42C1\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties?limit=20\"\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">  -H\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\"> \"X-Api-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">$VESTTA_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"id":1196,"label":1197,"lang":1196,"code":1198,"html":1199},"javascript","JavaScript","const response = await fetch('https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties?limit=20', {\n  headers: { 'X-Api-Key': process.env.VESTTA_API_KEY },\n})\n\nconst data = await response.json()","\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">const\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> response\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> await\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> fetch\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties?limit=20'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">, {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">  headers: { \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'X-Api-Key'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: process.env.\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">VESTTA_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">})\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">const\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> data\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> await\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> response.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">json\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">()\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"id":1201,"label":1202,"lang":1201,"code":1203,"html":1204},"python","Python","import os\n\nimport requests\n\nresponse = requests.get(\n    \"https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties\",\n    headers={\"X-Api-Key\": os.environ[\"VESTTA_API_KEY\"]},\n    params={\n        \"limit\": 20,\n    },\n)\nresponse.raise_for_status()\ndata = response.json()","\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> os\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">import\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> requests\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">response \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> requests.get(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">    \"https:\u002F\u002Fapi.vestta.io\u002Fv1\u002Fproperties\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E36209\">    headers\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">{\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"X-Api-Key\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: os.environ[\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"VESTTA_API_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">]},\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E36209\">    params\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">        \"limit\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">20\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">    },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">response.raise_for_status()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">data \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> response.json()\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1791929309439]