<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ReventaData</title>
    <description>The latest articles on DEV Community by ReventaData (@reventadata).</description>
    <link>https://dev.to/reventadata</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177459%2Fcc5d8f1f-f95e-4529-b62d-0bd135d64ca6.png</url>
      <title>DEV Community: ReventaData</title>
      <link>https://dev.to/reventadata</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/reventadata"/>
    <language>en</language>
    <item>
      <title>How to Scrape Real Estate &amp; Car Listings from OLX Brazil with OLX Brazil Scraper</title>
      <dc:creator>ReventaData</dc:creator>
      <pubDate>Sun, 11 Oct 2026 17:24:30 +0000</pubDate>
      <link>https://dev.to/reventadata/how-to-scrape-real-estate-car-listings-from-olx-brazil-with-olx-brazil-scraper-fae</link>
      <guid>https://dev.to/reventadata/how-to-scrape-real-estate-car-listings-from-olx-brazil-with-olx-brazil-scraper-fae</guid>
      <description>&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;Extracting market intelligence from Latin America's largest classifieds marketplace—&lt;strong&gt;OLX Brazil (&lt;a href="https://www.olx.com.br" rel="noopener noreferrer"&gt;olx.com.br&lt;/a&gt;)&lt;/strong&gt;—can be a technical nightmare. Between Next.js App Router server-side rendering, strict regional geo-blocking, and aggressive bot defenses, DIY scrapers frequently hit 403 Forbidden pages and captcha challenges.&lt;/p&gt;

&lt;p&gt;In this step-by-step &lt;strong&gt;OLX Brazil Scraper tutorial&lt;/strong&gt;, we'll walk through &lt;strong&gt;how to scrape OLX Brazil&lt;/strong&gt; listings at scale without writing custom browser automation scripts, managing proxy pools, or worrying about website layout changes. By the end of this guide, you'll have structured data (prices, vehicle mileage, apartment square footage, neighborhoods, and timestamps) exported directly into CSV, Excel, or JSON.&lt;/p&gt;

&lt;p&gt;⏱️ &lt;strong&gt;Time estimate:&lt;/strong&gt; About 10 minutes to set up and run your first extraction.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Prerequisites
&lt;/h2&gt;

&lt;p&gt;To follow this tutorial, you only need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A free &lt;a href="https://console.apify.com/" rel="noopener noreferrer"&gt;Apify account&lt;/a&gt; (you can sign up in 10 seconds using your GitHub or Google account).&lt;/li&gt;
&lt;li&gt;A web browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No coding experience is required&lt;/strong&gt; to run the Actor and export datasets, though we'll also show Python/API snippets for developers looking to integrate the data into automated pipelines.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. What You'll Achieve
&lt;/h2&gt;

&lt;p&gt;By following this &lt;strong&gt;OLX Brazil Scraper guide&lt;/strong&gt;, you will extract clean, typed records from any OLX Brazil category or region.&lt;/p&gt;

&lt;p&gt;For instance, if you are analyzing the real estate market in Brasília or tracking used Honda Civic prices across São Paulo, you will get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full listing titles, direct URLs, and primary image links.&lt;/li&gt;
&lt;li&gt;Exact asking prices in Brazilian Real (&lt;code&gt;BRL&lt;/code&gt;) and price drops.&lt;/li&gt;
&lt;li&gt;Verified geo-locations: City, State (&lt;code&gt;UF&lt;/code&gt;), and Neighborhood.&lt;/li&gt;
&lt;li&gt;Domain-specific typed attributes: area (m²), bedrooms, and parking spaces for real estate; year, mileage (km), and engine size for vehicles.&lt;/li&gt;
&lt;li&gt;Clean raw attributes dictionary passing through every ad chip (fuel, gearbox, condo fees / IPTU, battery health).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. Step-by-Step Tutorial Using the Actor
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Access OLX Brazil Scraper
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the official Actor page: &lt;a href="https://apify.com/reventadata/olx-scraper" rel="noopener noreferrer"&gt;OLX Brazil Scraper — Any Category, Any Keyword&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Click the blue &lt;strong&gt;Try for free&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;If you aren't already logged in, you'll be prompted to log in with GitHub or email.&lt;/li&gt;
&lt;li&gt;You will immediately land inside the &lt;strong&gt;Apify Console&lt;/strong&gt;, where the input configuration form for the Actor is ready to be filled out.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 2: Configure Primary Input &amp;amp; Category Path
&lt;/h3&gt;

