# Guazi Used Cars Scraper 瓜子二手车: Filtered China Export Listings (`getascraper/guazi-used-cars-scraper`) Actor

Scrape used-car export listings from Guazi (en.guazi.com), China's used-car marketplace, without hand-building search URLs. Filter by make, body type, price, mileage, year, fuel type, Guazi's own condition grade, and seller type. Export to JSON, CSV, or Sheets. From $3.90 per 1,000 listings.

- **URL**: https://apify.com/getascraper/guazi-used-cars-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.93 / 1,000 vehicle listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🚗 Guazi Used Cars Scraper 瓜子二手车: China Export Listings, Filtered and Specced

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#EDF7ED;border:1px solid #C8E6C9;border-top:4px solid #2E7D32;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Search Guazi's export catalog with real filters, not a hand-built URL.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull used-car export listings from Guazi (en.guazi.com), China's largest used-car marketplace's international portal. Filter by make, price, mileage, year, fuel type, and Guazi's own condition grade, then add VIN, full specs, inspection flags, and the whole photo gallery on demand.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C8E6C9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">🎯 Real search filters</span><br>
<span style="font-size:12px;color:#57534E">Make, body type, listing type, price, mileage, year, fuel type, grade, and seller type, no URL building required</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C8E6C9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">🏆 Guazi condition grade</span><br>
<span style="font-size:12px;color:#57534E">Every listing carries Guazi's own S-to-D inspection grade, filter to only the stock you'd actually buy</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C8E6C9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">🔧 Full vehicle files</span><br>
<span style="font-size:12px;color:#57534E">Optional deep mode adds VIN, engine spec, dimensions, inspection flags, export port, and the full photo gallery</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C8E6C9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">🛡️ Built to actually run</span><br>
<span style="font-size:12px;color:#57534E">Tuned proxy and browser setup for Guazi's export portal, so runs don't come back empty</span>
</td>
</tr>
</table>

### 🔍 What does Guazi Used Cars Scraper do?

