OLX APIolx.com.br ↗
Search OLX Brazil property listings for sale and rent. Filter by price, location, bedrooms, and area. Retrieve full listing details including specs and advertiser info.
What is the OLX API?
This API provides access to OLX Brazil real estate data across 4 endpoints, covering property search for sale and rent, keyword-based discovery, and full listing details. The get_listing_detail endpoint returns structured specs (bedrooms, bathrooms, parking, total area, useful area), advertiser contact information, and the full property description, all from a single listing URL.
curl -X GET 'https://api.parse.bot/scraper/bf7032e5-846c-4e0e-a461-76d9559e9e73/search_real_estate_for_sale?page=1&bedrooms=2&location=sp&max_area=200&min_area=50&bathrooms=1&max_price=500000&min_price=100000&property_type=casas' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace olx-com-br-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: OLX Brazil Real Estate SDK — bounded, re-runnable; every call capped."""
from parse_apis.olx_brazil_real_estate_api import OLX, PropertyType, ListingNotFound
olx = OLX()
# Search for houses for sale in São Paulo with filters
sp_sales = olx.salesearch("sp")
for listing in sp_sales.search(property_type=PropertyType.CASAS, bedrooms=2, min_price=200000, max_price=600000, limit=5):
print(listing.title, listing.price, listing.location, listing.area)
# Get full details for the first listing found
first = sp_sales.search(property_type=PropertyType.APARTAMENTOS, limit=1).first()
if first:
detail = first.details()
print(detail.title, detail.price)
print(detail.location.city, detail.location.state, detail.location.neighbourhood)
print(detail.specs.bedrooms, detail.specs.bathrooms, detail.specs.useful_area)
print(detail.advertiser.name, detail.advertiser.type)
# Search for apartments for rent in Rio de Janeiro
rj_rentals = olx.rentalsearch("rj")
for rental in rj_rentals.search(property_type=PropertyType.APARTAMENTOS, max_price=3000, limit=3):
print(rental.title, rental.price, rental.category, rental.is_professional)
# Keyword search across all property types
for result in olx.salesearches.search_by_keyword(query="casa com piscina", limit=3):
print(result.title, result.price, result.location)
# Typed error handling: fetch a listing by URL
try:
broken = olx.listings.get(url="https://sp.olx.com.br/imoveis/nonexistent-listing-000000")
print(broken.title, broken.price)
except ListingNotFound as exc:
print(f"listing gone: {exc}")
print("exercised: salesearch.search / listing.details / rentalsearch.search / salesearches.search_by_keyword / listings.get")
Search for real estate properties for sale in Brazil. Returns paginated results with property summaries including title, price, location, and basic specs. Paginates via integer page number. Each item includes a URL that can be passed to get_listing_detail for full property information.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| bedrooms | integer | Minimum number of bedrooms. |
| location | string | Location path segment for filtering by region (e.g. 'sp', 'rj', 'sp/grande-sao-paulo'). |
| max_area | integer | Maximum area in square meters. |
| min_area | integer | Minimum area in square meters. |
| bathrooms | integer | Minimum number of bathrooms. |
| max_price | integer | Maximum price in BRL. |
| min_price | integer | Minimum price in BRL. |
| property_type | string | Type of property to search for. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"items": "array of property listing summaries",
"total": "integer total number of matching listings"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"url": "https://rs.olx.com.br/regioes-de-porto-alegre-torres-e-santa-cruz-do-sul/imoveis/casa-4-quartos-a-venda-no-bairro-niteroi-com-110m-1509334652",
"area": "110m²",
"date": 1781080886,
"price": "R$ 450.000",
"rooms": "4",
"title": "Casa 4 Quartos a venda no bairro Niteroi com 110m²",
"garage": null,
"images": [
"https://img.olx.com.br/images/15/152646774053972.jpg"
],
"listId": 1509334652,
"category": "Casas",
"location": "Canoas - RS",
"bathrooms": "1",
"is_professional": true
}
],
"total": 1825329
},
"status": "success"
}
}About the OLX API
Search and Filter Listings
The search_real_estate_for_sale and search_real_estate_for_rent endpoints return paginated arrays of property summaries. Both accept the same filter set: location (a path segment such as 'sp', 'rj', or 'sp/grande-sao-paulo'), min_price and max_price in BRL, min_area and max_area in square meters, and minimum bedrooms and bathrooms counts. Each item in the returned items array includes title, price, listId, url, location, date, images, category, is_professional, area, and rooms. The total field gives the full match count across all pages.
Keyword Search
The search_by_keyword endpoint accepts a free-text query parameter — for example 'casa com piscina' or 'apartamento mobiliado' — and returns matching listings across all for-sale property types. The response shape is identical to the structured search endpoints, giving the same items summary array and total count. This endpoint is useful when users have specific feature requirements that don't map neatly to the available filter parameters.
Full Listing Detail
Passing a listing URL from any search result to get_listing_detail returns the complete property record. The specs object contains bedrooms, bathrooms, parking, total_area, and useful_area. The location object breaks down into address, neighbourhood, city, state, and zipcode. The advertiser object includes the seller's name, type (professional or particular), and phone. The description field delivers the full property description with HTML formatting preserved.
The OLX API is a managed, monitored endpoint for olx.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when olx.com.br changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official olx.com.br API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a property price index for Brazilian cities by aggregating
min_price/max_pricefiltered results across regions. - Monitor new rental listings in a specific neighbourhood using
search_real_estate_for_rentwith alocationpath and polling bydate. - Enrich a CRM with advertiser contact details and property specs by feeding listing URLs into
get_listing_detail. - Identify professional vs. private sellers in a market segment using the
is_professionalflag returned in search results. - Power a property recommendation engine with keyword-based search via
search_by_keywordusing natural-language queries. - Aggregate listing images and descriptions for a real estate content platform using the
imagesarray anddescriptionfield fromget_listing_detail. - Compare area-to-price ratios across Brazilian states by combining
min_area/max_areafilters withlocationacross multiple search calls.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OLX Brazil have an official developer API?+
What does the `location` parameter accept in the search endpoints?+
location parameter takes a path segment string matching OLX Brazil's regional URL structure. Accepted values include broad state codes like 'sp' or 'rj', as well as sub-regional paths such as 'sp/grande-sao-paulo'. Listings are filtered to the specified region. There is no geocoordinate or bounding-box filter currently.Does the API return commercial properties or only residential real estate?+
Is there a limit to how many pages of results I can retrieve?+
page parameter and a total count, allowing you to paginate through results. In practice, OLX Brazil limits how deep into results pages are accessible — very high page numbers may return empty or truncated results depending on the query and filter combination. The total field reflects the count reported by the source, not the number of pages guaranteed to be retrievable.