ActorStack.dev

How to scrape PakWheels: Pakistan used-car prices in PKR, without a login

What PakWheels shows a signed-out visitor, how lakh and crore prices become integers, why "Call for price" is a null and not a zero, and where the seller's phone number is — and why it stays there.

By Oswaldo Carabano7 min read

Short answer

PakWheels, Pakistan's largest car marketplace with about 84,500 live ads on 23 September 2026, serves its search results and ad pages to signed-out visitors, so listings can be scraped without a login. Prices arrive as lakh and crore text ("PKR 24.7 lacs") and need converting; the PakWheels Scraper's integer price matched the text on 435 of 435 priced cards. Measured on 1,279 listings from 13 searches, make, model, year, mileage and city were 100% filled and price 99.5%. Phone numbers are behind PakWheels' login and are not collected. A thousand listings cost $0.90.

Key points

  • PakWheels serves search results, ad pages and its dealer directory to signed-out visitors, so used-car listings can be extracted without an account.
  • PakWheels prints prices in lakh and crore, where one lakh is 100,000 rupees and one crore is 10,000,000, and the text needs converting to an integer.
  • PakWheels "Call for price" ads have no price at all, and the PakWheels Scraper returns them as null with `price_on_call: true`, never as zero.
  • PakWheels shows a seller's phone number only to signed-in users, so a scraper that never signs in cannot and should not return it.
  • PakWheels inspected 8.0% of 1,279 measured listings itself, and those rows carry an inspection score out of 10.
  • Private individuals posted about 87% of 84,486 PakWheels ads, and their names are withheld by default.
On this page7 sections

PakWheels is Pakistan's largest car marketplace — about 84,500 live ads on 23 September 2026. Its public pages give nearly everything a price analyst needs; the work is in reading Pakistani price notation correctly and in knowing which one field is deliberately out of reach.

What PakWheels shows a signed-out visitor

Search results, individual ad pages and the dealer directory are all served without an account. The PakWheels Scraper uses plain HTTP against those pages — no browser, no cookies — and PakWheels answered every measured request from Apify on the first attempt, without a proxy.

Measured on 1,279 unique listings from 13 searches on 30 September 2026 — all of Pakistan, five cities, Honda Civic 2016–2022, Suzukis under 15 lakh, hybrids, EVs, inspected cars, dealers only, private sellers only and a pasted search URL — make, model, year, mileage, fuel, transmission, city and seller type were filled on 100%. engine_cc was 97.8%, version 94.1%, and photos 99.5% with a median of 11 per ad. An earlier sample of 441 listings on 23 September gave the same picture.

Lakh and crore, parsed and checked

PakWheels writes prices the South Asian way: "PKR 24.7 lacs", "PKR 1.15 crore". One lakh is 100,000 rupees; one crore is 10,000,000. A scraper that keeps the text has not extracted a price, and one that parses it carelessly — treating "lacs" as thousands, or dropping the decimal — is wrong by a factor of a hundred with nothing to flag it.

The Actor returns price as an integer in rupees and keeps price_text beside it. The parse was validated against the expected value, not just checked for being present: on 435 of 435 priced cards in the 23 September sample, the integer equalled the text.

One row, shortened
{
  "title": "Proton Saga 2022 1.3L Ace A/T",
  "price": 2470000,
  "currency": "PKR",
  "price_text": "PKR 24.7 lacs",
  "mileage_km": 28000,
  "city": "Karachi",
  "seller_type": "dealer"
}

The same notation appears in the input: priceFrom and priceTo take rupees, so 15 lakh is 1500000.

"Call for price" is a null, not a zero

Some sellers publish no price at all. Those rows — 0.5% of the sample — come back with price: null and price_on_call: true. A zero would be worse than useless in a price dataset: it drags every average down and survives most cleaning steps. The general argument for an honest null over a plausible value is in measured fill rates, not promises.

The PakWheels inspection score

PakWheels inspects some cars itself — about 2,700 ads carried a report when measured — and shows a score out of 10. In the 1,279-listing sample, 8.0% had one, returned as inspection_rating. onlyInspected restricts a run to those cars, and with detail pages on, each comes with the full report: overall rating, date, per-category scores and the report URL. Every inspected car in the 294-page detail sample carried it.

Private sellers and the phone number

Private individuals posted about 87% of 84,486 ads (84% of the 1,279 measured rows). For them, the seller's name is withheld by default and phone numbers typed into descriptions are masked; dealers' showroom names, addresses and opening hours are always included. Pakistan is not in the EU, and the default is the same rule the EU Actors follow, applied by caution — see the five-marketplace comparison for how the five sources differ on this.

The seller's phone number is a different matter. PakWheels serves it only to signed-in users — the endpoint answers 401 without a session — and signing in is a line the Actor does not cross. So no phone number from an ad is ever collected, for dealers or individuals. The dealer directory, which is public, carries each showroom's business phone.

What PakWheels' robots.txt says

Downloaded on 10 October 2026: 7,120 bytes, with 103 Disallow rules in the * group and no global Disallow: /. The search paths, ad pages and dealer directory are not covered. Two rules touch the Actor's neighbourhood: */seller_contact_info, the phone endpoint it never requests, and /*?*sortby=*. Any sortBy other than the default newest sends a sortby= parameter, and the Actor does not filter by robots.txt. Leaving the sort at newest keeps every request outside the disallowed patterns; the reasoning for treating the file as a specification is in robots.txt-compliant scraping.

Running it, and what it costs

Filters use PakWheels' URL spellings — lahore, toyota, corolla — or paste a search URL from the site into searchUrl. A single search pages until PakWheels stops returning new ads; for the whole country, split by city or make.

$0.0009 per listing, $0.00009 per detail page and $0.002 per dealer, plus $0.00001 to start. A thousand listings cost $0.90, or $0.99 with detail pages; on the platform at 512 MB they took 96 seconds. A wrong filter value or an empty search ends green with one uncharged error row saying what to fix.

Frequently asked questions

Can you scrape PakWheels without an account?
Yes. PakWheels serves search results, ad pages and the dealer directory to signed-out visitors. Only the seller's phone number and the site's JSON endpoints require a session, and the PakWheels Scraper uses neither.
How do you convert lakh and crore to a number?
One lakh is 100,000 and one crore is 10,000,000, so "PKR 24.7 lacs" is 2,470,000 rupees. The PakWheels Scraper does that conversion and keeps the original text in `price_text`.
How do you get every used car in Pakistan from PakWheels?
Split by city or make and run several searches. A single PakWheels search pages until the site stops returning new ads, and about 84,500 ads were live on 23 September 2026.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 10 Oct 2026
    PakWheels Scraper — Actor README and input schemaActorStack / Apify Store
  2. Site declarationchecked 10 Oct 2026
    pakwheels.com/robots.txtPakWheels
  3. Platform docschecked 18 Aug 2026
    Actor pricing modelsApify
A laptop screen showing a plain text-mode terminal with a command prompt.
Used carsGuide

Scrape Sauto.cz

Sauto.cz serves only the first 10,000 results of a search and silently ignores filters it does not recognise. How the Sauto.cz Actor handles both, what the details add-on adds — VIN included — and what a run costs.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Used carsExplainer

Autohero API

Autohero publishes no public API. What its storefronts expose across nine countries, why currencies and some columns differ by market, what the detail page adds, and how to get it as rows.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Used carsExplainer

CarWale market valuation

CarWale publishes its own valuation next to each used car's asking price. What that number is, how often it is filled, how to use it to screen for below-market cars, and what it cannot tell you.

7 min