Guazi Used Cars Scraper extracts used-car export listings from [en.guazi.com](https://en.guazi.com), the international arm of 瓜子二手车 (Guazi), one of China's largest used-car marketplaces. Point it at a make, a body type, or your own search page, and get back structured data: price, mileage, model year, fuel type, Guazi's own condition grade, and seller type, for every matching vehicle.

Turn on deep-detail mode and each vehicle also comes with its partial VIN, full engine specification, dimensions, curb weight, inspection report flags (accident, water, and fire damage), the export shipping port, and its complete photo gallery. Run it once for a snapshot, or schedule it to track new export inventory as it lists.

### 💡 Why use Guazi Used Cars Scraper?

**"I import cars from China every month and I'm done pasting search URLs by hand."**
As an overseas dealer sourcing inventory from Guazi, you pick the makes, body types, price band, and mileage cap you actually buy, and get back only matching listings. No manual URL construction, no scrolling through pages you don't need.

**"I need FOB pricing and mileage bands before I ever talk to a seller."**
As a sourcing analyst or market researcher, you can pull FOB export prices, mileage, and model years across hundreds of listings in one run, to model landed cost and margin before reaching out to anyone.

**"My export pipeline needs clean JSON, not a scraped webpage."**
As a data or lead-gen team building a car-export sourcing pipeline, you get one structured record per vehicle, ready to load into a database, spreadsheet, or downstream API, with every field either real data or cleanly omitted.

### 🚀 How to use Guazi Used Cars Scraper

<table width="100%">
<tr>
<td style="padding:14px 12px;width:33.333%;background:#FFFFFF;border:1px solid #C8E6C9;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">1. Pick your search</span><br>
<span style="font-size:12px;color:#57534E">Choose makes, body types, and a listing type, or paste your own Guazi category URL</span>
</td>
<td style="padding:14px 12px;width:33.333%;background:#FFFFFF;border:1px solid #C8E6C9;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">2. Run the Actor</span><br>
<span style="font-size:12px;color:#57534E">It collects listings straight from Guazi's export portal and applies your filters</span>
</td>
<td style="padding:14px 12px;width:33.333%;background:#FFFFFF;border:1px solid #C8E6C9;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E7D32">3. Export your data</span><br>
<span style="font-size:12px;color:#57534E">Download JSON, CSV, or Excel, or send it straight to Google Sheets or your own API</span>
</td>
</tr>
</table>

1. Open the Actor and, in the **Search Scope** section, pick one or more makes and body types, or leave them blank to search all listings.
2. Optionally narrow results in the **Filters** section: price range, mileage cap, manufacture year, fuel type, condition grade, and seller type.
3. Set **Max Vehicles** and, if you want the full per-vehicle file (VIN, specs, inspection report, photo gallery), turn on **Fetch Full Vehicle Details**.
4. Click **Start** and download your results once the run finishes.

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `makes` | enum (multi-select) | No | Limit results to these makes (Volkswagen, Toyota, BMW, BYD, and 12 more) |
| `bodyTypes` | enum (multi-select) | No | Limit results to these body types (Sedan, SUV, Hatchback, and 5 more) |
| `tradeType` | enum | No | Buy It Now, Sealed-Bid Auctions, Fleet Cars, or All |
| `startUrls` | array of URLs | No | Your own Guazi category or model page URLs, for anything the pickers above don't cover |
| `priceMinUsd` | integer | No | Minimum FOB export price in US dollars |
| `priceMaxUsd` | integer | No | Maximum FOB export price in US dollars |
| `mileageMaxKm` | integer | No | Maximum odometer reading in kilometers |
| `mfgYearFrom` | integer | No | Earliest manufacture year to include |
| `mfgYearTo` | integer | No | Latest manufacture year to include |
| `fuelTypes` | enum (multi-select) | No | Gasoline, Electric, Range-extended, Plug-in Hybrid, or Hybrid |
| `conditionGrades` | enum (multi-select) | No | Guazi's own S, A, B, C, or D inspection grade |
| `vehicleSource` | enum (multi-select) | No | Guazi Owned, Certified Dealer, or Individual Seller |
| `maxItems` | integer | No | Maximum number of vehicles to return (default 20) |
| `fetchDetails` | boolean | No | Fetch VIN, full spec, inspection report, and photo gallery per vehicle (default off) |
| `proxyConfiguration` | proxy | No | Apify Proxy settings, residential by default |

### 📤 Output

Every run produces one JSON record per vehicle. A lightweight-mode record looks like this:

```json
{
  "url": "https://en.guazi.com/products/bmw-5-series-2018-20l-white-171000km-at-2wd-5-seats-xda7zdt9cj.html",
  "productId": "xda7zdt9cj",
  "title": "Used BMW 5 Series 2018 525Li M Sport Package",
  "brand": "BMW",
  "grade": "A",
  "tradeType": "buyItNow",
  "vehicleSource": "Guazi Owned",
  "guaziInspected": true,
  "mfgYear": 2018,
  "mileageKm": 171000,
  "fuelType": "Gasoline",
  "transmission": "AT",
  "driveTrain": "2WD",
  "seats": 5,
  "exteriorColor": "White",
  "priceUsdFob": 15338,
  "imageUrl": "https://image-oversea.guazistatic-global.com/..."
}
```

With `fetchDetails` turned on, the same record also carries `vin`, `horsepowerPs`, `bodyStyle`, `dimensionsMm`, `curbWeightKg`, `engineModel`, `maxPowerKw`, `maxTorqueNm`, `accidentDamage`, `waterDamage`, `fireDamage`, `locationCity`, `shippingPort`, and a full `images` array.

You can download the dataset in JSON, CSV, Excel, HTML, or XML, or connect it directly to Google Sheets, a database, or your own API through Apify's integrations.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `title` | string | Full listing title |
| `brand` | string | Vehicle make |
| `model` | string | Vehicle model (deep-detail mode only) |
| `grade` | string | Guazi's own S-to-D condition grade |
| `priceUsdFob` | number | FOB export price in US dollars |
| `mfgYear` | number | Manufacture year |
| `mileageKm` | number | Odometer reading in kilometers |
| `fuelType` | string | Fuel type, including EV and hybrid variants |
| `transmission` | string | Transmission type |
| `vehicleSource` | string | Guazi Owned, Certified Dealer, or Individual Seller |
| `guaziInspected` | boolean | Whether the listing carries Guazi's own inspection |
| `vin` | string | Partial VIN (deep-detail mode only) |
| `dimensionsMm` | string | Length x width x height in millimeters (deep-detail mode only) |
| `accidentDamage` / `waterDamage` / `fireDamage` | boolean | Inspection report damage flags (deep-detail mode only) |
| `shippingPort` | string | Export shipping origin city (deep-detail mode only) |
| `images` | array | Full photo gallery URLs (deep-detail mode only) |
| `url` | string | Direct link to the listing |

### 💰 Pricing

Guazi Used Cars Scraper runs on the Apify platform's pay-per-event model, at $3.90 per 1,000 vehicles returned. You only pay for the vehicles actually returned, an empty run costs nothing, and there's no subscription. Free plan runs are limited to 25 vehicles per run, 3 runs per day, and a short wait between runs.

### ⭐ Enjoying Guazi Used Cars Scraper?

If this actor got you real export-ready car data without building a single search URL by hand, a quick rating helps other exporters and researchers find it. You can rate and review the Actor from its [Apify Store page](https://apify.com/getascraper/guazi-used-cars-scraper).

### 🛠️ Tips and advanced options

- Leave **Makes** and **Body Types** empty to search Guazi's full export catalog rather than one brand or category.
- Because Guazi's own pagination lives behind a URL format this Actor doesn't use (see the FAQ below), add more makes or body types to widen coverage instead of expecting a single run to page through everything.
- Turn on **Fetch Full Vehicle Details** only when you need VIN, full spec, or the photo gallery, it visits each vehicle's own page and takes longer per run.
- Combine **Condition Grades** with **Vehicle Source** to source only Certified Dealer or Guazi Owned stock graded S or A.

### ❓ FAQ

**Does this scrape 瓜子二手车 (Guazi) or a different site?**
It scrapes en.guazi.com, Guazi's English-language international export portal, the same underlying inventory as the main Chinese site, presented for overseas buyers with FOB export pricing.

**Why does one run only return one page of results per make or body type?**
Guazi's own listing pages cap out at a fixed page size, and this Actor only reads the pages Guazi's own site rules make publicly available. Search across more makes or body types in a single run to collect more vehicles.

**Do I need to log in to Guazi to use this?**
No. Every field comes from Guazi's public listing and vehicle detail pages, no account or login required.

**Can I filter to only electric or hybrid vehicles?**
Yes, use the **Fuel Types** filter and select Electric, Range-extended, or Plug-in Hybrid.

**Is this affiliated with Guazi?**
No. This is an independent data tool and is not affiliated with, endorsed by, or sponsored by Guazi. If you run into missing data or a blocked run, open an issue on the Actor's Issues tab.

### 🔗 Other actors

- [che168 used car scraper](https://apify.com/getascraper/che168-car-scraper) ↗ - China's largest domestic used-car catalog, with dealer profiles and phone reveals.
- [CarDekho Used Cars Scraper](https://apify.com/getascraper/cardekho-used-cars-scraper) ↗ - Indian used-car listings with prices and dealer data.
- [Cars24 Cars Scraper](https://apify.com/getascraper/cars24-scraper) ↗ - India's fixed-price used-car marketplace listings.
- [Spinny Used Car Scraper](https://apify.com/getascraper/spinny-used-car-search-scraper) ↗ - India used-car pricing, EMI, and certification data.
- [Autohero Cars Scraper](https://apify.com/getascraper/autohero-cars-scraper) ↗ - Inspected used cars across 10 European storefronts.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/guazi-used-cars-scraper/changelog.md

# Actor input Schema

## `makes` (type: `array`):

Limit results to these makes. Each selected make is scraped as its own category page (e.g. /used-cars/bmw/). Leave empty to scrape the general Used Cars listing across all makes. The incumbent actor has no brand filter at all, you must hand-build the URL yourself.

## `bodyTypes` (type: `array`):

Limit results to these body types (e.g. /used-cars/suv/). Leave empty for all body types. The incumbent actor has no body type filter, only a raw start URL.

## `tradeType` (type: `string`):

Buy It Now (fixed price), Sealed-Bid Auctions, or Fleet Cars. Applied by filtering the listing-type badge already shown on each result card, not by adding a query string to the URL (Guazi's robots.txt disallows query-string URLs). Default All matches the site's own default view.

## `startUrls` (type: `array`):

Optional. Paste your own Guazi category, model, or collection page URLs (e.g. https://en.guazi.com/used-cars/toyota/rav4/) for anything the Makes/Body Types pickers above don't cover. When set, these are scraped in addition to any category built from Makes/Body Types. Leave empty to rely on the pickers above. Avoid pasting URLs containing a "?", Guazi's robots.txt disallows query-string URLs.

## `priceMinUsd` (type: `integer`):

Only keep listings with an FOB export price at or above this amount in US dollars. Leave blank for no minimum. The incumbent actor has no price filter at all.

## `priceMaxUsd` (type: `integer`):

Only keep listings with an FOB export price at or below this amount in US dollars. Leave blank for no maximum.

## `mileageMaxKm` (type: `integer`):

Only keep listings with an odometer reading at or below this many kilometers. Leave blank for no limit. The incumbent actor has no mileage filter.

## `mfgYearFrom` (type: `integer`):

Only keep listings manufactured in this year or later. Leave blank for no lower bound. The incumbent actor has no year filter.

## `mfgYearTo` (type: `integer`):

Only keep listings manufactured in this year or earlier. Leave blank for no upper bound.

## `fuelTypes` (type: `array`):

Only keep listings with these fuel types. Useful for isolating EVs and hybrids, the incumbent actor extracts EV battery/range fields when present but gives you no way to filter to just electric or hybrid vehicles. Leave empty for all fuel types.

## `conditionGrades` (type: `array`):

Only keep listings with these Guazi inspection grades (S is best, D is lowest). This is Guazi's own condition rating shown on every listing. The incumbent actor has no condition/grade filter at all.

## `vehicleSource` (type: `array`):

Only keep listings from these seller types. Matters for export buyers who want Certified Dealer or Guazi Owned stock only, and want to skip Individual Seller listings. Leave empty for all seller types. The incumbent actor has no seller-type filter.

## `maxItems` (type: `integer`):

Maximum number of vehicle listings to return in total, across all makes/body types/start URLs. Each category page is a single robots.txt-compliant fetch (Guazi's own pagination uses a disallowed query string, so only the first page per category is scraped); with roughly 20-30 listings per category page, add more makes or body types to collect more than one page's worth.

## `fetchDetails` (type: `boolean`):

When enabled, visits each vehicle's own product page for VIN (partial), full engine specification, dimensions, curb weight, drivetrain, inspection report flags (accident/water/fire damage), export port, and the complete photo gallery. This is the actor's biggest advantage over the incumbent, whose ~30 output fields appear to be listing-card level only, not this level of per-vehicle depth. Costs one extra page load per vehicle, so runs take longer and cost more when enabled.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration used by the headless browser. Residential proxy is required, datacenter IPs are blocked by Guazi's bot defense and return zero results. Country is pinned to the US, a verified-working exit country, changing it may return listings with price and grade missing.

## Actor input object example

```json
{
  "makes": [],
  "bodyTypes": [],
  "tradeType": "all",
  "startUrls": [],
  "fuelTypes": [],
  "conditionGrades": [],
  "vehicleSource": [],
  "maxItems": 20,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "makes": [],
    "bodyTypes": [],
    "tradeType": "all",
    "startUrls": [],
    "fuelTypes": [],
    "conditionGrades": [],
    "vehicleSource": [],
    "maxItems": 20,
    "fetchDetails": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/guazi-used-cars-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "makes": [],
    "bodyTypes": [],
    "tradeType": "all",
    "startUrls": [],
    "fuelTypes": [],
    "conditionGrades": [],
    "vehicleSource": [],
    "maxItems": 20,
    "fetchDetails": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/guazi-used-cars-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "makes": [],
  "bodyTypes": [],
  "tradeType": "all",
  "startUrls": [],
  "fuelTypes": [],
  "conditionGrades": [],
  "vehicleSource": [],
  "maxItems": 20,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call getascraper/guazi-used-cars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/guazi-used-cars-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kAhDQFrJiDvJCz1B4/builds/KhWg85NV234YwtEHd/openapi.json
