Webmotors Scraper
Webmotors car listings as rows: price and FIPE position, mileage, year, gearbox, fuel, colour, seller type and town. Search by make, model or a pasted link.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
make,model,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0065 per listing = $6.5 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Listing returned | One vehicle listing returned in the dataset. Diagnostic rows and the labelled sample row are not charged. | $0.0065 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
make | The make as Webmotors spells it: Fiat, Volkswagen, Chevrolet, Mercedes-Benz, Caoa Chery. A make the site doesn't know returns nothing and charges nothing. Leave it empty if you only use search links below. | string |
model | Optional, and it needs a make above. The model as the site names it: Argo, Onix, Corolla, Compass. A model the site doesn't know returns nothing and charges nothing. | string |
maxItems | The most listings returned in one run, across every search. Each one returned is charged once. Repeats are skipped and cost nothing. Webmotors lets a single search reach 10,000 listings; past that, narrow it by price, year or state. | integer |
sort | The order listings are read in. With a limit below the number of listings, this decides which ones you get. | string |
searchUrls | Or paste up to 10 results pages from webmotors.com.br, with the filters you picked there. One car's page is not a search and is skipped. The fields on this form don't apply to a pasted link. | array |
state | Only cars sold in this state. Leave it empty for the whole country. There is no city filter on the search this actor uses, but every row carries the town, so you can narrow it afterwards. | string |
priceFrom | Lowest asking price, in reais. | integer |
priceTo | Highest asking price, in reais. | integer |
yearFrom | Earliest model year. Brazilian listings carry two years, the year built and the model year; this is the model year. | integer |
yearTo | Latest model year. | integer |
mileageFrom | Lowest mileage, in kilometres. | integer |
mileageTo | Highest mileage, in kilometres. Set it to 0 to get only brand-new cars. | integer |
fuel | Flex cars are "Gasolina e álcool". Set this and every row comes back tagged with it; leave it empty and the fuel is read out of the version text instead, which names it on about 8 of every 10 listings. | string |
transmission | The site keeps CVT, DCT and the other automatics apart, so pick the one you mean. | string |
bodyType | "Utilitário esportivo" is the site's name for an SUV; "Perua/SW" is an estate. | string |
color | The colour the seller picked. "Indefinida" is the site's own catch-all. | string |
armored | Armoured cars are a real slice of the Brazilian market, so the site filters on it. | string |
sellerType | "Loja" is an independent dealer, "Concessionária" a franchised one, "Pessoa Física" a private seller. | string |
features | Every item you pick has to be on the car. The list is the site's own, in its own words. | array |
attributes | The badges sellers put on a listing. "Aceita troca" means they'll take a trade-in, "IPVA pago" that this year's road tax is paid, "Alienado" that the car still has finance on it. | array |
What you get
A structured dataset — each result includes fields like:
titlepricefipePercentyearFabricationyearModelmileageKmtransmissionfuelcolorcitystatesellerTypedealerNameurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Webmotors Scraper: Brazilian car listings with prices and their FIPE position
Give it a make and model with any of the site's own filters, or paste Webmotors search links, and you get one row per car for sale: make, model, version, both years, the asking price and where it sits against the FIPE table, mileage, gearbox, fuel, colour, body, the listing's feature list, dealer or private seller, the town, photos and a link. Street addresses, postcodes and the phone numbers sellers type into their blurbs are left out on purpose. One search never reaches past 10,000 listings, which is the site's own ceiling, so a wide search such as every Chevrolet has to be split by price, year or state.
| Input | A make and model with filters, or Webmotors search links |
| Output | One row per car listing |
| Ceiling | 10,000 listings per search, 50,000 per run |
| Account needed | None |
| Price | $6.50 per 1,000 listings, flat on every plan |
🔍 What Webmotors Scraper does
Every row comes from the site's own search results. No listing page is opened, so anything that only lives on a car's own page, such as the full options list, the seller's phone or a financing quote, is not here.
fipePercent is the field to sort on. Brazil prices used cars against the FIPE table and Webmotors shows each listing's position on it: 105 means the seller asks 5% above FIPE for that exact version and year, and 92 means 8% below. Across 384 rows from 16 searches in September 2026, 362 carried it, so expect about 1 in 17 to be null.
Listings carry two years, the year built and the model year, and they often differ. Both are in the row, and the year filter works on the model year.
Ask the site for a make it does not know and it answers with every car it has, 353,000 of them. So the run checks that the answer names the make and model you asked for before keeping a row. A typo returns nothing and costs nothing.
Fuel is a filter on the site, not a field on the listing. With the fuel filter set, every row is tagged with it. Without it, the fuel is read from the version text, which names it on about 8 listings in 10, and the rest are null rather than guessed.
The street and house number, the CEP and the neighbourhood are dropped, and a private seller gets no dealer name or id. Phone numbers and email addresses in the free text become [telefone removido] or [email removido]. One typed in an unusual way can still slip through; if you spot one, report it.
📥 What you give it
{
"make": "Fiat",
"model": "Argo",
"state": "São Paulo (SP)",
"priceTo": 90000,
"yearFrom": 2022,
"mileageTo": 60000,
"transmission": "Automática",
"sellerType": "Pessoa Física",
"sort": "price-asc",
"maxItems": 500
}
| Field | If you leave it out | What it is |
|---|---|---|
make | no form search, and a free sample row unless searchUrls is set | The make as Webmotors spells it: Fiat, Volkswagen, Chevrolet, Mercedes-Benz, Caoa Chery. |
model | every model of that make | The model as the site names it: Argo, Onix, Corolla, Compass. It needs a make. |
maxItems | 100 | Listings across every search, 1 to 50,000. The form starts at 50. Each search gets an equal share, and what one does not use passes to the next. |
sort | relevance | relevance, year-desc, mileage-asc, price-asc or price-desc. When there are more cars than your limit, it decides which ones you get. |
searchUrls | none | Up to 10 results pages from webmotors.com.br. The fields on this form do not apply to a pasted link, and a single car's page is skipped. |
state | the whole country | As the form lists it, such as São Paulo (SP). There is no city filter, but every row carries the town. |
priceFrom, priceTo | no bound | Asking price in reais. |
yearFrom, yearTo | no bound | Model year. |
mileageFrom, mileageTo | no bound | Kilometres. A mileageTo of 0 means brand-new cars only. |
fuel | no filter | The site's own values, such as Gasolina e álcool for a flex car. |
transmission | no filter | Automática, Manual, CVT and the site's other gearbox names, kept apart the way the site keeps them. |
bodyType | no filter | Utilitário esportivo is an SUV and Perua/SW an estate. |
color | no filter | The colour the seller picked. Indefinida is the site's catch-all. |
armored | no filter | Sem blindagem or Com blindagem. |
sellerType | no filter | Loja for an independent dealer, Concessionária for a franchised one, Pessoa Física for a private seller. |
features | no filter | Equipment, from the site's own list. Every item you pick has to be on the car. |
attributes | no filter | Listing badges such as Aceita troca (takes a trade-in), IPVA pago or Alienado (still under finance). |
📤 What you get back
A real row from a real run, a private seller whose blurb had a phone number in it:
{
"listingId": "79971170",
"title": "FIAT ARGO 1.8 E.TORQ FLEX HGT AT6",
"make": "FIAT",
"model": "ARGO",
"version": "1.8 E.TORQ FLEX HGT AT6",
"yearFabrication": 2020,
"yearModel": 2021,
"price": 77968,
"currency": "BRL",
"fipePercent": 100,
"mileageKm": 36000,
"transmission": "Automática",
"fuel": "Gasolina e álcool",
"fuelSource": "version",
"color": "Preto",
"bodyType": "Hatchback",
"doors": 4,
"engineSize": "1.8",
"horsePower": "139 cv",
"traction": "Dianteira",
"trunkCapacity": "300 l",
"fuelTankCapacity": "48 l",
"wheelSize": "16",
"armored": false,
"hadAuctionHistory": false,
"condition": "used",
"features": ["Único dono", "IPVA pago", "Licenciado"],
"description": "Vidro com Insulfime AntiVandalismo / Segredo nos Pneus / Banco de Couro Chamar no Whatsapp [telefone removido]",
"sellerType": "private",
"sellerCategory": "Pessoa Física",
"dealerName": null,
"dealerId": null,
"city": "São Paulo",
"state": "São Paulo (SP)",
"url": "https://www.webmotors.com.br/comprar/fiat/argo/18-etorq-flex-hgt-at6/4-portas/2020-2021/79971170",
"images": ["https://image.webmotors.com.br/_fotos/anunciousados/gigante/2026/202609/20260921/fiatargo18etorqflexhgtat6-WMIMAGEM20300903419.jpg"],
"imageCount": 7,
"searchUrl": "https://www.webmotors.com.br/carros/estoque/fiat/argo?tipoveiculo=carros&marca1=fiat&modelo1=argo",
"page": 1,
"position": 3,
"scrapedAt": "2026-09-29T13:28:10.357Z"
}
| Field | What it is |
|---|---|
fipePercent | The asking price as a percentage of the FIPE price for that version and year. null on about 1 listing in 17. |
yearFabrication, yearModel | The year built and the model year. |
condition | used or new. The site has no working new-or-used filter, so filter on this after the run. |
fuel, fuelSource | The fuel, and whether it came from your filter or from the version text. |
sellerType, sellerCategory, dealerName, dealerId | Dealer or private, the site's own seller label, and for a dealer only, its trading name and id. |
features | The badges the seller ticked, such as IPVA pago. |
description | The seller's blurb, with phone numbers and email addresses replaced. |
hadAuctionHistory, armored | Whether the car has been through an auction, and whether it is armoured. |
Some spec fields are blank because the seller left them blank: across those 384 rows, engine size was on 308 and power on 362, while make, model, version, price, mileage, gearbox, colour, body, town and state were on all of them.
🧾 Reading the output
| Row | How to spot it | Charged |
|---|---|---|
| A listing | a listingId, and no _sample or charged field | yes |
| The sample row | _sample: true, charged: false. Only when the run had no make and no usable link | no |
| A refused link | _diagnostic: true, charged: false, errorCode: "UNKNOWN_FILTER_VALUE", with the parameter, the value and the knownValues | no |
errorCode | What happened |
|---|---|
UNKNOWN_FILTER_VALUE | A pasted link carried a value the site would ignore: one missing from the site's own list for that filter, a price, year or mileage that is not a plain number, or a single-choice filter given twice. That link was not searched. |
The refused-link row is the only diagnostic one. What happened to each search goes in the RUN_REPORT record in the run's key-value store: the site's answer, how many listings it holds, pages read and failed, repeats and off-search rows left out, and why the run stopped.
A search status of ok, no-results or not-found means the site answered; not-found is a make or model it does not know. Anything else means that search did not load, and nothing was charged for it. stoppedBecause: "site-ceiling" means it hit the 10,000 limit.
A run in which no search got any answer ends as Failed, so a schedule notices. A search that found nothing still counts as an answer.
▶️ How to run it
1. Open Webmotors Scraper and click Try for free. 2. Type a Make, and a Model if you want one, or paste results pages into Search links. 3. Pick any filters from the drop-downs, such as State, Price to (R$) or Gearbox. 4. Set Maximum listings and an Order. 5. Click Start, then export the dataset as CSV, JSON or Excel. Open RUN_REPORT if the count looks short.
💰 How much does it cost?
$6.50 per 1,000 listings, flat on every Apify plan.
Not charged: the sample row, a make, model or filter value the site does not know, a search that finds nothing, cars from outside your search, a car found twice in one run, and a search that could not be loaded. If you set a maximum charge for the run, it stops when the next listing is no longer covered and says so. A maximum that does not cover a single listing stops the run before it searches.
💡 What people use it for
- Finding cars priced under the market: filter on
fipePercentbelow 100, which already allows for the version and year. - A dealer pricing a trade-in against every live listing of the same version, year and state.
- Watching one model's asking prices week by week with a scheduled run.
- Counting how much of a model is sold by dealers against private sellers, by state.
🚧 What it does not do
- More than 10,000 listings from one search. Split it by price band, year or state.
- A new-or-used filter or a city filter. The site's own versions of both change nothing. Filter on
conditionandcityafter the run. - Listing pages. No full options list, no seller phone, no financing quote.
- Hand-edited links the site would misread. Those get a free
UNKNOWN_FILTER_VALUErow instead of a search. For several colours, join them in one filter with|, likecor=Branco|Preto. Parameters with no list here, such as the plate ending, go through unchecked. - Motorbikes, trucks or anything but cars.
- Contact details of any kind.
🧭 Which car listings scraper do you need?
| If you want | Use |
|---|---|
| Car listings in Brazil, with the FIPE position | This one |
| Classified ads on OLX Brazil, from any search or category page | OLX Brazil Scraper |
| Used-car listings in eight European countries | AutoScout24 Scraper |
| A US vehicle's factory specification and open recalls from its VIN | VIN Decoder & Recalls API |
❓ Questions people ask
Does it need a Webmotors account or an API key? No. There is nothing to sign in to.
Can I get the seller's phone number? No, by design.
Why is my search capped at 10,000? That is how deep the site lets any one search go. Split the search by state, price band or model year and run the parts.
Does it return the same car twice? Not within a run. A car matching two of your searches is delivered, and charged, once.
Can it do motorbikes? Not at the moment. Webmotors lists them, but this searches cars only.
🆘 If something breaks
Open the Issues tab on the actor page. Include the run ID, the search you ran, and the RUN_REPORT record if you can.