# Encar Scraper — South Korea Used Car Listings & Prices (`logiover/encar-korea-used-car-scraper`) Actor

Scrape Encar.com, South Korea's largest used car marketplace. Extract make, model, trim, registration year, mileage, price in KRW, fuel type, inspection and accident-record flags, seller region and photos. Domestic and imported cars, 200 rows per request. No API key.

- **URL**: https://apify.com/logiover/encar-korea-used-car-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Encar Scraper — South Korea Used Car Listings, Prices & History

South Korea's used car market in a spreadsheet: make, model, trim, mileage, price in KRW, fuel type, and the inspection and accident-record flags Korean buyers actually price on.

### What does the Encar Scraper do?

This Actor collects live listings from **Encar.com**, by far the largest used car marketplace in South Korea with over 200,000 cars on sale at any moment. Encar's own listing endpoint is read directly, so each row arrives with the fields its search index holds — including the two flags that decide what a Korean used car is worth: whether a formal inspection report exists, and whether the car carries an accident record.

Filters are written in Encar's own query language, which the Actor assembles for you from plain inputs. Pick domestic or imported cars, a make and model, a registration-year range, a price band in manwon and a mileage ceiling, and it pages through 100 cars per request. Prices are published in manwon — the 10,000-won unit every Korean listing uses — so each row carries both the raw figure and the plain KRW value, because a row that reports only manwon reads as a car costing 1,700 won.

### Who is it for?

- **Car exporters and importers** — South Korea is a major source of used vehicles for Central Asia, Africa and the Middle East.
- **Dealers and remarketing teams** benchmarking trim-level pricing against 200,000 live listings.
- **Pricing analysts and residual-value modellers** who need mileage, year and price on the same row.
- **Marketplace and classifieds operators** seeding or benchmarking inventory.
- **Researchers** tracking the Korean EV and hybrid transition through what is actually on sale.

### Use cases

- Build a price curve for a model by registration year and mileage band, then price your own stock against it.
- Filter for cars with an inspection report and no accident record — the export-grade segment.
- Track how quickly EV and hybrid listings are growing as a share of the market.
- Compare domestic Hyundai and Kia pricing against imported BMW and Mercedes at the same age.
- Watch a single model's average asking price week over week to time a purchase.
- Feed an AI agent live Korean listings so it can answer "what does a 2020 Grandeur cost?".

### Why use this Encar Scraper?

- **Inspection and accident-record flags on every row** — the two facts that move Korean used car prices most.
- **200,000+ cars reachable**, with 100 returned per request and deep pagination that keeps producing new rows.
- **Price in both units** — manwon as published, and the plain KRW figure so no one misreads it by four orders of magnitude.
- **Encar's query language handled for you** — set year, price and mileage as ordinary numbers.
- **Keyless and login-free** — nothing to register, nothing to rotate.
- **Domestic and imported** in one Actor, or either on its own.

### What data can you extract?

One row per car. Anything the source left blank comes back as `null`.

| Field | Type | Description |
|---|---|---|
| `carId` | string | Encar listing identifier |
| `url` | string | Direct link to the listing on Encar |
| `manufacturer` | string | Make, in Korean as Encar publishes it |
| `model` | string | Model name |
| `badge` | string | Trim / grade |
| `badgeDetail` | string | Sub-trim detail where the seller gave one |
| `yearMonth` | string | Registration year and month, e.g. 2025-08 |
| `modelYear` | number | Model year |
| `mileageKm` | number | Odometer reading in kilometres |
| `priceManwon` | number | Price in manwon, the 10,000-won unit Korean listings use |
| `priceKrw` | number | The same price in plain KRW |
| `fuelType` | string | Fuel type in Korean, e.g. 가솔린 (petrol), 디젤 (diesel), 전기 (electric) |
| `isEcoFriendly` | boolean | Registered as an eco-friendly vehicle |
| `sellType` | string | Sale type, e.g. 일반 (ordinary sale), 렌트 (rental takeover) |
| `homeServiceVerified` | boolean | Home delivery service verified for this car |
| `trustFlags` | string | Encar trust programme markers on the listing |
| `region` | string | Region the selling office sits in |
| `hasInspection` | boolean | A formal inspection report exists |
| `hasAccidentRecord` | boolean | An accident or repair record is attached |
| `isOriginalVin` | boolean | VIN plate recorded as original, not a copy |
| `conditionFlags` | string | Raw condition markers Encar attaches |
| `serviceMarks` | string | Encar service programmes on the listing |
| `photoCount` | number | Number of photos |
| `imageUrl` | string | First listing photo |
| `scrapedAt` | string | When this row was collected |

#### Sample output