&lt;p&gt;The OLX Brazil Scraper is built to be &lt;strong&gt;truly generic&lt;/strong&gt;: instead of hardcoding rigid category menus that break when the platform changes, it takes any URL path segment directly from your browser.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://www.olx.com.br" rel="noopener noreferrer"&gt;olx.com.br&lt;/a&gt; in a new tab.&lt;/li&gt;
&lt;li&gt;Navigate to your desired vertical or search filter (e.g., Apartments for rent in Brasília or Used SUVs).&lt;/li&gt;
&lt;li&gt;Copy the path after &lt;code&gt;olx.com.br/&lt;/code&gt; from the address bar. For example:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real Estate&lt;/strong&gt;: &lt;code&gt;imoveis/aluguel/apartamentos/estado-df/distrito-federal-e-regiao/brasilia&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cars &amp;amp; Vans&lt;/strong&gt;: &lt;code&gt;autos-e-pecas/carros-vans-e-utilitarios&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nationwide&lt;/strong&gt;: Leave the field completely blank to search all of Brazil!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Paste this string into the &lt;strong&gt;Category path (&lt;code&gt;categoryPath&lt;/code&gt;)&lt;/strong&gt; field.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;(Optional)&lt;/em&gt; Add keywords into &lt;strong&gt;Search terms (&lt;code&gt;searchQueries&lt;/code&gt;)&lt;/strong&gt;. For example, entering &lt;code&gt;["Civic", "Corolla"]&lt;/code&gt; will search for those specific terms &lt;em&gt;within&lt;/em&gt; your selected category.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Step 3: Fine-Tune with Filters &amp;amp; Advanced Settings
&lt;/h3&gt;

