# Chileautos Vehicle Listings Scraper (`automatic/chileautos-scraper`) Actor

Collect used and new cars from Chileautos in Chile. Returns unique vehicle rows with numeric CLP prices, kilometres, make, model, trim, year, transmission, fuel, region, seller type, business dealer name, images and listing URL.

- **URL**: https://apify.com/automatic/chileautos-scraper.md
- **Developed by:** [Philip Kirkbride](https://apify.com/automatic) (community)
- **Categories:** E-commerce
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.

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

## Chileautos Vehicle Listings Scraper

Collect used and new cars from Chileautos in Chile. Returns unique vehicle rows with numeric CLP prices, kilometres, make, model, trim, year, transmission, fuel, region, seller type, business dealer name, images and listing URL. Optional detail requests add exterior colour and available specifications. Private seller names and contact details are excluded.

Start with the default input to collect up to 20 vehicles. Use `make` and `model` (for example Toyota and Yaris), `condition` (`used`, `new`, `all`), `yearFrom`/`yearTo`, `priceFrom`/`priceTo` in CLP, `region`, or a Chileautos `searchUrl`. `maxResults` limits delivered rows. `includeDetails` defaults to false.

Year, price and region filters are sent to the source and checked on returned rows. Names must match the site’s labels. Search URLs preserve their own search state; condition defaults to all for a URL search unless explicitly set. Additional constraints on a search URL are applied locally: scanning stops after 10 consecutive pages without a match or 30 pages total, with an incomplete-query status. The shared deadline may stop earlier.

`useResidentialProxy` defaults to `auto`: requests start directly and use fresh residential sessions if Chileautos blocks access. `always` selects residential immediately; `never` disables it. The residential country defaults to CL; `apifyProxyCountry` overrides it. Proxy usage adds transfer cost to the run.

Rows are delivered as each page finishes, with duplicates removed by listing ID. If access fails after delivery begins, the run preserves delivered rows and reports the incomplete query in its status. Zero delivered rows fail with a plain explanation, including confirmed empty searches. Long Retry-After delays end the run when they would exceed its deadline.

`price_uf`, `city` and `published_at` need `includeDetails: true`; they remain null when the detail source does not explicitly provide them. The current detail parser supports labelled city; UF and publication date remain unavailable in the recorded fixtures. No currency conversion or inferred location is performed. Marketplace inventory and internal page structure can change; advertised totals are not a coverage guarantee.

Example input:

```json
{"make":"Toyota","model":"Yaris","condition":"used","maxResults":20,"includeDetails":false}
```

Output keys include `listing_key`, `id`, `title`, `make`, `model`, `version`, `year`, `price_clp`, `price_uf`, `km`, `fuel`, `transmission`, `body_type`, `colour`, `region`, `city`, `condition`, `seller_type`, `dealer_name`, `images`, `published_at`, `url`, `source`, `scraped_at`, `details_parsed` and `details_error`.

# Actor input Schema

## `make` (type: `string`):

Exact make name. Applied to returned rows; model requires make.

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

Exact model name. Applied to returned rows; model requires make.

## `region` (type: `string`):

Exact Chileautos region. Sent to the source unless searchUrl is supplied.

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

Inclusive yearFrom constraint; prices are CLP. Applied to returned rows.

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

Inclusive yearTo constraint; prices are CLP. Applied to returned rows.

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

Inclusive priceFrom constraint; prices are CLP. Applied to returned rows.

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

Inclusive priceTo constraint; prices are CLP. Applied to returned rows.

## `condition` (type: `string`):

Vehicle condition; defaults to used, or all when searchUrl is supplied. Set explicitly to constrain a URL search.

## `searchUrl` (type: `string`):

Chileautos HTTPS search URL; combines with output constraints.

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

Maximum unique matching listings to deliver.

## `includeDetails` (type: `boolean`):

Fetch a detail response per listing for colour and available specifications.

## `useResidentialProxy` (type: `string`):

auto starts direct and switches to fresh residential sessions when blocked; always uses residential; never uses direct only.

## `apifyProxyCountry` (type: `string`):

Country for Apify residential fallback; defaults to Chile.

## Actor input object example

```json
{
  "maxResults": 20,
  "includeDetails": false,
  "useResidentialProxy": "auto",
  "apifyProxyCountry": "CL"
}
```

# 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 = {
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automatic/chileautos-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 = { "maxResults": 20 }

# Run the Actor and wait for it to finish
run = client.actor("automatic/chileautos-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 '{
  "maxResults": 20
}' |
apify call automatic/chileautos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automatic/chileautos-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/QCqwdhM3tid93APGo/builds/YWEOk8qW8Vm6Zi9A1/openapi.json