```json
{
  "carId": "42350404",
  "url": "http://www.encar.com/dc/dc_cardetailview.do?carid=42350404",
  "manufacturer": "벤츠",
  "model": "E-클래스 W213",
  "badge": "E200 아방가르드",
  "badgeDetail": null,
  "yearMonth": "2017-12",
  "modelYear": 2018,
  "mileageKm": 50422,
  "priceManwon": 2000,
  "priceKrw": 20000000,
  "fuelType": "가솔린",
  "isEcoFriendly": false,
  "sellType": "일반",
  "homeServiceVerified": null,
  "trustFlags": null,
  "region": "경기",
  "hasInspection": true,
  "hasAccidentRecord": true,
  "isOriginalVin": true,
  "conditionFlags": "Inspection, Record",
  "serviceMarks": null,
  "photoCount": 4,
  "imageUrl": "https://ci.encar.com/carpicture05/pic4235/42350404_001.jpg",
  "scrapedAt": "2026-08-15T07:45:12.427Z"
}
```

### How to use the Encar Scraper

#### Option A — the whole market

Leave make and model empty, choose `all`, `domestic` or `imported`, and set a result limit. Sorted by most recently updated, this gives a rolling picture of what is coming onto the market.

#### Option B — one make and model

Encar expects Korean names: `현대` (Hyundai), `기아` (Kia), `제네시스` (Genesis), `벤츠` (Mercedes-Benz), `BMW`, `아우디` (Audi), `테슬라` (Tesla). Add a model such as `그랜저` to narrow further.

#### Option C — an export-grade segment

Combine a registration-year floor, a mileage ceiling and a price band, then filter the output on `hasInspection = true` and `hasAccidentRecord = false` to isolate the cars worth shipping.

### Input parameters

| Input | Type | Description |
|---|---|---|
| `carType` | string | Domestic Korean brands, imported brands, or both. Default: `"all"`. |
| `manufacturer` | string | Optional. Encar expects the Korean name: 현대 (Hyundai), 기아 (Kia), 제네시스 (Genesis), 쉐보레 (Chevrolet), BMW, 벤츠 (Mercedes-Benz), 아우디 (Audi), 폭스바겐 (Volkswagen), 렉서스 (Lexus), 테슬라 (Tesla). |
| `model` | string | Optional. Model name as Encar writes it, e.g. 그랜저 or 아반떼. Leave empty for every model of the selected make. |
| `yearFrom` | integer | Optional. Earliest registration year, e.g. 2018. |
| `yearTo` | integer | Optional. Latest registration year, e.g. 2024. |
| `priceFrom` | integer | Optional. Korean listings are priced in manwon: 1500 means 15,000,000 KRW. |
| `priceTo` | integer | Optional. 3000 means 30,000,000 KRW. |
| `mileageMax` | integer | Optional upper bound on the odometer reading. |
| `fuelType` | string | Optional. Encar's Korean labels: 가솔린 (petrol), 디젤 (diesel), LPG, 전기 (electric), 가솔린+전기 (hybrid). |
| `sortBy` | string | Order the search results before collecting them. Default: `"ModifiedDate"`. |
| `maxResults` | integer | Stop after this many cars. Each request returns 100. Default: `1000`. |
| `proxyConfiguration` | object | Encar answers Korean exits. Residential proxy pinned to South Korea is used automatically. |

### Tips for best results

- Prices are in manwon: enter `1500` for 15,000,000 KRW, not `15000000`. The output carries both units so the reader is never in doubt.
- Sorting by most recently updated means very deep pages can reshuffle as sellers bump their cars; rows are de-duplicated by listing ID so the dataset stays clean either way.
- For a stable deep crawl, sort by price ascending — the order does not move underneath you.
- `badgeDetail` is only filled when the seller entered a sub-trim, which is roughly one listing in ten on imported cars.
- `sellType` is worth reading before you price: a 렌트 listing is a rental contract takeover, not a normal sale.

### Integrations

Connect this Actor to Make, Zapier, n8n, Slack, Google Sheets, GitHub, Airtable or any HTTP endpoint through Apify integrations. Every finished run can push its dataset straight into your warehouse, or fire a webhook so a downstream job starts the moment the data lands.

### API usage