&lt;p&gt;OLX Brazil offers granular parameters depending on the vertical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price Range (&lt;code&gt;minPrice&lt;/code&gt; / &lt;code&gt;maxPrice&lt;/code&gt;)&lt;/strong&gt;: Enter numbers in BRL (e.g., Min &lt;code&gt;50000&lt;/code&gt;, Max &lt;code&gt;90000&lt;/code&gt;). When left blank, free listings and unpriced items are not discarded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vehicle Filters&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Min / Max Mileage (&lt;code&gt;minMileageKm&lt;/code&gt; / &lt;code&gt;maxMileageKm&lt;/code&gt;)&lt;/strong&gt;: Filter cars bounded by specific odometer ranges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accepts Trade-Ins Only (&lt;code&gt;acceptsTradeOnly&lt;/code&gt;)&lt;/strong&gt;: Toggle this boolean if you only want listings flagged with the &lt;em&gt;"Aceita trocas"&lt;/em&gt; badge.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sort Order (&lt;code&gt;sortBy&lt;/code&gt;)&lt;/strong&gt;: Choose between &lt;code&gt;Relevance&lt;/code&gt;, &lt;code&gt;Newest first&lt;/code&gt;, &lt;code&gt;Cheapest first&lt;/code&gt;, or &lt;code&gt;Most expensive first&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Row Caps (&lt;code&gt;maxItems&lt;/code&gt; &amp;amp; &lt;code&gt;maxPages&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;maxItems&lt;/code&gt;: Defaults to &lt;code&gt;300&lt;/code&gt; (can be raised if you need large-scale extraction).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;maxPages&lt;/code&gt;: Clamped to &lt;code&gt;100&lt;/code&gt; pages (OLX Brazil serves an identical hard clamp beyond page 100).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy Configuration (&lt;code&gt;proxyConfiguration&lt;/code&gt;)&lt;/strong&gt;: The Actor automatically defaults to &lt;strong&gt;Apify Unblocker&lt;/strong&gt;.
&amp;gt; ⚠️ &lt;strong&gt;Important Note&lt;/strong&gt;: OLX Brazil blocks standard datacenter and residential proxies outright with a 5.8 KB block page. Keep the default Unblocker setting enabled for 100% reach.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Step 4: Run the Actor
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;At the bottom-left of the screen, click the green &lt;strong&gt;Save &amp;amp; Run&lt;/strong&gt; (or &lt;strong&gt;Start&lt;/strong&gt;) button.&lt;/li&gt;
&lt;li&gt;The run status will immediately shift to &lt;strong&gt;Running&lt;/strong&gt; 🟡.&lt;/li&gt;
&lt;li&gt;In the live terminal log window, you'll see the scraper initialize with Apify Unblocker, request the category page, validate pagination, and parse listings.&lt;/li&gt;
&lt;li&gt;An average run of 300 items completes in &lt;strong&gt;45 to 60 seconds&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip:&lt;/strong&gt; You do not have to keep your browser tab open! The Actor runs in Apify's cloud container infrastructure. You can close your laptop, and the run will continue uninterrupted.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Step 5: View and Download Results
&lt;/h3&gt;

&lt;p&gt;Once the run finishes, the status badge turns to &lt;strong&gt;SUCCEEDED&lt;/strong&gt; 🟢:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on the &lt;strong&gt;Storage&lt;/strong&gt; tab (or scroll down to &lt;strong&gt;Export / Dataset&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;You'll see a tabular preview of all scraped records with columns for &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;price&lt;/code&gt;, &lt;code&gt;mileageKm&lt;/code&gt;, &lt;code&gt;location&lt;/code&gt;, &lt;code&gt;postedAt&lt;/code&gt;, and more.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;Export&lt;/strong&gt; button to download your dataset in your preferred format:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CSV / Excel&lt;/strong&gt; for spreadsheet analysis and market reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt; for feeding into downstream apps, APIs, or databases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSONL / XML&lt;/strong&gt; for data pipelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  5. Understanding Your Results
&lt;/h2&gt;

&lt;p&gt;Here is an actual record returned by the &lt;strong&gt;OLX Brazil Scraper&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1532323306"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Toyota Corolla Cross XRE 2.0 16V Flex AUT 2023"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://df.olx.com.br/distrito-federal-e-regiao/autos-e-pecas/carros-vans-e-utilitarios/toyota-corolla-cross-xre-2-0-16v-flex-aut-2023-1532323306"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"imageUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://img.olx.com.br/images/43/430647444372585.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;114900&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"currency"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"BRL"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"location"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Brasília - DF"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"city"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Brasília"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"neighbourhood"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Setor Residencial Leste"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"state"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DF"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"postedAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-09-04T02:09:41Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Carros, vans e utilitários"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mileageKm"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;82000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"color"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"engineSize"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0 - 2.9"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bodyType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SUV"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"year"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2023&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"acceptsTrade"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"attributes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"vehicle_brand"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Toyota"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"vehicle_model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Corolla Cross XRE 2.0 16V Flex"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"fuel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Flex"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"gearbox"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Automático"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"doors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"4 portas"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Field Breakdown:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;id&lt;/code&gt;&lt;/strong&gt;: Unique listing identifier on OLX Brazil.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;price&lt;/code&gt; &amp;amp; &lt;code&gt;currency&lt;/code&gt;&lt;/strong&gt;: Numeric integer price in BRL. Free items return &lt;code&gt;0&lt;/code&gt;; ads without listed prices return &lt;code&gt;null&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;areaM2&lt;/code&gt; / &lt;code&gt;bedrooms&lt;/code&gt; / &lt;code&gt;bathrooms&lt;/code&gt; / &lt;code&gt;parkingSpaces&lt;/code&gt;&lt;/strong&gt;: Populated automatically for real estate searches (returns &lt;code&gt;null&lt;/code&gt; for cars).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;mileageKm&lt;/code&gt; / &lt;code&gt;year&lt;/code&gt; / &lt;code&gt;color&lt;/code&gt; / &lt;code&gt;engineSize&lt;/code&gt;&lt;/strong&gt;: Populated for vehicle searches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;/strong&gt;: A dictionary containing every extra detail chip OLX publishes (e.g. &lt;code&gt;condominio&lt;/code&gt;, &lt;code&gt;IPTU&lt;/code&gt;, &lt;code&gt;doors&lt;/code&gt;, &lt;code&gt;fuel&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Seller Identity&lt;/strong&gt;: In compliance with privacy standards, search cards do not scrape private seller phone numbers or names.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Pro Tips &amp;amp; Advanced Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Bypassing the 100-Page Ceiling (~5,000 Ads)
&lt;/h3&gt;

&lt;p&gt;OLX Brazil enforces a hard platform clamp: page 101 serves identical content to page 100. If you are scraping a high-volume category (like all used cars nationwide), slice your runs by &lt;strong&gt;State / Region&lt;/strong&gt; (&lt;code&gt;estado-sp&lt;/code&gt;, &lt;code&gt;estado-rj&lt;/code&gt;, &lt;code&gt;estado-mg&lt;/code&gt;) or by &lt;strong&gt;Price brackets&lt;/strong&gt; (e.g. &lt;code&gt;R$ 20k-40k&lt;/code&gt;, &lt;code&gt;R$ 40k-60k&lt;/code&gt;) to extract tens of thousands of items without hitting the ceiling.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Guarding Against "Phantom Results"
&lt;/h3&gt;

&lt;p&gt;When an OLX search keyword matches zero items, the site silently renders up to 8 unrelated &lt;em&gt;"Mais recentes"&lt;/em&gt; fallback ads. Unlike brittle scrapers that accidentally collect these wrong items, the OLX Brazil Scraper checks the actual &lt;code&gt;0 - 0 de 0 resultados&lt;/code&gt; counter on the page and discards phantom fallback cards automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Programmatic Execution via Python
&lt;/h3&gt;

&lt;p&gt;Want to run this scraper on a cron schedule or trigger it from your backend? Use the official Apify Python SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;itertools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;islice&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;apify_client&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ApifyClient&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;apify_client.errors&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ApifyApiError&lt;/span&gt;

&lt;span class="c1"&gt;# Load your token from environment variables
&lt;/span&gt;&lt;span class="n"&gt;APIFY_TOKEN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;APIFY_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;APIFY_TOKEN&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error: APIFY_TOKEN environment variable not set.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ApifyClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;APIFY_TOKEN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;run_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;categoryPath&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;autos-e-pecas/carros-vans-e-utilitarios&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;searchQueries&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;toyota corolla&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;minPrice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;80000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;maxPrice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;140000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;maxItems&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;format_price&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sob consulta&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;R$ &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;,.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🚀 Triggering OLX Brazil Scraper on Apify...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;run&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;actor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reventadata/olx-scraper&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;run_input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;run_input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;dataset_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;defaultDatasetId&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Defensive check: verify run actually succeeded before reading
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SUCCEEDED&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;⚠️ Actor finished with status: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; (Dataset ID: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;dataset_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Run completed successfully! Dataset ID: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;dataset_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Paginate through extracted dataset items defensively
&lt;/span&gt;    &lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;islice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;iterate_items&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ℹ️ Query returned 0 results matching criteria.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;📦 Showing first &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; listings:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;ad&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;price_tag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;format_price&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;price&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
            &lt;span class="n"&gt;location&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;city&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;state&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)]))&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Localização não informada&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="n"&gt;year_tag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;year&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;year&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;• [&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;price_tag&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;] &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;ad&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Sem título&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; | &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="si"&gt;}{&lt;/span&gt;&lt;span class="n"&gt;year_tag&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;ApifyApiError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❌ Apify API Exception: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;❌ Unexpected Error: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Troubleshooting Common Issues
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Error: Run finished with status FAILED (0 rows found)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;The Actor is intentionally designed to raise an error if zero rows are returned rather than producing an empty file. This protects scheduled alerts from missing schema changes.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Fix&lt;/em&gt;: Verify that your &lt;code&gt;categoryPath&lt;/code&gt; segment exists on &lt;a href="https://www.olx.com.br" rel="noopener noreferrer"&gt;olx.com.br&lt;/a&gt; and that your keyword and price filters aren't overly restrictive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy Error / Anti-Bot block&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;If you manually altered the &lt;code&gt;proxyConfiguration&lt;/code&gt; field to use datacenter proxies, the run will fail.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Fix&lt;/em&gt;: Revert proxy settings to Apify Unblocker (&lt;code&gt;apifyProxyGroups: ["UNBLOCKER"]&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Next Steps &amp;amp; Automation
&lt;/h2&gt;

&lt;p&gt;Now that you know &lt;strong&gt;how to scrape OLX Brazil&lt;/strong&gt;, you can set up automated scheduled runs inside the Apify Console (under &lt;strong&gt;Schedules&lt;/strong&gt;) to track price fluctuations every morning or push new property listings directly into a webhook or Google Sheets.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;Actor Link&lt;/strong&gt;: &lt;a href="https://apify.com/reventadata/olx-scraper" rel="noopener noreferrer"&gt;OLX Brazil Scraper on Apify Store&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Pricing&lt;/strong&gt;: Pay-per-event at &lt;strong&gt;$0.001 per result&lt;/strong&gt; ($1.00 per 1,000 listings). No recurring monthly fee—you only pay for data you collect.&lt;/li&gt;
&lt;/ul&gt;







&lt;h2&gt;
  
  
  Cross-Platform Guides &amp;amp; Formats
&lt;/h2&gt;

&lt;p&gt;Looking for a different format or audience perspective?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📘 &lt;strong&gt;Deep-Dive Technical Guide (Hashnode)&lt;/strong&gt;: &lt;a href="https://reventadata.hashnode.dev/complete-guide-how-to-scrape-real-estate-car-listings-from-olx-brazil-using-olx-brazil-scraper" rel="noopener noreferrer"&gt;Complete Guide: How to Scrape Real Estate &amp;amp; Car Listings from OLX Brazil&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;☕ &lt;strong&gt;No-Code Beginner Story (Medium)&lt;/strong&gt;: &lt;a href="https://medium.com/@reventadata/how-i-extracted-thousands-of-real-estate-car-deals-from-olx-brazil-in-minutes-using-olx-brazil-22f7bbd6ad99" rel="noopener noreferrer"&gt;How I Extracted Thousands of Real Estate &amp;amp; Car Deals from OLX Brazil in Minutes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🚀 &lt;strong&gt;Turnkey Actor&lt;/strong&gt;: &lt;a href="https://apify.com/reventadata/olx-scraper" rel="noopener noreferrer"&gt;OLX Brazil Scraper on Apify Store&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Discussion Prompt
&lt;/h3&gt;

&lt;p&gt;💬 &lt;em&gt;What vertical are you planning to extract from OLX Brazil—real estate trends, used car arbitrage, or electronics? Drop a comment below if you have any questions or need custom filter tips!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webscraping</category>
      <category>python</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
