OLX Portugal Classifieds Scraper
Pricing
from $0.02 / 1,000 result extracteds
OLX Portugal Classifieds Scraper
Scrape public OLX.pt classifieds from category/search pages. Export prices, locations, images, seller details, and listing URLs.
Pricing
from $0.02 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Scrape public OLX.pt classified listings from category pages, search result pages, and keyword searches. Export listing URLs, titles, prices, locations, dates, images, source pages, and optional detail-page enrichment in a clean dataset ready for spreadsheets, BI tools, CRMs, or automations.
What does OLX Portugal Classifieds Scraper do?
OLX Portugal Classifieds Scraper collects public listing data from OLX.pt, one of Portugal's most active classified marketplaces.
It can scrape:
- π Real estate category pages
- π Car and vehicle listings
- π± Electronics and consumer goods searches
- π§° Services and local offers
- π Any public OLX.pt search URL you provide
The actor starts from OLX category URLs or a keyword search, follows pagination, extracts listing cards, and saves structured results to the default Apify dataset.
Who is it for?
This scraper is useful for teams that need repeatable OLX Portugal marketplace data.
- ποΈ Real estate analysts monitoring rental and sale supply in Portuguese cities
- π Vehicle price researchers tracking used car offers by region
- π Marketplace intelligence teams comparing second-hand prices and availability
- π Growth and lead-generation teams finding public seller opportunities
- π§ͺ Data analysts building market snapshots from public classified listings
- π€ Automation builders feeding OLX listings into alerts, CRMs, or dashboards
Why use this OLX.pt scraper?
Manual OLX research is slow and difficult to repeat. This actor gives you structured data with consistent fields and pagination controls.
Benefits:
- β‘ Fast HTTP-based scraping, no browser required for the main listing mode
- π§Ύ Clean JSON output with price, currency, location, images, and page metadata
- π Repeatable runs for monitoring the same categories or searches
- π― Supports both ready-made OLX URLs and keyword searches
- π§© Works with Apify API, webhooks, datasets, integrations, and MCP tools
What data can you extract from OLX Portugal?
The default dataset contains one row per OLX listing.
| Field | Description |
|---|---|
listingId | OLX card ID or ID parsed from the listing URL |
url | Canonical OLX listing URL |
title | Public listing title |
priceText | Price as displayed on OLX |
price | Parsed numeric price when available |
currency | Currency code, usually EUR |
location | Public location text from the card |
postedAt | Original Portuguese posted, updated, or promoted date text |
postedAtIso | ISO timestamp when the displayed date and time can be normalized safely |
categoryPath | Per-row pathname derived from the OLX source URL |
imageUrl | Main listing image URL |
imageUrls | Image URLs parsed from the listing card |
sellerName | Public seller name when detail mode finds it |
sellerType | Public seller type when visible |
description | Detail-page description when detail mode is enabled |
attributes | Visible detail-page parameters when found |
isPromoted | Whether the card appears promoted/top-listed |
detailStatus | not_requested, fetched, or failed for detail enrichment |
detailError | Safe failure category when detail enrichment failed |
sourceUrl | OLX page where the listing was found |
page | Search result page number |
scrapedAt | ISO timestamp of extraction |
How much does it cost to scrape OLX Portugal classifieds?
This actor uses pay-per-event pricing:
- Run start: $0.005 per run.
- Per listing: $0.000030423 on Free and Starter/BRONZE, with lower rates on higher Apify plans.
| Plan tier | Price per listing | Listing charge for 1,000 |
|---|---|---|
| Free | $0.000030423 | $0.0304 |
| Starter / BRONZE | $0.000030423 | $0.0304 |
| Scale / SILVER | $0.00002373 | $0.0237 |
| Business / GOLD | $0.000018254 | $0.0183 |
You control cost with maxResults and maxPages. For a first run, keep the prefilled limit around 20 listings. Larger monitoring jobs can increase the limit after you confirm the output fits your workflow.
How to scrape OLX.pt listings
- Open the actor on Apify.
- Paste one or more OLX.pt category or search URLs into OLX.pt category or search URLs.
- Set Maximum listings.
- Keep Open detail pages disabled for the fastest card-only run.
- Enable detail pages only if you need descriptions, seller names, or attributes.
- Click Start.
- Download the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
Input options
OLX.pt category or search URLs
Use this when you already have OLX result pages. Inputs are validated and must use olx.pt or an OLX.pt subdomain; unsupported hosts fail with an actionable error instead of being requested.
https://www.olx.pt/imoveis/https://www.olx.pt/carros-motos-e-barcos/https://www.olx.pt/ads/q-iphone/
Search keyword
If startUrls is empty, the actor can build an OLX keyword URL from searchQuery, such as:
iphoneapartamento lisboabicicleta estrada
Fallback category path
If both startUrls and searchQuery are empty, the actor uses categoryPath, defaulting to /imoveis/.
Maximum listings
The global cap for saved rows. The actor stops as soon as this number is reached.
Open detail pages
When enabled, the actor opens each listing URL and tries to extract description, seller name/type, and public attributes. Detail pages use the same bounded retry and Portugal residential-proxy fallback as result pages. A failed detail request never drops the card row: inspect detailStatus and the optional safe detailError category.
Detail mode is slower because it makes one extra request per listing. detailConcurrency controls how many detail pages run at once (default 5, range 1β20). Lower it for gentler, lower-memory monitoring runs.
Normalized dates
postedAt keeps OLX's Portuguese display text. postedAtIso is added only when the value includes an unambiguous date and time, using one run-level reference time and the Europe/Lisbon timezone. Promotion-only dates and unsupported or ambiguous labels remain unset rather than being guessed.
Example input
{"startUrls": [{ "url": "https://www.olx.pt/imoveis/" }],"maxResults": 30,"includeDetails": false,"detailConcurrency": 5,"maxPages": 3,"maxRequestRetries": 3}
Example output
{"listingId": "669245007","url": "https://www.olx.pt/d/anuncio/quarto-da-natureza-IDJi5cj.html","title": "Quarto da Natureza","priceText": "350 β¬","price": 350,"currency": "EUR","location": "Carregado E Cadafais","postedAt": "Para o topo a 14 de maio de 2026","categoryPath": "/imoveis/","detailStatus": "not_requested","imageUrl": "https://ireland.apollo.olxcdn.com/.../image;s=216x152;q=50","isPromoted": true,"sourceUrl": "https://www.olx.pt/imoveis/","page": 1,"scrapedAt": "2026-05-17T08:00:00.000Z"}
Tips for better OLX scraping
- π― Use specific category URLs when possible.
- π Use keyword search for product monitoring.
- π Start with a low
maxResultsvalue to verify your query. - β‘ Leave detail pages off for fast list monitoring.
- π§Ύ Turn detail pages on only when descriptions or seller fields matter, and tune
detailConcurrencyfor the workload. - π Schedule the actor to monitor categories over time; use
postedAtIso,detailStatus, andsourceUrlas monitoring guardrails. - π Use separate runs for different cities or categories to keep analysis clean.
Integrations and workflows
You can connect this actor to common Apify workflows:
- Send new OLX listings to Google Sheets.
- Push real estate listings to Airtable for review.
- Trigger Slack alerts when new listings match a query.
- Export daily vehicle prices to a data warehouse.
- Feed marketplace intelligence dashboards with fresh CSV files.
- Use webhooks to launch downstream enrichment actors.
API usage: using the OLX scraper with the Apify API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/olx-portugal-classifieds-scraper').call({startUrls: [{ url: 'https://www.olx.pt/imoveis/' }],maxResults: 30,includeDetails: false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/olx-portugal-classifieds-scraper').call(run_input={'startUrls': [{'url': 'https://www.olx.pt/imoveis/'}],'maxResults': 30,'includeDetails': False,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~olx-portugal-classifieds-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.olx.pt/imoveis/"}],"maxResults":30,"includeDetails":false}'
Use with AI agents via MCP
OLX Portugal Classifieds Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Setup for Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/olx-portugal-classifieds-scraper"
Setup for Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/olx-portugal-classifieds-scraper"}}}
Your AI assistant will authenticate with your Apify account on first use. You can then reference automation-lab/olx-portugal-classifieds-scraper in prompts.
Example prompts:
- "Use automation-lab/olx-portugal-classifieds-scraper to collect 50 OLX.pt apartment listings in Lisbon and summarize prices."
- "Run the OLX Portugal scraper for iPhone listings and identify the cheapest offers."
- "Scrape OLX Portugal real estate listings and create a CSV grouped by location."
Dependencies, data handling, and retention
The actor uses deterministic HTTP requests and local parsing; it does not call an AI model or send data to an AI provider. Public OLX.pt pages are the source dependency. Direct requests are preferred, with a bounded Apify residential-proxy fallback using a Portugal exit when transient blocking persists.
Inputs, public source URLs, and normal HTTPS metadata may transit Apify infrastructure. Results and logs stay in the run's Apify storage under your account retention settings; the actor creates no external result cache or separate database. You can delete runs, datasets, and logs through Apify Console or API controls. Proxy credentials and raw request errors are never written to output.
OLX is a trademark of its owner. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by OLX.
Support
For reproducible problems, use the Actor's Issues tab on Apify and include a sanitized input, run ID, expected behavior, and the observed detailStatus/detailError values. Never include account credentials or private contact data.
Legality: is it legal to scrape OLX Portugal?
This actor extracts publicly available listing information from OLX.pt pages. You are responsible for using the output lawfully and respecting applicable rules, privacy requirements, and platform terms.
Do not use this actor to scrape private account data, bypass login protections, spam sellers, or make automated decisions that require legal review.
Limitations
- OLX page markup can change, so selectors may need maintenance over time.
- Some fields are only available on detail pages;
detailStatus=failedmeans card data was preserved after detail recovery was exhausted. postedAtIsois intentionally absent for ambiguous, unsupported, or promotion-only date labels.- Start URLs must use OLX Portugal hosts. Seller phone numbers and private contact details are not collected.
- Search availability depends on what OLX publicly shows for your query.
- Very broad searches may require more pages and a higher
maxResultslimit.
FAQ and troubleshooting
How fast is the OLX Portugal scraper?
Card-only HTTP runs usually finish faster than detail mode because no browser or per-listing detail request is needed. Runtime varies with the result limit, OLX response times, retries, and whether proxy fallback is required.
How much does it cost to scrape OLX.pt?
The actor charges a small run-start fee plus a per-listing event. Use maxResults to cap the total cost of each run.
Does OLX Portugal have an official API?
This actor is designed for public OLX.pt pages when you need export-ready listing data and Apify integrations without building your own scraper.
Why did I get fewer listings than requested?
The selected OLX category or search may have fewer visible results, repeated promoted cards, or pagination limits. Try a broader query or increase maxPages.
Why are descriptions empty?
Descriptions require includeDetails: true. In card-only mode, the actor does not open listing pages. In detail mode, check detailStatus: fetched means the page was retrieved even if OLX did not expose a description, while failed includes a safe detailError category.
Why is price missing?
Some OLX ads show negotiable, free, exchange, or contact-only pricing. In those cases priceText may be present while numeric price is empty.
Related scrapers
Explore other Automation Lab actors for marketplace, ecommerce, real estate, and lead-generation workflows:
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/zillow-scraper
- https://apify.com/automation-lab/booking-scraper
- https://apify.com/automation-lab/trustpilot-scraper
Changelog
2026-09-22
More reliable detail enrichment with bounded concurrency and shared retry/proxy recovery, explicit per-row detail outcomes, monitoring-ready ISO timestamps, per-source path provenance, and OLX.pt URL validation.
Initial release
OLX.pt category/search scraping, pagination, listing-card extraction, optional detail enrichment, and structured dataset output.