# AutoTrader Car Listings Scraper (`sian.agency/autotrader-car-listings-scraper`) Actor

Pull the newest AutoTrader.com car listings by make, model, ZIP and radius: price, mileage, VIN, dealer, photos and days listed. Export CSV or JSON.

- **URL**: https://apify.com/sian.agency/autotrader-car-listings-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Business, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.54 / 1,000 car 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

## AutoTrader Scraper: Newest Car Listings by Make, Model and ZIP 🚗

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Craigslist Listings Scraper](https://img.shields.io/badge/Store-Craigslist%20Listings%20Scraper-5A2D82)](https://apify.com/sian.agency/craigslist-scraper?fpr=sian) [![eBay Scraper](https://img.shields.io/badge/Store-eBay%20Scraper-E53238)](https://apify.com/sian.agency/ebay-data-scraper?fpr=sian) [![RockAuto Product Scraper](https://img.shields.io/badge/Store-RockAuto%20Product%20Scraper-1AE392)](https://apify.com/sian.agency/rockauto-product-scraper?fpr=sian)

#### 🎉 AutoTrader.com listings, newest first: price, miles, VIN, dealer and days on the lot, 100 per page

##### For dealers, buyers and flippers who want to see a car the day it is listed

***

### 🔎 What is the AutoTrader Car Listings Scraper — and when should you use it?

The **AutoTrader Car Listings Scraper** turns AutoTrader.com search results for any make, model and US ZIP code into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** the newest car listings for a make and model around a ZIP code, with asking price, mileage, VIN, trim, colors, history highlights, days listed, the seller and a link to each car. Filter by model years, price, maximum mileage, condition and seller type, or keep only cars listed in the last few days.

**Use something else when:** the car is not listed on AutoTrader. Use [Craigslist Listings Scraper](https://apify.com/sian.agency/craigslist-scraper?fpr=sian) for private-party cars and trucks posted city by city, many of which never reach AutoTrader. Use [eBay Scraper](https://apify.com/sian.agency/ebay-data-scraper?fpr=sian) for eBay Motors auctions and buy-it-now listings with bids and seller feedback. This actor covers autotrader.com in the United States. AutoTrader UK and Canada, dealer websites and anything behind a login are out of scope, and private sellers' phone numbers are never returned.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/autotrader-car-listings-scraper

**Agentic payments:** Availability of [x402](https://www.x402.org/) and [Skyfire](https://www.skyfire.xyz/) depends on this Actor's current Store eligibility. Check the published listing for supported payment methods. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want the newest car listings from AutoTrader using the Apify Actor `sian.agency/autotrader-car-listings-scraper`.

Use it when I need: the newest car listings for a make and model around a ZIP code, with asking price, mileage, VIN, trim, colors, history highlights, days listed, the seller and a link to each car. Filter by model years, price, maximum mileage, condition and seller type, or keep only cars listed in the last few days.

Don't use it when: the car is not listed on AutoTrader — use craigslist-scraper or ebay-data-scraper instead.

How to call it: set `make` and `model` (leave `model` empty for every model of the make), a 5-digit `zip` and a `searchRadius` in miles, or "0" for nationwide. Narrow with `startYear`, `endYear`, `minPrice`, `maxPrice`, `maxMileage`, `condition` (`used`, `new` or `certified`) and `sellerType` (`any`, `dealer` or `private`). `maxDaysListed` keeps only fresh listings and `maxResults` caps the run.

Start with this input:
{
  "make": "Lexus",
  "model": "LS 400",
  "zip": "90012",
  "searchRadius": "0",
  "startYear": 1990,
  "endYear": 2000,
  "maxResults": 100
}

Ask me which make and model I want, my ZIP code and how far I am willing to travel, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *Find every Lexus LS 400 for sale in the US and sort them by mileage.*
- *Every morning, list the Porsche 911s that went up in the last day within 300 miles of Los Angeles.*
- *Show me Toyota Land Cruisers under 100,000 miles near Denver with price against mileage.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/autotrader-car-listings-scraper.md](https://apify.com/sian.agency/autotrader-car-listings-scraper.md).

### 📋 Overview

**Search AutoTrader.com the way a buyer does, and get the results back as a spreadsheet.** Pick a make, a model, a ZIP code and a radius. The actor returns every matching listing, newest first, with the price, mileage, VIN, seller and a link.

**What you get:**

- ✅ **33 fields per car**: price, mileage, VIN, trim, colors, drivetrain, engine, history highlights, seller, location and photo
- 🆕 **Newest listings first**: results are sorted by date listed, so the top rows are the cars that just went up
- 🎯 **The filters AutoTrader has**: model years, price range, maximum mileage, used, new or certified, dealer or private seller
- 🛡️ **Typos caught early**: a misspelled make or model stops the run before any listing is charged and lists the names AutoTrader knows
- 💰 **Pay per car returned**: listings you filter out and repeats cost nothing
- ✨ **Built for schedules**: set "Listed within (days)" to 1 and a daily run only returns fresh stock

***

### ✨ Features

- 🔍 **Make, model, ZIP and radius search**: 10 to 500 miles, or nationwide
- 📅 **Model-year range**: good for vintage hunts like a 1990 to 2000 Lexus LS 400
- 🛣️ **Maximum mileage**: keep only low-mile cars
- 💵 **Price range**: minimum and maximum asking price in US dollars
- 🤝 **Seller type**: dealers only, private sellers only, or both
- 🆕 **Days-listed filter**: drop anything older than your window
- 🔢 **VIN on every row** when the seller provides one, ready for a history check
- 📊 **Run report**: a summary page with the newest cars, a copy-ready VIN list and what was charged

***

### 🎬 Quick Start

Open the actor, keep the example search (used Porsche 911s within 500 miles of downtown Los Angeles) and press Start. You get up to 100 listings back. Change the make, model and ZIP to your own search when you are ready.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~autotrader-car-listings-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"make": "Lexus", "model": "LS 400", "zip": "10001", "searchRadius": "0", "maxResults": 100}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Describe the car

Type the make and, if you want one, the model. Leave the model empty to get every model of that make.

#### Step 2: Say where

Enter a 5-digit US ZIP code and pick a radius, or choose Nationwide.

#### Step 3: Run it

Press Start, then download the results as CSV, JSON or Excel.

**That's it. When the run finishes you'll have:**

- The newest matching listings with price, mileage and VIN
- The seller's name, city and, for dealers, phone number
- A direct link to each car on AutoTrader

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| make | string | No | Car brand, for example Porsche or Land Rover. Empty searches every make. The form starts with Porsche. |
| model | string | No | Model name, for example 911 or Land Cruiser. Empty returns every model of the make. The form starts with 911. |
| condition | select | No | used (includes certified pre-owned), new, or certified only. Default used. |
| zip | string | No | 5-digit US ZIP code the radius is measured from. Default 90012. |
| searchRadius | select | No | 10, 25, 50, 75, 100, 200, 300, 400 or 500 miles, or 0 for nationwide. Default 500. |
| sellerType | select | No | any, dealer or private. Default any. |
| startYear / endYear | integer | No | Model-year range. |
| minPrice / maxPrice | integer | No | Asking-price range in US dollars. |
| maxMileage | integer | No | Highest odometer reading to include. |
| maxDaysListed | integer | No | Keep only listings this many days old or newer. 0 means listed today. |
| maxResults | integer | No | Stop after this many listings, 1 to 1,000. Default 100. |

**Example: low-mile 997-generation 911s anywhere in the US**

```json
{
  "make": "Porsche",
  "model": "911",
  "zip": "90012",
  "searchRadius": "0",
  "startYear": 2005,
  "endYear": 2012,
  "maxMileage": 50000,
  "maxResults": 200
}
```

**Example: a daily feed of fresh Toyota 4Runners from private sellers**

```json
{
  "make": "Toyota",
  "model": "4Runner",
  "zip": "75201",
  "searchRadius": "200",
  "sellerType": "private",
  "maxDaysListed": 1
}
```

***

### 📤 Output

Each row is one car, with **33 fields**. The most useful ones:

| Field | Type | Description |
|-------|------|-------------|
| listingTitle | string | Headline, for example "Used 2025 Porsche 911 GT3 RS" |
| price | number | Asking price in USD. Empty when the seller asks you to call |
| mileage | integer | Odometer reading in miles |
| daysOnSite | integer | Days on AutoTrader. 0 means listed today |
| isNewlyListed | boolean | AutoTrader's own "new listing" flag |
| isReducedPrice | boolean | True when the price has been cut |
| year / make / model / trim | mixed | The car |
| vin | string | 17-character VIN |
| historyFlags | string | History highlights, for example "One owner, No accidents reported" |
| sellerName / sellerType | string | Dealer or private seller |
| sellerPhone | string | Dealer phone. Never filled for private sellers |
| sellerCity / sellerState / sellerZip | string | Where the car is |
| distanceMiles | number | Miles from your ZIP code |
| imageUrl | string | Main photo |
| listingUrl | string | Link to the car on AutoTrader |

**Example row:**

```json
{
  "listingTitle": "Used 2025 Porsche 911 GT3 RS",
  "year": 2025,
  "make": "Porsche",
  "model": "911",
  "trim": "GT3 RS",
  "price": 499000,
  "mileage": 4366,
  "daysOnSite": 0,
  "isNewlyListed": true,
  "isReducedPrice": false,
  "condition": "USED",
  "vin": "WP0AF2A96SS278078",
  "listingId": "794763090",
  "exteriorColor": "White",
  "interiorColor": "Black",
  "transmission": "7-Speed Automatic",
  "drivetrain": "RWD",
  "engine": "6-Cylinder",
  "fuelType": "Gasoline",
  "bodyStyle": "Coupe",
  "historyFlags": "No salvage title, No accidents reported, More than one owner",
  "sellerName": "Exotic Car Factory",
  "sellerType": "dealer",
  "sellerPhone": "9495294242",
  "sellerCity": "Tustin",
  "sellerState": "CA",
  "sellerZip": "92780",
  "distanceMiles": 34.4,
  "stockNumber": "10376",
  "imageUrl": "https://images.autotrader.com/hn/c/e792e84865394747bafce6ed6cf65158.jpg",
  "listingUrl": "https://www.autotrader.com/cars-for-sale/vehicle/794763090",
  "searchUrl": "https://www.autotrader.com/cars-for-sale/porsche/911?zip=90012&searchRadius=500&listingType=USED&numRecords=100&sortBy=datelistedDESC",
  "scrapedAt": "2026-10-29T03:12:45.000Z"
}
```

A brand-new listing sometimes has no photo yet, so imageUrl can be empty. About one listing in seven shows no price because the seller wants a call first.

***

### 💼 Use Cases & Examples

#### 1. Dealer sourcing

**A used-car buyer at a dealership wants to see trade-worthy stock the morning it is listed.**

**Input:** make, model, a 200-mile radius and "Listed within (days)" set to 1, on a daily schedule.
**Output:** only yesterday's and today's listings, with price, miles and VIN.
**Use:** call the seller before the car is gone.

#### 2. Vintage and classic car searches

**A classic-car buyer hunting a 1990s Lexus LS 400 or an air-cooled 911.**

**Input:** make, model, a model-year range and Nationwide.
**Output:** every matching car in the country, newest first.
**Use:** one list instead of a week of refreshing search pages.

#### 3. Low-mileage hunting

**A buyer who only wants cars with low miles.**

**Input:** make, model and "Maximum mileage" set to 30,000.
**Output:** low-mile cars with distance from your ZIP code.
**Use:** shortlist, then compare price against mileage in a sheet.

#### 4. Used car price research

**An analyst or appraiser pricing a model in a region.**

**Input:** make, model, ZIP, radius and a model-year range, maxResults 1,000.
**Output:** asking prices, mileage, trim and days listed for the whole market.
**Use:** a fair-price band, and a view of which cars sit unsold.

#### 5. Inventory monitoring

**A dealer tracking what competitors list nearby.**

**Input:** make, a 50-mile radius and "Dealers only".
**Output:** competitor listings with stock numbers, prices and price cuts.
**Use:** spot price drops (isReducedPrice) and new arrivals.

#### 6. VIN lists for appraisal

**A wholesaler running VINs through a history or valuation tool.**

**Input:** any search.
**Output:** a VIN on almost every dealer row, plus a copy-ready VIN list in the run report.
**Use:** paste straight into your appraisal tool.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('sian.agency/autotrader-car-listings-scraper').call({
  make: 'Toyota',
  model: 'Land Cruiser',
  zip: '80202',
  searchRadius: '500',
  maxMileage: 150000,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')

run = client.actor('sian.agency/autotrader-car-listings-scraper').call(run_input={
    'make': 'Toyota',
    'model': 'Land Cruiser',
    'zip': '80202',
    'searchRadius': '500',
    'maxMileage': 150000,
})

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['listingTitle'], item['price'], item['mileage'])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~autotrader-car-listings-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"make": "Toyota", "model": "Land Cruiser", "zip": "80202", "searchRadius": "500"}'
```

#### Automation Workflows (n8n / Zapier / Make)

1. **Trigger**: a schedule, for example every morning at 7
2. **HTTP Request**: run the actor with your search and "Listed within (days)" set to 1
3. **Process**: read the JSON rows
4. **Action**: post new cars to Slack, add them to a Google Sheet or email the list

***

### 📊 Performance & Pricing

You pay for each car listing returned, plus a small fee when the run starts.

| Plan | Per listing | Per 1,000 listings |
|------|------------:|-------------------:|
| Free | $0.007 | $7.00 |
| Starter (Bronze) | $0.00175 | $1.75 |
| Scale (Silver) | $0.00164 | $1.64 |
| Business (Gold) | $0.00154 | $1.54 |
| Platinum | $0.00145 | $1.45 |
| Diamond | $0.00137 | $1.37 |

The run-start fee is $0.01 on paid plans and $0.03 on the free plan.

#### Free plan (try it now)

- **25 listings per run** with every field and every filter
- No credit card required

#### Paid plans (production)

- **Up to 1,000 listings per run**, and you can schedule as many runs as you like
- Only cars actually returned are charged

[🔗 View current pricing](https://apify.com/sian.agency/autotrader-car-listings-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How fresh are the results?**
A: They are read from AutoTrader when your run starts, sorted newest first. "Days listed" tells you how long each car has been up.

**Q: How many listings can I get?**
A: Up to 1,000 per run on a paid plan and 25 on the free plan. AutoTrader shows 100 per results page.

**Q: Why is a price empty?**
A: The seller chose "contact for price". That happens on roughly one listing in seven. Setting a price range leaves those cars out.

**Q: Can I search every make at once?**
A: Yes. Clear the make and model fields and the search covers all cars around your ZIP code.

**Q: What happens if I misspell a model?**
A: The run stops before any listing is charged and shows the model names AutoTrader recognises for that make.

**Q: Do I get private sellers' phone numbers?**
A: No. Dealer phone numbers are included. Private sellers' numbers are personal data, so that column stays empty for them.

**Q: Does it cover AutoTrader UK or Canada?**
A: No. This actor covers autotrader.com in the United States.

**Q: What formats can I export?**
A: JSON, CSV, Excel, XML and HTML, straight from the dataset.

***

### 🐛 Troubleshooting

**The run stopped with "does not recognise the model"**

- Use the model name exactly as AutoTrader lists it. The error message shows the list.
- Leave the model empty to get every model of the make.

**Fewer results than I expected**

- Widen the radius or pick Nationwide.
- Check the condition field. Used is the default, so new cars are not included unless you choose New.
- A price range removes listings that show no price.

**"Temporarily unavailable" for one page**

- Run the same input again in a few minutes. Listings already saved stay in your dataset and only those were charged.

**The free run stopped at 25 listings**

- That is the free-plan limit per run. Any paid plan raises it to 1,000.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

AutoTrader is a trademark of its owner. This actor is an independent tool by SIÁN Agency and is not affiliated with or endorsed by AutoTrader.

***

### 🤝 Support

**Questions or a search that does not work?**

- Open an issue on the actor page with the run link
- Browse the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Changelog

This Actor's version history is a separate document: https://apify.com/sian.agency/autotrader-car-listings-scraper/changelog.md

# Actor input Schema

## `operation` (type: `string`):

Search AutoTrader.com car listings by make, model and location. Results always come back newest first, so a scheduled run picks up fresh listings quickly.

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

Car brand as AutoTrader spells it, for example Porsche, Lexus, Toyota, Land Rover or Mercedes-Benz. Leave empty to search every make.

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

Optional model name, for example 911, LS 400, Land Cruiser or 4Runner. Leave empty to get every model of the make. If AutoTrader does not recognise the model, the run stops before any listing is charged and lists the models it does know.

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

Which listings to include. Used covers certified pre-owned cars too.

## `zip` (type: `string`):

US ZIP code the search radius is measured from. The example is downtown Los Angeles.

## `searchRadius` (type: `string`):

How far from the ZIP code to search. Pick Nationwide to search the whole country.

## `sellerType` (type: `string`):

Limit results to dealer stock or to cars sold by their owners.

## `startYear` (type: `integer`):

Only cars from this model year or newer. Leave empty for no lower limit.

## `endYear` (type: `integer`):

Only cars from this model year or older. Useful for vintage searches, for example 1990 to 2005.

## `minPrice` (type: `integer`):

Only cars priced at or above this amount.

## `maxPrice` (type: `integer`):

Only cars priced at or below this amount. Listings with no price shown are left out by AutoTrader when you set a price range.

## `maxMileage` (type: `integer`):

Only cars with this many miles or fewer, for example 30000 for low-mileage stock.

## `maxDaysListed` (type: `integer`):

Only keep listings that have been on AutoTrader for this many days or fewer. 0 means listed today. Leave empty to keep everything. Handy for a scheduled run that only wants fresh stock.

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

Stop after this many listings. Results arrive 100 at a time, newest first. Free accounts are capped at 25 listings per run.

## Actor input object example

```json
{
  "operation": "search",
  "make": "Lexus",
  "model": "LS 400",
  "condition": "used",
  "zip": "10001",
  "searchRadius": "500",
  "sellerType": "any",
  "maxResults": 100
}
```

# Actor output Schema

## `autotraderComCarListings` (type: `string`):

Every car listing this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "search",
    "make": "Porsche",
    "model": "911",
    "condition": "used",
    "zip": "90012",
    "searchRadius": "500",
    "sellerType": "any",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/autotrader-car-listings-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 = {
    "operation": "search",
    "make": "Porsche",
    "model": "911",
    "condition": "used",
    "zip": "90012",
    "searchRadius": "500",
    "sellerType": "any",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/autotrader-car-listings-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 '{
  "operation": "search",
  "make": "Porsche",
  "model": "911",
  "condition": "used",
  "zip": "90012",
  "searchRadius": "500",
  "sellerType": "any",
  "maxResults": 100
}' |
apify call sian.agency/autotrader-car-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/autotrader-car-listings-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/HwmbXEprxkS25K99e/builds/rECRC6RegwmpubPSa/openapi.json
