Standvirtual Portugal Car Scraper icon

Automation · E-commerce

Standvirtual Portugal Car Scraper

Scrape used-car listings from standvirtual.com, Portugal's #1 car marketplace (OLX/Adevinta group) — price (EUR), make, model, year, mileage, fuel, gearbox, engine power, seller (dealer/private), location, and photos. Export to JSON or CSV; optionally enrich with the full Portuguese description.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Standvirtual.com is Portugal's largest car marketplace and the default place Portuguese buyers and dealers trade used cars (carros usados). It publishes no public API. This Actor wraps a polite scrape of the carros listing — paste a filtered Standvirtual search URL or use the default listing page, and pull every listing's price (EUR), make/model/version, year, mileage (km), fuel, gearbox, engine power and size, seller type, location, and photos. Flip on detail enrichment and we fetch each listing's page for the full Portuguese description, body type, and colour. Built on curl-cffi with browser TLS impersonation.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

Use cases

  • Used-car price analytics — track asking prices by make/model/year across the Portuguese market.
  • Dealer inventory monitoring — diff successive runs to spot new arrivals and price cuts at specific stands.
  • Market research — aggregate fuel-type and gearbox mix to gauge EV/hybrid adoption in Portugal.
  • Lead generation — build a directory of car dealers from <code>seller_name</code> + <code>location</code>.
  • Arbitrage / sourcing — find under-priced listings filtered by mileage, year, and power.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchUrl string no Full standvirtual.com search/results URL with your filters already applied (e.g. https://www.standvirtual.com/carros/bmw?search%5Bfilter_float_price%3Ato%5D=20000). Leave empty to scrape the default used-car listing…
maxResults integer no Hard cap on dataset rows. Standvirtual paginates 32 listings per page; the Actor walks pages until this cap or the last page.
enrichDetails boolean no Fetch each listing's detail page for the full Portuguese description, body type, and colour. The search payload already carries price, specs, seller, and photos — turn this off to halve the request count.
{
  "searchUrl": "",
  "maxResults": 5,
  "enrichDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

listing_idlisting_urltitlemakemodelversionyearpricecurrencymileage_kmfuel_typetransmissionengine_power_hpengine_size_ccbody_typecolor

{
  "listing_id": "8097550709",
  "listing_url": "https://www.standvirtual.com/carros/anuncio/renault-clio-ver-1-6-e-tech-intens-ID8Q0uQB.html",
  "title": "Renault Clio 1.6 E-Tech Intens",
  "make": "Renault",
  "model": "Clio",
  "version": "1.6 E-Tech Intens",
  "year": 2021,
  "price": 14750,
  "currency": "EUR",
  "mileage_km": 120000,
  "fuel_type": "H\u00edbrido (Gasolina)",
  "transmission": "Autom\u00e1tica",
  "engine_power_hp": 140,
  "engine_size_cc": 1598,
  "body_type": "Utilit\u00e1rio",
  "color": "Prateado",
  "first_registration": "2021",
  "location": "Cascais e Estoril",
  "region": "Lisboa",
  "seller_type": "dealer",
  "seller_name": "Stand Cascais",
  "photo_urls": [
    "https://ireland.apollo.olxcdn.com/v1/files/nc2mmgv80b6c-STDVTLPT/image;s=640x480"
  ],
  "description": "RENAULT CLIO E-TECH INTENS 140 CV AUTOM\u00c1TICO ...",
  "posted_date": "2026-06-01T21:07:24Z",
  "scraped_at": "2026-06-02T00:00:00+00:00"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
result-row$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Do I need a Standvirtual account or API key?
No. Standvirtual offers no public API. This Actor scrapes the public carros listing politely — see the ToS Notice in the README.
How do I scrape a filtered search?
Apply your filters on standvirtual.com, copy the resulting URL from your browser, and paste it into <code>searchUrl</code>. We walk the result pages from there.
Is the detail enrichment worth it?
It adds the full Portuguese description, body type, and colour per listing at the cost of one extra request each. Price, specs, seller, location, and photos all come from the search payload — set <code>enrichDetails</code> to false to halve requests.
What currency are prices in?
Standvirtual prices are in EUR; the Actor reads the currency code from each listing and reports it in <code>currency</code>. Mileage is always in kilometres.
Why does Standvirtual need a residential proxy?
Standvirtual sits behind DataDome anti-bot. Datacenter IPs get challenged; Portuguese residential exits sail through. The Actor defaults to RESIDENTIAL and rotates sessions on any block.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Read more

Articles about this Actor

Related Actors

Teams that run this also run