Run the Actor from your own code with the Apify API. Datasets can be exported as JSON, CSV, Excel, XML, RSS or HTML, and every run is available through the [Apify API reference](https://docs.apify.com/api/v2).

```bash
curl -X POST "https://api.apify.com/v2/acts/logiover~encar-korea-used-car-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"input": {"carType": "all", "manufacturer": "현대", "yearFrom": 2019, "sortBy": "ModifiedDate", "maxResults": 1000, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "KR"}}}'
```

Python, JavaScript, PHP and CLI clients are documented under [Apify API clients](https://docs.apify.com/api/client).

### Use with AI agents (MCP)

This Actor is callable from any MCP-compatible client — Claude, Cursor, VS Code or your own agent — through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). An agent can call it to answer live questions about Korean used car prices, mileage and accident history instead of guessing from stale training data.

### FAQ

#### Do I need an Encar account or API key?

No. The Actor reads public listing data with no login and no key.

#### Do I have to write the filters in Korean?

Only make, model and fuel type, because those are the values Encar indexes. Year, price and mileage are ordinary numbers. The input hints list the common Korean names.

#### How many cars can one run return?

Over 200,000 are listed across domestic and imported stock, and deep pagination keeps returning new rows, so the practical limit is the result cap you set.

#### What is manwon?

The unit Korean listings quote: 1 manwon = 10,000 KRW. A car at `1550` manwon costs 15,500,000 KRW. Both figures are on every row.

#### What do `hasInspection` and `hasAccidentRecord` mean?

`hasInspection` means a formal performance-inspection report is attached. `hasAccidentRecord` means an accident or repair history is on file. Together they are the single biggest driver of price for the same model and mileage.

#### Why did my run return zero cars?

Usually a make or model spelled in English. Encar indexes them in Korean — try `현대` rather than `Hyundai`.

#### Can I get the seller's phone number?

No. Encar keeps dealer contact details behind its own contact flow, and this Actor does not attempt to reach them. The selling office's region is included.

#### Why are some fields null?

Not every listing carries every marker. Trust flags, sub-trims and home-service verification are optional programmes a dealer opts into.

#### Can I export to CSV or Excel?

Yes. Every run's dataset exports as JSON, CSV, Excel, XML, RSS or HTML from the Storage tab, the API, or automatically through an integration.

#### How fresh is the data?

Every run reads the site live at that moment, so the data is as fresh as the site itself. Schedule the Actor hourly, daily or weekly to build a time series.

#### How often is the Actor updated?

It is monitored and fixed when the site changes its markup or its endpoints. Report anything that looks wrong through the Issues tab and it gets picked up.

### Is it legal to scrape Encar?

This Actor collects only publicly available information — the same pages any visitor can open without logging in. It does not bypass a login, and it does not touch private or personal accounts. Public data collection is legal in most jurisdictions, but how you *use* the data is your responsibility: if any record contains personal data, GDPR and comparable laws still apply, and you need a lawful basis for processing it. When in doubt, take legal advice. See Apify's [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/) guide.

### Related scrapers

- [AutoScout24 Scraper](https://apify.com/logiover/autoscout24-scraper) — European used cars.
- [Otomoto Scraper](https://apify.com/logiover/otomoto-scraper) — Polish used cars.
- [Coches.net Scraper](https://apify.com/logiover/coches-net-scraper) — Spanish used cars with dealer phone numbers.
- [Kolesa.kz Scraper](https://apify.com/logiover/kolesa-kz-scraper) — Kazakh used cars.
- [Auto.ria Scraper](https://apify.com/logiover/auto-ria-scraper) — Ukrainian used cars.

# Actor input Schema

## `carType` (type: `string`):

Domestic Korean brands, imported brands, or both.

## `manufacturer` (type: `string`):

Optional. Encar expects the Korean name: 현대 (Hyundai), 기아 (Kia), 제네시스 (Genesis), 쉐보레 (Chevrolet), BMW, 벤츠 (Mercedes-Benz), 아우디 (Audi), 폭스바겐 (Volkswagen), 렉서스 (Lexus), 테슬라 (Tesla).

## `model` (type: `string`):

Optional. Model name as Encar writes it, e.g. 그랜저 or 아반떼. Leave empty for every model of the selected make.

## `yearFrom` (type: `integer`):

Optional. Earliest registration year, e.g. 2018.

## `yearTo` (type: `integer`):

Optional. Latest registration year, e.g. 2024.

## `priceFrom` (type: `integer`):

Optional. Korean listings are priced in manwon: 1500 means 15,000,000 KRW.

## `priceTo` (type: `integer`):

Optional. 3000 means 30,000,000 KRW.

## `mileageMax` (type: `integer`):

Optional upper bound on the odometer reading.

## `fuelType` (type: `string`):

Optional. Encar's Korean labels: 가솔린 (petrol), 디젤 (diesel), LPG, 전기 (electric), 가솔린+전기 (hybrid).

## `sortBy` (type: `string`):

Order the search results before collecting them.

## `maxResults` (type: `integer`):

Stop after this many cars. Each request returns 100.

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

Encar answers Korean exits. Residential proxy pinned to South Korea is used automatically.

## Actor input object example

```json
{
  "carType": "all",
  "manufacturer": "현대",
  "model": "그랜저",
  "fuelType": "디젤",
  "sortBy": "ModifiedDate",
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "KR"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Every record collected in this run. Open the Dataset tab to browse, filter or export as JSON, CSV or Excel.

# 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 = {
    "carType": "all",
    "sortBy": "ModifiedDate",
    "maxResults": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "KR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/encar-korea-used-car-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 = {
    "carType": "all",
    "sortBy": "ModifiedDate",
    "maxResults": 1000,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "KR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/encar-korea-used-car-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 '{
  "carType": "all",
  "sortBy": "ModifiedDate",
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "KR"
  }
}' |
apify call logiover/encar-korea-used-car-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/encar-korea-used-car-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/GQgp1sKPTzVUlQ0w4/builds/hd8vwyhUG5b08KKzD/openapi.json
