---
title: "Loft API: JSON data, 4 endpoints, 1 credit per call"
description: "Loft API for Brazilian apartments and houses for sale or rent, listing details, agencies and their stock, and autocomplete. 1 credit per successful call."
url: https://perceptlayer.com/apis/loft
---

[APIs](https://perceptlayer.com/apis) / [Real estate](https://perceptlayer.com/verticals/real-estate) / Loft

1 credit per call 4 endpoints 35 datapoints

# Loft API

Loft API for Brazilian apartments and houses for sale or rent, listing details, agencies and their stock, and autocomplete. 1 credit per successful call.

[Get a free API key](https://perceptlayer.com/signup) Run it below

Loft

GET /v1/loft/search?city=S%C3%A3o+Paulo%2C+SP&bedrooms=3&exact\_rooms=true&per\_page=10 

```
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "zyf448bf",
        "url": "https://loft.com.br/imovel/zyf448bf",
        "listing_type": "sale",
        "status": "FOR_SALE",
        "home_type": "apartment",
        "property_type": "default",
        "property_subtypes": [
          "home_apartment",
          "apartment_default"
        ],
        "usage_type": "residential",
        "product_type": "market",
        "contract_type": "non_exclusive",
        "price": 765000,
        "currency": "BRL",
        "condo_fee": 700,
        "monthly_expenses": 771.67,
        "property_tax": 71.67,
        "area": 70,
        "bedrooms": 3,
        "suites": 1,
        "bathrooms": 1,
        "parking_spots": 2,
        "number_of_floors": 20,
        "has_balcony": false,
        "has_virtual_tour": true,
        "has_decorated_photos": true,
        "can_redecorate": true,
        "tags": [
          "REDECORATABLE_PHOTO"
        ],
        "description": "Apartamento de 70m² com 3 Dormitórios, Suíte, 2 Vagas e Lazer de Clube!\n\nSeu novo lar com conforto, praticidade e lazer completo para toda a família!\n\nImagine morar em um apartamento espaçoso, com ambientes planejados, duas vagas de garagem…",
        "image": "https://content.loft.com.br/homes/zyf448bf/desktop_banner.jpg",
        "thumbnail": "https://content.loft.com.br/homes/zyf448bf/banner_thumbnail.jpg",
        "photos": [
          "https://content.loft.com.br/homes/zyf448bf/desktop_facade01.jpg",
          "https://content.loft.com.br/homes/zyf448bf/desktop_facade02.jpg",
          "https://content.loft.com.br/homes/zyf448bf/desktop_facade03.jpg"
        ],
        "address": {
          "street": "Avenida Ernesto Igel",
          "neighborhood": "Lapa",
          "neighborhood_slug": "lapa_sao-paulo_sp",
          "city": "São Paulo",
          "state": "SP",
          "country": "BR",
          "complex_name": "Condominio Passeio Vila Leopoldina",
          "latitude": -23.5186698,
          "longitude": -46.7294594,
          "facets": {
            "city": "São Paulo, SP",
            "neighborhood": "Lapa, São Paulo, SP"
          }
        },
        "agency": {
          "id": "23e0de5f-5850-4f40-94da-6e19df9896ab",
          "name": "MARLON ROGERIO ALBINO"
        },
        "created_at": "2026-10-19T19:15:42.365Z",
        "updated_at": "2026-10-21T12:36:28.223Z",
        "grouped_listings_count": 1
      },
      {
        "id": "v5a7hbi1",
        "url": "https://loft.com.br/imovel/v5a7hbi1",
        "listing_type": "sale",
        "status": "FOR_SALE",
        "home_type": "house",
        "property_subtypes": [
          "home_house",
          "house_standard"
        ],
        "usage_type": "residential",
        "product_type": "market",
        "contract_type": "non_exclusive",
        "price": 600000,
        "currency": "BRL",
        "area": 125,
        "bedrooms": 3,
        "suites": 1,
        "bathrooms": 3,
        "parking_spots": 2,
        "number_of_floors": 2,
        "has_balcony": false,
        "has_virtual_tour": true,
        "has_decorated_photos": false,
        "can_redecorate": true,
        "tags": [
          "REDECORATABLE_PHOTO"
        ],
        "image": "https://content.loft.com.br/homes/v5a7hbi1/desktop_banner.jpg",
        "thumbnail": "https://content.loft.com.br/homes/v5a7hbi1/banner_thumbnail.jpg",
        "photos": [
          "https://content.loft.com.br/homes/v5a7hbi1/desktop_facade01.jpg",
          "https://content.loft.com.br/homes/v5a7hbi1/desktop_facade02.jpg",
          "https://content.loft.com.br/homes/v5a7hbi1/desktop_facade03.jpg"
        ],
        "address": {
          "street": "Avenida Comendador Feiz Zarzur",
          "neighborhood": "Jardim Cidade Pirituba",
          "neighborhood_slug": "jardim-cidade-pirituba_sao-paulo_sp",
          "city": "São Paulo",
          "state": "SP",
          "country": "BR",
          "latitude": -23.47691,
          "longitude": -46.72186,
          "facets": {
            "city": "São Paulo, SP",
            "neighborhood": "Jardim Cidade Pirituba, São Paulo, SP"
          }
        },
        "agency": {
          "id": "3fda2e66-d9f5-4e36-bf1e-173cb847544d",
          "name": "Ceci Vargaz"
        },
        "created_at": "2026-11-11T18:56:53.753Z",
        "updated_at": "2026-11-11T18:57:13.581Z",
        "grouped_listings_count": 1
      },
      {
        "id": "1btdzbh8",
        "url": "https://loft.com.br/imovel/1btdzbh8",
        "listing_type": "sale",
        "status": "FOR_SALE",
        "home_type": "house",
        "property_subtypes": [
          "home_house",
          "house_standard"
        ],
        "usage_type": "residential",
        "product_type": "market",
        "contract_type": "non_exclusive",
        "price": 539000,
        "currency": "BRL",
        "monthly_expenses": 100,
        "property_tax": 100,
        "area": 175,
        "bedrooms": 3,
        "suites": 1,
        "bathrooms": 2,
        "parking_spots": 2,
        "has_balcony": false,
        "has_virtual_tour": true,
        "has_decorated_photos": false,
        "can_redecorate": false,
        "description": "Descubra sua nova casa na Vila Isolina Mazzei! Esta encantadora residência térrea de 175 m² é perfeita para quem busca conforto e praticidade. Com 3 dormitórios, sendo 1 suíte, você terá espaço de sobra para sua família. A cozinha ampla é i…",
        "image": "https://content.loft.com.br/homes/1btdzbh8/desktop_banner.jpg",
        "thumbnail": "https://content.loft.com.br/homes/1btdzbh8/banner_thumbnail.jpg",
        "photos": [
          "https://content.loft.com.br/homes/1btdzbh8/desktop_facade01.jpg",
          "https://content.loft.com.br/homes/1btdzbh8/desktop_facade02.jpg",
          "https://content.loft.com.br/homes/1btdzbh8/desktop_facade03.jpg"
        ],
        "address": {
          "street": "Rua Rosalina Alves",
          "neighborhood": "Vila Isolina Mazzei",
          "neighborhood_slug": "vila-isolina-mazzei_sao-paulo_sp",
          "city": "São Paulo",
          "state": "SP",
          "country": "BR",
          "latitude": -23.49925,
          "longitude": -46.60531,
          "facets": {
            "city": "São Paulo, SP",
            "neighborhood": "Vila Isolina Mazzei, São Paulo, SP"
          }
        },
        "agency": {
          "id": "bbd20ecc-20b0-4f4c-b14f-aec4b8021bcf",
          "name": "TOP ZN IMOVEIS SOLUCOES IMOBILIARAS"
        },
        "created_at": "2026-09-18T14:43:57.350Z",
        "updated_at": "2026-09-18T14:43:57.350Z",
        "grouped_listings_count": 1
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 10,
      "returned": 10,
      "total": 92397,
      "total_listings": 117377,
      "total_pages": 1000,
      "has_next_page": true,
      "window": 10000
    },
    "facets": {
      "address.facets.city": {
        "São Paulo, SP": 403272
      },
      "address.facets.neighborhood": {
        "Jardim Paulista, São Paulo, SP": 13914,
        "Vila Mariana, São Paulo, SP": 13631,
        "Pinheiros, São Paulo, SP": 12898,
        "Indianópolis, São Paulo, SP": 10418,
        "Perdizes, São Paulo, SP": 9903,
        "Vila Olímpia, São Paulo, SP": 7967,
        "Brooklin Paulista, São Paulo, SP": 7792,
        "Itaim Bibi, São Paulo, SP": 7160,
        "Bela Vista, São Paulo, SP": 6923,
        "Vila Nova Conceição, São Paulo, SP": 6862
      },
      "address.facets.street": {
        "Alameda Lorena, Jardim Paulista, São Paulo, SP": 1656,
        "Alameda Franca, Jardim Paulista, São Paulo, SP": 1299,
        "Alameda Jaú, Jardim Paulista, São Paulo, SP": 1175,
        "Rua Bela Cintra, Consolação, São Paulo, SP": 1171,
        "Avenida Doutor Cardoso de Melo, Vila Olímpia, São Paulo, SP": 1062,
        "Rua Oscar Freire, Pinheiros, São Paulo, SP": 1061,
        "Rua Alves Guimarães, Pinheiros, São Paulo, SP": 1044,
        "Rua Alvorada, Vila Olímpia, São Paulo, SP": 985,
        "Rua Voluntários da Pátria, Santana, São Paulo, SP": 931,
        "Rua Haddock Lobo, Cerqueira César, São Paulo, SP": 922
      },
      "address.facets.condominium": {
        "Condominio Edifício Horizonte Home & Offices, Avenida Presidente Juscelino Kubitschek, Vila Nova Conceição, São Paulo, SP": 307,
        "Condominio On Melo Alves, Rua Melo Alves, Cerqueira César, São Paulo, SP": 279,
        "Condominio O Parque, Avenida Roque Petroni Júnior, Jardim das Acácias, São Paulo, SP": 279,
        "Condominio Home Boutique Brooklin, Avenida Portugal, Brooklin Paulista, São Paulo, SP": 266,
        "Condominio Ciragan, Alameda Ministro Rocha Azevedo, Cerqueira César, São Paulo, SP": 250,
        "Edifício V House - Faria Lima, Avenida Eusébio Matoso, Pinheiros, São Paulo, SP": 235,
        "Condominio Monumento Sao Paulo, Rua Doutor Luiz Migliano, Jardim Caboré, São Paulo, SP": 230,
        "Veranda Apartments, Rua Ribeiro do Vale, Brooklin Paulista, São Paulo, SP": 225,
        "Condomnio Edifcio 21st Century Flat, Alameda Lorena, Jardim Paulista, São Paulo, SP": 218,
        "Condominio Vn Millennium Faria Lima, Rua Chilon, Vila Olímpia, São Paulo, SP": 216
      }
    },
    "facets_stats": {
      ".price": {
        "count": 117377,
        "min": 10001,
        "max": 85000000,
        "avg": 1947019.75288174,
        "sum": 228535337534
      }
    },
    "applied_filters": {
      "city": "São Paulo, SP",
      "bedrooms": 3,
      "exact_rooms": true,
      "per_page": 10,
      "listing_type": "sale"
    }
  },
  "meta": {
    "endpoint_family": "search",
    "attempts": 1,
    "request_id": "req_a2a1447083cd412482a2a7bce6b89fde",
    "credits_charged": 1,
    "credits_remaining": 1847
  }
}
```

200 OK JSON X-Credits-Used: 1

Recorded from our API and shortened.

Sample data

## What one call returns

A recorded run of `search`: the fields and shapes you will get, shortened to 3 items.

| # | id string | url url | listing\_type string | status string | home\_type string | property\_type string | property\_subtypes string\[\] | usage\_type string | product\_type string | contract\_type string | price integer | currency string | condo\_fee number | monthly\_expenses number | property\_tax number | area integer | bedrooms integer | suites integer | bathrooms integer | parking\_spots integer | number\_of\_floors number | has\_balcony boolean | has\_virtual\_tour boolean | has\_decorated\_photos boolean | can\_redecorate boolean | tags string\[\] | description string | image url | thumbnail url | photos string\[\] | address object | agency object | created\_at string | updated\_at string | grouped\_listings\_count integer |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | zyf448bf | https://loft.com.br/imovel/zyf448bf | sale | FOR\_SALE | apartment | default | \[2 items\] | residential | market | non\_exclusive | 765000 | BRL | 700 | 771.67 | 71.67 | 70 | 3 | 1 | 1 | 2 | 20 | false | true | true | true | \[1 item\] | Apartamento de 70m² com 3 Dormitórios, Suíte, 2 Vagas e Lazer de Clube! Seu novo lar com conforto, praticidade e lazer completo para toda a família! Imagine morar em um apartamento espaçoso, com ambientes planejados, duas vagas de garagem… | https://content.loft.com.br/homes/zyf448bf/desktop\_banner.jpg | https://content.loft.com.br/homes/zyf448bf/banner\_thumbnail.jpg | \[3 items\] | {10 fields} | {2 fields} | 2026-10-19T19:15:42.365Z | 2026-10-21T12:36:28.223Z | 1 |
| 2 | v5a7hbi1 | https://loft.com.br/imovel/v5a7hbi1 | sale | FOR\_SALE | house | — | \[2 items\] | residential | market | non\_exclusive | 600000 | BRL | — | — | — | 125 | 3 | 1 | 3 | 2 | 2 | false | true | false | true | \[1 item\] | — | https://content.loft.com.br/homes/v5a7hbi1/desktop\_banner.jpg | https://content.loft.com.br/homes/v5a7hbi1/banner\_thumbnail.jpg | \[3 items\] | {9 fields} | {2 fields} | 2026-11-11T18:56:53.753Z | 2026-11-11T18:57:13.581Z | 1 |
| 3 | 1btdzbh8 | https://loft.com.br/imovel/1btdzbh8 | sale | FOR\_SALE | house | — | \[2 items\] | residential | market | non\_exclusive | 539000 | BRL | — | 100 | 100 | 175 | 3 | 1 | 2 | 2 | — | false | true | false | false | — | Descubra sua nova casa na Vila Isolina Mazzei! Esta encantadora residência térrea de 175 m² é perfeita para quem busca conforto e praticidade. Com 3 dormitórios, sendo 1 suíte, você terá espaço de sobra para sua família. A cozinha ampla é i… | https://content.loft.com.br/homes/1btdzbh8/desktop\_banner.jpg | https://content.loft.com.br/homes/1btdzbh8/banner\_thumbnail.jpg | \[3 items\] | {9 fields} | {2 fields} | 2026-09-18T14:43:57.350Z | 2026-09-18T14:43:57.350Z | 1 |

Recorded from our API · 3 items shown · 35 datapoints per item GET /v1/loft/search?city=S%C3%A3o+Paulo%2C+SP&bedrooms=3&exact\_rooms=true&per\_page=10

35 datapoints

### Identity

-   id string
-   listing\_type string
-   status string
-   home\_type string
-   property\_type string
-   property\_subtypes string\[\]
-   usage\_type string
-   product\_type string
-   contract\_type string

### Contact

-   url url

### Location

-   area integer
-   address object

### Reputation

-   has\_decorated\_photos boolean
-   image url
-   photos string\[\]

### Price

-   price integer
-   currency string
-   condo\_fee number
-   can\_redecorate boolean

### Other

-   monthly\_expenses number
-   property\_tax number
-   bedrooms integer
-   suites integer
-   bathrooms integer
-   parking\_spots integer
-   number\_of\_floors number
-   has\_balcony boolean
-   has\_virtual\_tour boolean
-   tags string\[\]
-   description string
-   thumbnail url
-   agency object
-   created\_at string
-   updated\_at string
-   grouped\_listings\_count integer

Playground

## Run this API

cURL shell 

```
curl "https://api.perceptlayer.com/v1/loft/search?city=S%C3%A3o+Paulo%2C+SP&bedrooms=3&exact_rooms=true&per_page=10" \
  -H "X-API-Key: $API_KEY"
```

Loft · 4 endpoints

## Endpoints

Every endpoint takes the same key. Open one for its parameters and an example request.

| Endpoint | Required parameters | Cost |
| --- | --- | --- |
| [GET `/v1/loft/agency`](https://perceptlayer.com/apis/loft/agency) | `id` +6 optional | 1 credit |
| [GET `/v1/loft/autocomplete`](https://perceptlayer.com/apis/loft/autocomplete) | `term` +1 optional | 1 credit |
| [GET `/v1/loft/listing`](https://perceptlayer.com/apis/loft/listing) | `id` | 1 credit |
| [GET `/v1/loft/search`](https://perceptlayer.com/apis/loft/search) | none +25 optional | 1 credit |

Overview

## About the Loft API

## What you can get

The Loft API returns Loft property data as JSON through 4 endpoints.

-   **Search:** `search` takes a `city`, with `listing_type` (sale or rent), `neighborhood`, `query`, a repeatable `property_type[]`, `price_min`, `price_max`, `area_min`, `area_max`, `bedrooms`, `suites`, `bathrooms`, `parking_spots`, `exact_rooms`, `condo_fee_max`, `monthly_expenses_max`, a repeatable `tags[]`, `has_virtual_tour`, `has_decorated_photos`, `usage_type` (residential or commercial), `product_type` (market, select, home\_flipping, own\_the\_key or new\_construction), `agency_id`, `sort` (relevance, price\_asc, price\_desc, newest or updated), `per_page` and `page`.
-   **Listings:** `listing` takes an `id`.
-   **Agencies:** `agency` takes an `id`, with `listing_type`, `city`, `property_type[]`, `sort`, `per_page` and `page`.
-   **Locations:** `autocomplete` takes a `term`, with `city`.

The recorded `search` for São Paulo, SP (exactly 3 bedrooms, 10 per page) returns `items`, each with `id`, `url`, `listing_type`, `status`, `home_type`, `property_type`, `price`, `currency`, `condo_fee`, `monthly_expenses`, `property_tax`, `area`, `bedrooms`, `suites`, `bathrooms`, `parking_spots`, `has_balcony`, `tags`, `photos`, `address`, `agency`, `created_at` and `updated_at`. It also returns `facets` by city, neighbourhood, street and condominium, `facets_stats` for `price` (count, min, max and average), and `pagination` with `total_pages` and `has_next_page`.

## How a call works

Search a city: `GET /v1/loft/search?city=São Paulo, SP&bedrooms=3&exact_rooms=true&per_page=10` with your key in the `X-API-Key` header. Each item's `id` is what `listing` takes, and its `agency.id` is what `agency` takes, or what `search` filters on as `agency_id`. Every successful call costs 1 credit; failed calls cost nothing.

Real estate JSON REST MCP

### More real estate APIs

[28Hse](https://perceptlayer.com/apis/28hse) [4zida](https://perceptlayer.com/apis/4zida) [591](https://perceptlayer.com/apis/591-house) [99.co](https://perceptlayer.com/apis/99co) [99acres](https://perceptlayer.com/apis/99acres) [Adondevivir](https://perceptlayer.com/apis/adondevivir) [Apartment List](https://perceptlayer.com/apis/apartment-list) [Apartments.com](https://perceptlayer.com/apis/apartments-com) [Aqar](https://perceptlayer.com/apis/aqar) [Aqarmap](https://perceptlayer.com/apis/aqarmap) [Argenprop](https://perceptlayer.com/apis/argenprop) [athome](https://perceptlayer.com/apis/athome)

Use cases

### Track asking prices and rents by neighbourhood in São Paulo and other Brazilian cities

`Use the Loft API to track asking prices and rents by neighbourhood in São Paulo and other Brazilian cities` 

### Compare total monthly cost from \`condo\_fee\`, \`property\_tax\` and \`monthly\_expenses\`

`` Use the Loft API to compare total monthly cost from `condo_fee`, `property_tax` and `monthly_expenses` `` 

### Read price ranges for a search from \`facets\_stats\`

`` Use the Loft API to read price ranges for a search from `facets_stats` `` 

### Find new construction with \`product\_type=new\_construction\`

`` Use the Loft API to find new construction with `product_type=new_construction` `` 

FAQ

## Questions

**How much does the Loft API cost?**

Each successful call costs one credit. New accounts get free credits to start, and credit packs bring the price down as you scale.

**What format are responses in?**

Every endpoint returns JSON, with no HTML parsing on your side.

**Do I need a Loft account?**

No. You call this Loft API with your Perceptlayer key in the \`X-API-Key\` header, with no Loft login.

**Can I cap the condo fee?**

Yes. Pass \`condo\_fee\_max\`, or \`monthly\_expenses\_max\` for all monthly costs, to \`search\`.

**Should I build a Loft scraper instead?**

You can, but a Loft scraper is code you maintain: page changes break it, requests get blocked, and Loft's terms govern how you collect data. The Loft API gives you 4 endpoints of named JSON fields for 1 credit per successful call, and failed calls cost nothing. A scraper makes sense only for data these endpoints don't return, so check the response in the playground on this page first.

## Try the Loft API with 100 free credits

No credit card. Failed calls are never billed.

[Get a free API key](https://perceptlayer.com/signup) [Read the docs](https://docs.perceptlayer.com)
