# Loft Brazil Search API Documentation

<p><strong>Loft Brazil Search API</strong> lists property for sale or rent in Brazil. Each item has the id, URL, prices in BRL, condominium fee, area, rooms, parking, features, description, photos, address with coordinates and the listing agency. The same unit offered by several agencies is one item with <code>grouped_listings</code>.</p><p><code>pagination.total</code> counts items, and <code>total_listings</code> counts every agency ad. Only the first 10000 results of a search can be paged: <code>page</code> x <code>per_page</code> above 10000 answers 422. Every returned item obeys the filters you sent. Some listings carry placeholder prices such as 10001 or 99999999; they are returned as published. A fee that is not reported is null, never 0. Failed requests are not billed.</p>

- **Documentation:** [https://scrappa.co/docs/loft-br-api/loft_br_search](https://scrappa.co/docs/loft-br-api/loft_br_search)
- **API group:** Loft Brazil API
- **Endpoint:** `GET https://scrappa.co/api/loft-br/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `listing_type` | string | No | sale (default) or rent. Rent searches filter price_min and price_max on the monthly rent. |
| `city` | string | No | City value from the autocomplete route, for example São Paulo, SP. |
| `neighborhood` | string | No | Full neighborhood value from the autocomplete route, for example Pinheiros, São Paulo, SP. |
| `query` | string | No | Free text such as a street name. |
| `property_type` | string | No | One or more of apartment, house, land, farm, studio, penthouse, duplex, triplex, garden_apartment, conjugate, standard_apartment, standard_house, condominium_house, commercial_building, commercial_property, commercial_business, commercial_hotel, commercial_industrial, commercial_land. Repeat the parameter or separate values with commas. |
| `price_min` | integer | No | Minimum price in BRL. Sale price for sale, monthly rent for rent. |
| `price_max` | integer | No | Maximum price in BRL. |
| `area_min` | integer | No | Minimum area in square metres. |
| `area_max` | integer | No | Maximum area in square metres. |
| `bedrooms` | integer | No | Bedrooms, 1 to 30. A minimum, or the exact count when exact_rooms is true. |
| `suites` | integer | No | Suites, 1 to 30. A minimum, or exact with exact_rooms. |
| `bathrooms` | integer | No | Bathrooms, 1 to 30. A minimum, or exact with exact_rooms. |
| `parking_spots` | integer | No | Parking spots, 1 to 30. A minimum, or exact with exact_rooms. |
| `exact_rooms` | boolean | No | true to match bedrooms, suites, bathrooms and parking_spots exactly instead of as minimums. |
| `condo_fee_max` | integer | No | Maximum monthly condominium fee in BRL. Listings that report no fee are included. |
| `monthly_expenses_max` | integer | No | Maximum total monthly expenses in BRL. Listings that report none are included. |
| `tags` | string | No | below_market_price for listings priced below the market. |
| `has_virtual_tour` | boolean | No | true for listings with a virtual tour. false is rejected; leave the parameter out instead. |
| `has_decorated_photos` | boolean | No | true for listings with decorated photos. false is rejected. |
| `usage_type` | string | No | residential or commercial. |
| `product_type` | string | No | market, select, home_flipping, own_the_key or new_construction. |
| `agency_id` | string | No | Agency id (a UUID) from a listing. |
| `sort` | string | No | relevance (default), price_asc, price_desc, newest or updated. Price sorts use the sale price for sale and the monthly rent for rent. |
| `per_page` | integer | No | 1 to 500, default 20. |
| `page` | integer | No | One-based page number. page x per_page must stay within 10000, otherwise the answer is 422 and not billed. |

## Example response

```json
{
    "data": {
        "items": [
            {
                "id": "xwdamk14",
                "url": "https://loft.com.br/imovel/xwdamk14",
                "area": 112,
                "tags": [],
                "floor": null,
                "image": "https://content.loft.com.br/homes/xwdamk14/desktop_banner.jpg",
                "price": 10001,
                "agency": {
                    "id": "bce29ecd-3a66-4b08-a6d4-76acf0e2effd",
                    "name": "AUTHENTIQUE IM\u00d3VEIS SP"
                },
                "photos": [
                    "https://content.loft.com.br/homes/xwdamk14/desktop_facade01.jpg",
                    "https://content.loft.com.br/homes/xwdamk14/desktop_facade02.jpg"
                ],
                "status": "FOR_SALE",
                "suites": 3,
                "address": {
                    "city": "S\u00e3o Paulo",
                    "state": "SP",
                    "facets": {
                        "city": "S\u00e3o Paulo, SP",
                        "neighborhood": "Itaim Bibi, S\u00e3o Paulo, SP"
                    },
                    "number": null,
                    "street": "Rua Leopoldo Couto Magalh\u00e3es J\u00fanior",
                    "country": "BR",
                    "latitude": -23.5898555,
                    "longitude": -46.6865229,
                    "postal_code": null,
                    "complex_name": null,
                    "neighborhood": "Itaim Bibi",
                    "neighborhood_slug": "itaim-bibi_sao-paulo_sp"
                },
                "bedrooms": 3,
                "currency": "BRL",
                "amenities": [],
                "bathrooms": 3,
                "condo_fee": null,
                "home_type": "apartment",
                "thumbnail": "https://content.loft.com.br/homes/xwdamk14/banner_thumbnail.jpg",
                "created_at": "2026-09-10T15:37:23.479Z",
                "updated_at": "2026-10-25T22:45:09.093Z",
                "usage_type": "residential",
                "description": "Um empreendimento completo com toda seguran\u00e7a, conforto e lazer que voc\u00ea merece. \n\nAptos no Itaim Bibi \u00e0 Venda! \nLocalizado na Rua Leopoldo Couto Magalh\u00e3es J\u00fani...",
                "has_balcony": false,
                "listing_type": "sale",
                "product_type": "market",
                "property_tax": null,
                "rental_price": null,
                "contract_type": "non_exclusive",
                "parking_spots": 2,
                "property_type": "default",
                "can_redecorate": false,
                "grouped_listings": [],
                "has_virtual_tour": true,
                "monthly_expenses": null,
                "number_of_floors": null,
                "property_subtypes": [
                    "home_apartment",
                    "apartment_default"
                ],
                "condominium_leisure": [
                    "TOWER_NO_HAS_ELEVATOR"
                ],
                "has_decorated_photos": false,
                "grouped_listings_count": 1,
                "condominium_infrastructure": []
            },
            {
                "id": "1vxc7kyu",
                "url": "https://loft.com.br/imovel/1vxc7kyu",
                "area": 118,
                "tags": [],
                "floor": null,
                "image": "https://content.loft.com.br/homes/1vxc7kyu/desktop_banner.jpg",
                "price": 420731,
                "agency": {
                    "id": "f2168ae6-11fc-4277-b976-29e52ad23377",
                    "name": "ANDRE MORAES ESPECIALISTA EM AVALIACOES E VENDAS IMOBILIARIAS LTDA"
                },
                "photos": [
                    "https://content.loft.com.br/homes/1vxc7kyu/desktop_facade01.jpg"
                ],
                "status": "FOR_SALE",
                "suites": 0,
                "address": {
                    "city": "S\u00e3o Paulo",
                    "state": "SP",
                    "facets": {
                        "city": "S\u00e3o Paulo, SP",
                        "neighborhood": "Guaianazes, S\u00e3o Paulo, SP"
                    },
                    "number": null,
                    "street": "Avenida Souza Ramos",
                    "country": "BR",
                    "latitude": -23.578765,
                    "longitude": -46.412126,
                    "postal_code": null,
                    "complex_name": null,
                    "neighborhood": "Guaianazes",
                    "neighborhood_slug": "guaianazes_sao-paulo_sp"
                },
                "bedrooms": 2,
                "currency": "BRL",
                "amenities": [
                    "play_game",
                    "gourmet",
                    "party_room",
                    "playground"
                ],
                "bathrooms": 1,
                "condo_fee": null,
                "home_type": "apartment",
                "thumbnail": "https://content.loft.com.br/homes/1vxc7kyu/banner_thumbnail.jpg",
                "created_at": "2026-01-20T03:58:51.111Z",
                "updated_at": "2026-01-20T03:58:51.111Z",
                "usage_type": "residential",
                "description": "Um empreendimento completo com toda seguran\u00e7a, conforto e lazer que voc\u00ea merece. Pre\u00e7o e disponibili...",
                "has_balcony": false,
                "listing_type": "sale",
                "product_type": "market",
                "property_tax": null,
                "rental_price": null,
                "contract_type": "non_exclusive",
                "parking_spots": 1,
                "property_type": "default",
                "can_redecorate": false,
                "grouped_listings": [
                    {
                        "id": "8tl8ll3i",
                        "url": "https://loft.com.br/imovel/8tl8ll3i",
                        "area": 118,
                        "image": "https://content.loft.com.br/homes/8tl8ll3i/mobile_banner.jpg",
                        "price": 402001,
                        "bedrooms": 2,
                        "agency_id": "a9c9e702-de62-4c33-926b-965e030a7ce1",
                        "bathrooms": 1,
                        "condo_fee": null,
                        "agency_name": "ANGELO VILLANACCI",
                        "rental_price": null,
                        "parking_spots": 1
                    },
                    {
                        "id": "p7da7asz",
                        "url": "https://loft.com.br/imovel/p7da7asz",
                        "area": 118,
                        "image": "https://content.loft.com.br/homes/p7da7asz/mobile_banner.jpg",
                        "price": 447807,
                        "bedrooms": 2,
                        "agency_id": "e7b3680b-bac0-4999-adf7-3a0ec1f637a4",
                        "bathrooms": 1,
                        "condo_fee": null,
                        "agency_name": "DPS IMOVEL",
                        "rental_price": null,
                        "parking_spots": 1
                    }
                ],
                "has_virtual_tour": true,
                "monthly_expenses": null,
                "number_of_floors": 21,
                "property_subtypes": [
                    "home_apartment",
                    "apartment_default"
                ],
                "condominium_leisure": [
                    "GAME_ROOM",
                    "GOURMET_AREA",
                    "PARTY_ROOM",
                    "PLAYGROUND",
                    "TOWER_NO_HAS_ELEVATOR"
                ],
                "has_decorated_photos": false,
                "grouped_listings_count": 7,
                "condominium_infrastructure": []
            }
        ],
        "facets": {
            "address.facets.city": {
                "S\u00e3o Paulo, SP": 387739
            },
            "address.facets.street": {
                "Alameda Ja\u00fa, Jardim Paulista, S\u00e3o Paulo, SP": 1173,
                "Alameda Franca, Jardim Paulista, S\u00e3o Paulo, SP": 1241,
                "Alameda Lorena, Jardim Paulista, S\u00e3o Paulo, SP": 1625
            },
            "address.facets.condominium": {
                "Condominio On Melo Alves, Rua Melo Alves, Cerqueira C\u00e9sar, S\u00e3o Paulo, SP": 267,
                "Condominio O Parque, Avenida Roque Petroni J\u00fanior, Jardim das Ac\u00e1cias, S\u00e3o Paulo, SP": 266,
                "Condominio Edif\u00edcio Horizonte Home & Offices, Avenida Presidente Juscelino Kubitschek, Vila Nova Concei\u00e7\u00e3o, S\u00e3o Paulo, SP": 293
            },
            "address.facets.neighborhood": {
                "Pinheiros, S\u00e3o Paulo, SP": 12511,
                "Vila Mariana, S\u00e3o Paulo, SP": 13345,
                "Jardim Paulista, S\u00e3o Paulo, SP": 13643
            }
        },
        "pagination": {
            "page": 1,
            "total": 5106,
            "window": 10000,
            "per_page": 2,
            "returned": 2,
            "total_pages": 2553,
            "has_next_page": true,
            "total_listings": 5672
        },
        "facets_stats": {
            ".price": {
                "avg": 2118447.5957384706,
                "max": 85000000,
                "min": 10001,
                "sum": 152413830723,
                "count": 71946
            }
        },
        "applied_filters": {
            "city": "S\u00e3o Paulo, SP",
            "bedrooms": 3,
            "exact_rooms": true,
            "listing_type": "sale"
        }
    },
    "meta": {
        "attempts": 1,
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Rejected Request | A parameter is missing, unknown or out of range. This response is not billed. |
| 422 | Rejected Request | A parameter is missing, unknown or out of range. This response is not billed. |
| 503 | Upstream Unavailable | Loft could not be reached or returned data that did not match the filters. Retry shortly. This response is not billed. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
