[{"data":1,"prerenderedAt":546},["ShallowReactive",2],{"page:\u002Fquickstart":3,"operation:getApiKeyContext":266,"operation:listProperties":332},{"id":4,"title":5,"body":6,"description":256,"extension":257,"meta":258,"navigation":259,"operation":260,"path":261,"rawbody":262,"seo":263,"stem":264,"__hash__":265},"docs\u002Fquickstart.md","Quickstart",{"type":7,"value":8,"toc":246},"minimark",[9,22,214,219,242],[10,11,12,13,17,18,21],"p",{},"This guide takes you from no credentials to a working API call. You need a Vestta workspace on the ",[14,15,16],"strong",{},"Premium"," or ",[14,19,20],{},"Enterprise"," plan and a user with permission to manage API keys.",[23,24,25,30,47,82,86,93,103,106,133,137,145,149,153,164,167,178,182,188,191,194],"steps",{},[26,27,29],"h3",{"id":28},"create-an-api-key","Create an API key",[10,31,32,33,42,43,46],{},"In Vestta, open ",[34,35,39],"a",{"href":36,"rel":37},"https:\u002F\u002Fcrm.vestta.app\u002Fsettings?page=apis",[38],"nofollow",[14,40,41],{},"Settings → API"," and select ",[14,44,45],{},"Nueva API Key",". The Vestta app is in Spanish; the fields are:",[48,49,50,62,68],"ul",{},[51,52,53,56,57,61],"li",{},[14,54,55],{},"Nombre"," — where the key will be used, for example ",[58,59,60],"code",{},"Website",".",[51,63,64,67],{},[14,65,66],{},"Duración"," — how long the key stays valid: 1, 3, 6 or 12 months.",[51,69,70,73,74,77,78,81],{},[14,71,72],{},"Permisos"," — the scopes. For this guide, select ",[14,75,76],{},"Propiedades"," (",[58,79,80],{},"properties:read",").",[26,83,85],{"id":84},"save-the-key-securely","Save the key securely",[10,87,88,89,92],{},"The full key is shown ",[14,90,91],{},"only once",", right after you create it. It has this format:",[94,95,101],"pre",{"className":96,"code":98,"language":99,"meta":100},[97],"language-text","AC_LIVE_\u003Ckey_id>.\u003Csecret>\n","text","",[58,102,98],{"__ignoreMap":100},[10,104,105],{},"Store it in a secret manager or an environment variable on your server. Never put it in front-end code or commit it to a repository. For this guide, export it in your terminal:",[94,107,111],{"className":108,"code":109,"language":110,"meta":100,"style":100},"language-bash shiki shiki-themes github-light","export VESTTA_API_KEY=\"AC_LIVE_...\"\n","bash",[58,112,113],{"__ignoreMap":100},[114,115,118,122,126,129],"span",{"class":116,"line":117},"line",1,[114,119,121],{"class":120},"sD7c4","export",[114,123,125],{"class":124},"sgsFI"," VESTTA_API_KEY",[114,127,128],{"class":120},"=",[114,130,132],{"class":131},"sYBdl","\"AC_LIVE_...\"\n",[26,134,136],{"id":135},"make-your-first-request","Make your first request",[10,138,139,140,144],{},"Call ",[34,141,143],{"href":142},"\u002Fme","Retrieve key context",". It works with any active key and returns the business and scopes behind it, which makes it the safest first call:",[146,147],"api-request",{"operation":148},"getApiKeyContext",[26,150,152],{"id":151},"inspect-the-response","Inspect the response",[10,154,155,156,159,160,163],{},"A ",[58,157,158],{},"200"," response confirms the key works. Check that ",[58,161,162],{},"scopes"," contains everything your integration needs:",[165,166],"api-response-example",{"operation":148},[10,168,169,170,173,174,61],{},"If you get a ",[58,171,172],{},"401"," instead, the body tells you why — a missing header, a typo in the key, or a revoked or expired key. See ",[34,175,177],{"href":176},"\u002Ferrors#authentication-failures","Errors",[26,179,181],{"id":180},"continue-with-properties-or-leads","Continue with Properties or Leads",[10,183,184,185,187],{},"With ",[58,186,80],{}," granted, list the first page of your public catalogue:",[146,189],{"operation":190},"listProperties",[10,192,193],{},"From here, go deeper into the resource you need:",[48,195,196,203],{},[51,197,198,202],{},[34,199,201],{"href":200},"\u002Fproperties","Properties"," — filters, prices, map areas and the property object.",[51,204,205,209,210,213],{},[34,206,208],{"href":207},"\u002Fleads","Leads"," — read leads, or send them from your forms with the ",[58,211,212],{},"leads:ingest"," scope.",[215,216,218],"h2",{"id":217},"next-steps","Next steps",[48,220,221,228,235],{},[51,222,223,227],{},[34,224,226],{"href":225},"\u002Fauthentication","Authentication"," — both supported headers and what each scope unlocks.",[51,229,230,234],{},[34,231,233],{"href":232},"\u002Fapi-keys","API keys"," — expiry, revocation and rotating a key without downtime.",[51,236,237,241],{},[34,238,240],{"href":239},"\u002Fpagination","Pagination"," — walk through every page of a list.",[243,244,245],"style",{},"html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}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":100,"searchDepth":247,"depth":247,"links":248},3,[249,250,251,252,253,254],{"id":28,"depth":247,"text":29},{"id":84,"depth":247,"text":85},{"id":135,"depth":247,"text":136},{"id":151,"depth":247,"text":152},{"id":180,"depth":247,"text":181},{"id":217,"depth":255,"text":218},2,"Create an API key and make your first authenticated request to the Vestta API.","md",{},true,null,"\u002Fquickstart","---\ntitle: Quickstart\ndescription: Create an API key and make your first authenticated request to the Vestta API.\n---\n\nThis guide takes you from no credentials to a working API call. You need a Vestta workspace on the **Premium** or **Enterprise** plan and a user with permission to manage API keys.\n\n:::steps\n### Create an API key\n\nIn Vestta, open [**Settings → API**](https:\u002F\u002Fcrm.vestta.app\u002Fsettings?page=apis) and select **Nueva API Key**. The Vestta app is in Spanish; the fields are:\n\n- **Nombre** — where the key will be used, for example `Website`.\n- **Duración** — how long the key stays valid: 1, 3, 6 or 12 months.\n- **Permisos** — the scopes. For this guide, select **Propiedades** (`properties:read`).\n\n### Save the key securely\n\nThe full key is shown **only once**, right after you create it. It has this format:\n\n```text\nAC_LIVE_\u003Ckey_id>.\u003Csecret>\n```\n\nStore it in a secret manager or an environment variable on your server. Never put it in front-end code or commit it to a repository. For this guide, export it in your terminal:\n\n```bash\nexport VESTTA_API_KEY=\"AC_LIVE_...\"\n```\n\n### Make your first request\n\nCall [Retrieve key context](\u002Fme). It works with any active key and returns the business and scopes behind it, which makes it the safest first call:\n\n::api-request{operation=\"getApiKeyContext\"}\n::\n\n### Inspect the response\n\nA `200` response confirms the key works. Check that `scopes` contains everything your integration needs:\n\n::api-response-example{operation=\"getApiKeyContext\"}\n::\n\nIf you get a `401` instead, the body tells you why — a missing header, a typo in the key, or a revoked or expired key. See [Errors](\u002Ferrors#authentication-failures).\n\n### Continue with Properties or Leads\n\nWith `properties:read` granted, list the first page of your public catalogue:\n\n::api-request{operation=\"listProperties\"}\n::\n\nFrom here, go deeper into the resource you need:\n\n- [Properties](\u002Fproperties) — filters, prices, map areas and the property object.\n- [Leads](\u002Fleads) — read leads, or send them from your forms with the `leads:ingest` scope.\n:::\n\n## Next steps\n\n- [Authentication](\u002Fauthentication) — both supported headers and what each scope unlocks.\n- [API keys](\u002Fapi-keys) — expiry, revocation and rotating a key without downtime.\n- [Pagination](\u002Fpagination) — walk through every page of a list.\n",{"title":5,"description":256},"quickstart","dHRqqZGhex8T60SwCPOFNtabtFgBa2nZs4l-6F76owk",{"id":148,"method":267,"path":142,"fullPath":268,"summary":143,"tag":226,"scopes":269,"url":270,"description":271,"pathParams":272,"queryParams":273,"responses":274,"samples":316,"docsPath":142},"GET","\u002Fv1\u002Fext\u002Fme",[],"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\u002Fme","Returns the business and scopes of the API key used for the request. Any active key can call it; no scope is required.",[],[],[275,306,309,313],{"status":158,"description":276,"schemaName":277,"fields":278,"example":304,"exampleHtml":305},"Successful response.","CurrentApiKeyResponse",[279,286],{"name":280,"type":281,"required":259,"nullable":282,"enumValues":283,"constraints":285},"status","string",false,[284],"ok",[],{"name":287,"type":288,"required":259,"nullable":282,"constraints":289,"children":290},"user","ApiKeyContext",[],[291,295,299],{"name":292,"type":281,"required":282,"nullable":259,"description":293,"constraints":294},"company_name","Name of the business that owns the API key.",[],{"name":162,"type":296,"required":259,"nullable":282,"description":297,"constraints":298},"array of strings","Scopes granted to the key: `properties:read`, `leads:read`, `leads:ingest`.",[],{"name":300,"type":281,"required":259,"nullable":282,"enumValues":301,"constraints":303},"auth_method",[302],"api_key",[],"{\n  \"status\": \"ok\",\n  \"user\": {\n    \"company_name\": \"Inmobiliaria Ejemplo\",\n    \"scopes\": [\n      \"properties:read\",\n      \"leads:read\"\n    ],\n    \"auth_method\": \"api_key\"\n  }\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\">  \"user\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">    \"company_name\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"Inmobiliaria Ejemplo\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">    \"scopes\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">      \"properties:read\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">      \"leads:read\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">    ],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#005CC5\">    \"auth_method\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"api_key\"\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>\u003C\u002Fcode>\u003C\u002Fpre>",{"status":172,"description":307,"schemaName":308},"The API key is missing, malformed, unknown, revoked or expired, or lacks the required scope.","ExternalApiError",{"status":310,"description":311,"schemaName":312},"422","A path parameter, query parameter or body field is invalid.","ExternalValidationError",{"status":314,"description":315,"schemaName":308},"500","Unexpected server error while processing the request.",[317,322,327],{"id":318,"label":319,"lang":110,"code":320,"html":321},"curl","cURL","curl \"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\u002Fme\" \\\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.app\u002Fv1\u002Fext\u002Fme\"\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":323,"label":324,"lang":323,"code":325,"html":326},"javascript","JavaScript","const response = await fetch('https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\u002Fme', {\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.app\u002Fv1\u002Fext\u002Fme'\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":328,"label":329,"lang":328,"code":330,"html":331},"python","Python","import os\n\nimport requests\n\nresponse = requests.get(\n    \"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\u002Fme\",\n    headers={\"X-Api-Key\": os.environ[\"VESTTA_API_KEY\"]},\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.app\u002Fv1\u002Fext\u002Fme\"\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:#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>",{"id":190,"method":267,"path":200,"fullPath":333,"summary":334,"tag":201,"scopes":335,"url":336,"description":337,"pathParams":338,"queryParams":339,"responses":409,"samples":535,"docsPath":545},"\u002Fv1\u002Fext\u002Fproperties","List properties",[80],"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\u002Fproperties","Returns the public catalogue of the authenticated business: properties marked as public that are not sold, rented or withdrawn. Results are ordered by last update unless `sort` is set. Requires the `properties:read` scope.",[],[340,348,354,357,361,368,372,376,380,384,389,393,397,402],{"name":341,"type":342,"required":282,"nullable":282,"description":343,"defaultValue":344,"constraints":345},"limit","integer","Maximum number of properties to return.","100",[346,347],"≥ 1","≤ 1000",{"name":349,"type":342,"required":282,"nullable":282,"description":350,"defaultValue":351,"constraints":352},"offset","Number of matching properties to skip before returning results.","0",[353],"≥ 0",{"name":280,"type":281,"required":282,"nullable":259,"description":355,"constraints":356},"Exact status match. Only `disponible` and `reservada` can match: sold, rented and withdrawn properties are never returned.",[],{"name":358,"type":281,"required":282,"nullable":259,"description":359,"constraints":360},"operation","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":362,"type":281,"required":282,"nullable":259,"description":363,"enumValues":364,"constraints":367},"rental_type","Rental type: `temporal` for temporary rentals, `anual` for long-term rentals that are neither temporary nor holiday rentals.",[365,366],"temporal","anual",[],{"name":369,"type":281,"required":282,"nullable":259,"description":370,"constraints":371},"type","Exact property type: `apartamento`, `casa`, `local`, `nave`, `almacenaje`, `oficina`, `terreno`, `aparcamiento` or `edificio`.",[],{"name":373,"type":281,"required":282,"nullable":259,"description":374,"constraints":375},"subtype","Exact subtype key as stored in Vestta, for example `atico`, `duplex`, `chalet` or `villa`. Responses return the subtype as a display label.",[],{"name":377,"type":281,"required":282,"nullable":259,"description":378,"constraints":379},"city","City name. Case-insensitive exact match.",[],{"name":381,"type":281,"required":282,"nullable":259,"description":382,"constraints":383},"locations","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":385,"type":386,"required":282,"nullable":259,"description":387,"constraints":388},"min_price","number","Minimum price, inclusive. Uses the rent or transfer price when `operation` is `alquiler` or `traspaso`.",[353],{"name":390,"type":386,"required":282,"nullable":259,"description":391,"constraints":392},"max_price","Maximum price, inclusive. Uses the rent or transfer price when `operation` is `alquiler` or `traspaso`.",[353],{"name":394,"type":342,"required":282,"nullable":259,"description":395,"constraints":396},"min_bedrooms","Minimum number of bedrooms, inclusive.",[353],{"name":398,"type":399,"required":282,"nullable":259,"description":400,"constraints":401},"is_featured","boolean","`true` returns only featured properties; `false` only non-featured ones.",[],{"name":403,"type":281,"required":282,"nullable":259,"description":404,"enumValues":405,"constraints":408},"sort","Sort by price (properties without a price go last). When omitted, results are ordered by last update, newest first.",[406,407],"price_asc","price_desc",[],[410,532,533,534],{"status":158,"description":276,"schemaName":411,"fields":412,"example":530,"exampleHtml":531},"PropertyListResponse",[413,416,513,517,520,523,527],{"name":280,"type":281,"required":259,"nullable":282,"enumValues":414,"constraints":415},[284],[],{"name":417,"type":418,"required":259,"nullable":282,"description":419,"constraints":420,"children":421},"data","array of objects","The requested page of properties.",[],[422,426,429,432,435,439,443,447,450,453,457,461,466,470,475,479,482,486,488,491,494,498,502,505,509],{"name":423,"type":342,"required":259,"nullable":282,"description":424,"constraints":425},"id","Numeric property ID. Use it with Retrieve a property.",[],{"name":358,"type":281,"required":282,"nullable":259,"description":427,"constraints":428},"Operations the property is offered for: `venta`, `alquiler`, `traspaso`, or several joined by commas (e.g. `venta,alquiler`).",[],{"name":369,"type":281,"required":282,"nullable":259,"description":430,"constraints":431},"Property type key, e.g. `apartamento`, `casa`, `local`, `oficina`, `terreno` or `edificio`.",[],{"name":373,"type":281,"required":282,"nullable":259,"description":433,"constraints":434},"Subtype as a Spanish display label (e.g. `Ático`, `Local Comercial`), or `Sin Especificar`.",[],{"name":436,"type":281,"required":282,"nullable":259,"description":437,"constraints":438},"title","Listing title. May be empty.",[],{"name":440,"type":386,"required":282,"nullable":259,"description":441,"constraints":442},"price","Sale price in euros. Rent and transfer prices are in `specs.price_calc`.",[],{"name":444,"type":386,"required":282,"nullable":259,"description":445,"constraints":446},"size_total","Total size in m².",[],{"name":448,"type":342,"required":282,"nullable":259,"constraints":449},"bedrooms",[],{"name":451,"type":342,"required":282,"nullable":259,"constraints":452},"bathrooms",[],{"name":454,"type":281,"required":282,"nullable":259,"description":455,"constraints":456},"postal_code","Omitted when the property's location is hidden.",[],{"name":458,"type":281,"required":282,"nullable":259,"description":459,"constraints":460},"description","Listing description as HTML.",[],{"name":462,"type":463,"required":282,"nullable":282,"description":464,"constraints":465},"images","array of any","Public images, as `{id, url, order, is_primary, title}` objects.",[],{"name":467,"type":463,"required":282,"nullable":259,"description":468,"constraints":469},"videos","Processed videos, as `{id, title, order, url, hls_url, thumbnail_url, embed_url}` objects.",[],{"name":471,"type":472,"required":282,"nullable":259,"description":473,"constraints":474},"specs","object","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.",[],{"name":476,"type":463,"required":282,"nullable":259,"description":477,"constraints":478},"features","Amenities as `{label, key, value, isextra}` objects. `label` is a display string; `key` is stable.",[],{"name":280,"type":281,"required":282,"nullable":259,"description":480,"constraints":481},"`disponible` or `reservada`. Sold, rented and withdrawn properties are never returned.",[],{"name":483,"type":281,"required":282,"nullable":259,"description":484,"constraints":485},"address","Follows the property's address privacy: the full address when public, the approximate address when approximate, omitted when hidden.",[],{"name":377,"type":281,"required":282,"nullable":259,"constraints":487},[],{"name":489,"type":281,"required":282,"nullable":259,"constraints":490},"province",[],{"name":492,"type":281,"required":282,"nullable":259,"constraints":493},"country",[],{"name":495,"type":386,"required":282,"nullable":259,"description":496,"constraints":497},"lat","Latitude in decimal degrees. Exact when the address is public, rounded to 2 decimals (about 1 km) when approximate, omitted when hidden.",[],{"name":499,"type":386,"required":282,"nullable":259,"description":500,"constraints":501},"lon","Longitude in decimal degrees, with the same precision rules as `lat`.",[],{"name":398,"type":399,"required":282,"nullable":259,"description":503,"constraints":504},"Whether the business marked the property as featured.",[],{"name":506,"type":281,"required":282,"nullable":259,"description":507,"constraints":508},"created_at","ISO 8601 timestamp with UTC offset.",[],{"name":510,"type":281,"required":282,"nullable":259,"description":511,"constraints":512},"updated_at","ISO 8601 timestamp with UTC offset. The default sort key.",[],{"name":514,"type":342,"required":259,"nullable":282,"description":515,"constraints":516},"count","Total number of properties matching the filters, across all pages.",[],{"name":341,"type":342,"required":259,"nullable":282,"description":518,"constraints":519},"The `limit` that was applied.",[],{"name":349,"type":342,"required":259,"nullable":282,"description":521,"constraints":522},"The `offset` that was applied.",[],{"name":524,"type":472,"required":259,"nullable":282,"description":525,"constraints":526},"filters","Echo of the filters that were applied; `null` for filters that were not sent. `locations` contains only the areas that were understood.",[],{"name":528,"type":281,"required":282,"nullable":259,"description":293,"constraints":529},"authenticated_as",[],"{\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\": \"63cfd9acfb62c728a6721ca0dd4afdcb_1784627270\",\n          \"is_primary\": true,\n          \"order\": 1,\n          \"url\": \"https:\u002F\u002Fcdn.vestta.app\u002Fimages\u002Fcaa459b11e9f\u002F73121a89c611\u002F63cfd9acfb62c728a6721ca0dd4afdcb_1784627270.jpeg\"\n        }\n      ],\n      \"videos\": [],\n      \"specs\": {\n        \"address_privacy\": \"approximate\",\n        \"holiday_renting\": false,\n        \"price_calc\": {\n          \"price_alq\": 2000,\n          \"price_trasp\": 25000\n        },\n        \"temporal_renting\": false\n      },\n      \"features\": [\n        {\n          \"isextra\": false,\n          \"key\": \"air_conditioning\",\n          \"label\": \"Aire Acondicionado\",\n          \"value\": \"Sí\"\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\">\"63cfd9acfb62c728a6721ca0dd4afdcb_1784627270\"\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>\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\">          \"url\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">: \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">\"https:\u002F\u002Fcdn.vestta.app\u002Fimages\u002Fcaa459b11e9f\u002F73121a89c611\u002F63cfd9acfb62c728a6721ca0dd4afdcb_1784627270.jpeg\"\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\">        \"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\">        \"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\">        \"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:#005CC5\">        \"temporal_renting\"\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:#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\">          \"isextra\"\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\">          \"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>\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":172,"description":307,"schemaName":308},{"status":310,"description":311,"schemaName":312},{"status":314,"description":315,"schemaName":308},[536,539,542],{"id":318,"label":319,"lang":110,"code":537,"html":538},"curl \"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\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.app\u002Fv1\u002Fext\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":323,"label":324,"lang":323,"code":540,"html":541},"const response = await fetch('https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\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.app\u002Fv1\u002Fext\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":328,"label":329,"lang":328,"code":543,"html":544},"import os\n\nimport requests\n\nresponse = requests.get(\n    \"https:\u002F\u002Fapi.vestta.app\u002Fv1\u002Fext\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.app\u002Fv1\u002Fext\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>","\u002Fproperties\u002Flist",1791110048512]