# Hemmings Cars Search Scraper (`ecomscrape/hemmings-cars-search-scraper`) Actor

Automate classic and collector car data extraction from Hemmings.com, the world's largest marketplace for vintage vehicles. Get comprehensive listings with prices, vehicle specs, dealer information, and VIN numbers for automotive research and inventory management.

- **URL**: https://apify.com/ecomscrape/hemmings-cars-search-scraper.md
- **Developed by:** [ecomscrape](https://apify.com/ecomscrape) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 0 monthly users, 83.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$15.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## Hemmings.com Classic Cars Scraper: Extract Vintage & Collector Vehicle Listings

### Introduction

Hemmings.com stands as the world's premier marketplace for classic, vintage, and collector vehicles, serving automotive enthusiasts and dealers for over 70 years. With hundreds of thousands of listings spanning classic cars, muscle cars, antiques, and rare collector vehicles, Hemmings represents the most comprehensive database of collectible automobiles available online.

For classic car dealers, automotive researchers, investment analysts, and collectors, accessing this extensive vehicle data is crucial for market analysis, inventory sourcing, price benchmarking, and competitive intelligence. However, manually collecting listing information across different makes, models, and price ranges is extremely time-consuming, especially when tracking market trends or building comprehensive inventory databases.

The Hemmings.com Cars Search Scraper automates this data extraction process, enabling systematic collection of classic vehicle listings with complete specifications, pricing data, seller information, and market metrics that would otherwise require countless hours of manual research.

### Scraper Overview

The Hemmings.com Cars Search Scraper is a specialized data extraction tool designed to systematically collect classic and collector vehicle listings from Hemmings' extensive marketplace. This scraper utilizes advanced web automation to navigate search results and extract detailed vehicle information efficiently.

Key advantages include configurable proxy support for reliable data collection, retry mechanisms for handling network issues, and flexible pagination controls for managing large datasets. It's particularly valuable for classic car dealers managing inventory pipelines, automotive market researchers analyzing pricing trends, investment analysts tracking collector vehicle values, and enthusiasts building comprehensive vehicle databases.

The scraper handles various search parameters including make/model queries, price range filtering, sorting by popularity or date, and custom page controls. It maintains high data accuracy while respecting rate limits and implementing ethical scraping practices for long-term reliability.

### Input and Output Details

Example url 1: https://www.hemmings.com/classifieds/cars-for-sale

Example url 2: https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale\&make\_id%5B%5D=168\&distance=50\&per\_page=30\&sort\_by=weekly\_view\_count\&order=DESC

Example url 3: https://www.hemmings.com/classifieds/cars-for-sale?adtype=cars-for-sale\&distance=50\&q=civic\&per\_page=30\&sort\_by=year\&order=ASC

Example Screenshot of automotive list by query page:

![](https://i.ibb.co/84zG7y2d/Screenshot-from-2026-01-09-10-56-34.png)

#### Input Format

The scraper accepts JSON configuration for precise control over data extraction:

##### Scrape with URLs:

```json
{
  "proxy": {
    "useApifyProxy": false
  },
  "ignore_url_failures": true,
  "max_retries_per_url": 2,
  "max_items_per_url": 20,
  "urls": [
    "https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale&make_id%5B%5D=168&distance=50&per_page=30&sort_by=weekly_view_count&order=DESC",
    "https://www.hemmings.com/classifieds/cars-for-sale",
    "https://www.hemmings.com/classifieds/cars-for-sale?adtype=cars-for-sale&distance=50&q=civic&per_page=30&sort_by=year&order=ASC"
  ]
}
```

**The `urls` parameter**: Add URLs of car listing pages you want to scrape. Navigate to Hemmings.com, perform your search with desired filters (make, model, year, price), then copy the URL. You can add URLs one by one or use bulk edit.

**The `ignore_url_failures` parameter**: If `true`, scraper continues even if some URLs fail after maximum retries, ensuring one problematic URL doesn't halt your entire job.

*When providing URLs, all "Scrape with search filters" options are disabled. The system only collects data from specified URLs.*

##### Scrape with Search Filters:

```json
{
  "keyword": "BMW",
  "sort_by": "weekly_view_count-DESC",
  "page": 1,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

**The `keyword` parameter**: Enter search keyword for vehicles (e.g., "BMW", "Mustang", "Corvette", "Ford Model T", "Porsche 911").

**The `sort_by` parameter**: Sort results by:

- `"weekly_view_count-DESC"` - Most popular listings
- `"relevant_date-DESC"` - Newest listings first
- `"relevant_date-ASC"` - Oldest listings first
- `"current_price-ASC"` - Lowest price first
- `"current_price-DESC"` - Highest price first
- `"year-ASC"` - Oldest vehicles first
- `"year-DESC"` - Newest vehicles first
- `""` (empty) - Recommended (default)

**The `page` parameter**: Specify starting page number for scraping, useful for resuming interrupted jobs or targeting specific result ranges.

*When using search filters, leave the `urls` field empty.*

##### General Options:

**The `max_items_per_url` parameter**: Limit items per URL or search. Default is 20, balancing comprehensive collection with manageable batch sizes.

**The `max_retries_per_url` parameter**: Maximum retry attempts if scraping fails. Default is 2, providing good balance between thoroughness and efficiency.

**The `proxy` parameter**: Essential for maintaining anonymity and avoiding detection. Residential proxies recommended for best results with Hemmings.com.

#### Output Format

The scraper returns structured vehicle listing data with each field serving specific purposes:

- **ID**: Unique listing identifier in Hemmings system. *Essential for tracking specific listings, preventing duplicates, and referencing vehicles over time.*

- **Listing Type**: Classification of listing format (e.g., classified ad, auction, dealer listing). *Indicates sales method and urgency level for acquisition strategies.*

- **Type**: Vehicle category classification. *Useful for segmenting inventory by collector car type, muscle car, antique, etc.*

- **Status**: Current listing status (active, sold, pending). *Critical for real-time inventory tracking and market availability analysis.*

- **Title**: Brief listing headline. *Quick identification of vehicle for database sorting and initial screening.*

- **Long Title**: Extended descriptive title. *Provides comprehensive vehicle description for detailed cataloging and marketing.*

- **Abstract**: Short listing summary. *Offers quick overview of vehicle condition, features, and highlights for rapid assessment.*

- **Body**: Complete listing description. *Contains detailed information about vehicle history, condition, modifications, restoration work, and unique features for thorough evaluation.*

- **URL**: Direct link to listing page. *Essential for accessing full details, additional photos, and contacting sellers.*

- **Price**: Listed asking price. *Primary data point for market analysis, investment evaluation, and pricing strategies.*

- **Current Price**: Active price (may differ from original if reduced). *Tracks price changes and negotiation opportunities.*

- **Price Alt**: Alternative pricing information. *May contain "Make Offer" or other pricing terms.*

- **Current Bid**: Active bid amount for auction listings. *Tracks real-time market interest and competitive bidding.*

- **Offer Count**: Number of offers received. *Indicates demand level and potential for negotiation.*

- **Has Reserve**: Boolean indicating reserve price existence. *Important for auction bidding strategies.*

- **Reserve Met**: Boolean showing if reserve price reached. *Critical auction status indicator.*

- **Location**: General vehicle location. *Important for logistics planning and regional market analysis.*

- **City**: Specific city location. *Enables precise geographic targeting and shipping cost calculation.*

- **State**: State/province location. *Useful for regional inventory analysis and tax considerations.*

- **Listing Date**: Date listing was posted. *Tracks market freshness and seller urgency.*

- **Start Date**: Auction/listing start date. *Important for auction timing and campaign planning.*

- **End Date**: Listing expiration or auction end date. *Creates urgency for purchasing decisions.*

- **Sold At**: Final sale price if vehicle sold. *Crucial for historical price analysis and market trend tracking.*

- **Trending**: Boolean indicating if listing is popular. *Shows high-interest vehicles for market trend analysis.*

- **Is Featured**: Boolean showing if listing is promoted. *Indicates premium listings and dealer investment level.*

- **Seller**: Seller name or username. *Identifies private sellers vs dealers for sourcing strategies.*

- **Thumbnail**: Main listing image URL. *Visual identification for catalog building and marketing materials.*

- **Brand**: Vehicle brand/manufacturer. *Primary classification for make-specific research.*

- **Dealer**: Dealer information if applicable. *Identifies professional sellers for B2B relationships.*

- **Stock No**: Dealer inventory stock number. *Useful for dealer inventory tracking and cross-referencing.*

- **Year**: Vehicle manufacturing year. *Critical specification for collector value assessment.*

- **Make**: Vehicle manufacturer. *Primary search and classification criterion.*

- **Model**: Vehicle model name. *Essential for specific vehicle targeting and comparison.*

- **Live Date**: Date listing went live. *Tracks actual market availability timing.*

- **VIN**: Vehicle Identification Number. *Unique identifier for vehicle history research, authentication, and ownership verification.*

Each field supports classic car dealing operations, market research, investment analysis, and collector database management.

##### Example Output:

```json
[
  {
  "id": 31647,
  "listing_type": "auctions",
  "type": "make_offer",
  "status": "live",
  "title": "2000 BMW 740iL",
  "long_title": "Meticulously Maintained 2000 BMW 740IL Sedan with All Service Records",
  "abstract": null,
  "body": null,
  "url": "https://www.hemmings.com/listing/2000-bmw-740il-denver-co-388807",
  "price": "$17,999",
  "current_price": "$17,999",
  "price_alt": null,
  "current_bid": null,
  "offer_count": null,
  "has_reserve": false,
  "reserve_met": true,
  "location": "Denver, CO 80207",
  "city": null,
  "state": "CO",
  "listing_date": "2026-01-07 14:35:04",
  "start_date": "2026-01-07T15:00:34-05:00",
  "end_date": null,
  "sold_at": null,
  "trending": false,
  "is_featured": false,
  "seller": "Weisco Motorcars LTD",
  "thumbnail": {
    "xl": {
      "16:9": "https://thumbor-auction.hmn.com/yyk-CM0E4Qt84CG4lo9q1FM00dI=/900x507/filters:format(webp)/4163616/156367033.jpg",
      "1:1": "https://thumbor-auction.hmn.com/5SogQs5kgZ2C2cdODxPN4isSfyM=/900x900/filters:format(webp)/4163616/156367033.jpg",
      "3:2": "https://thumbor-auction.hmn.com/zBzZp0bKof3vIWaut3p6LQ5vsHY=/900x600/filters:format(webp)/4163616/156367033.jpg",
      "4:3": "https://thumbor-auction.hmn.com/UYsC1xZPqwVqMDeROiYEacNJZ_Y=/900x675/filters:format(webp)/4163616/156367033.jpg",
      "full": "https://thumbor-auction.hmn.com/5InQ4eHORskHe3ULFd15dBmVy18=/900x0/filters:format(webp)/4163616/156367033.jpg"
    },
    "md": {
      "16:9": "https://thumbor-auction.hmn.com/9U-Nxfv264JNFQhCWEV9qnGfuiE=/300x169/filters:format(webp)/4163616/156367033.jpg",
      "1:1": "https://thumbor-auction.hmn.com/YP6lB46ZLl0_hdbfewjYLQ3dBYs=/300x300/filters:format(webp)/4163616/156367033.jpg",
      "3:2": "https://thumbor-auction.hmn.com/EAJGBDW0zfK_NESvk8CMqRykbXw=/300x200/filters:format(webp)/4163616/156367033.jpg",
      "4:3": "https://thumbor-auction.hmn.com/_rnTvqN_QssTQltIXKP4CfFaFZ0=/300x225/filters:format(webp)/4163616/156367033.jpg",
      "full": "https://thumbor-auction.hmn.com/z9vg21WoWmItaXmd_PGl_dIC5oo=/300x0/filters:format(webp)/4163616/156367033.jpg"
    },
    "xs": {
      "16:9": "https://thumbor-auction.hmn.com/hA3fNRol5Xj2chbqirMSdU2MxXg=/120x68/filters:format(webp)/4163616/156367033.jpg",
      "1:1": "https://thumbor-auction.hmn.com/YQfRi1UOntVz1YFFmkknCoUJd0c=/120x120/filters:format(webp)/4163616/156367033.jpg",
      "3:2": "https://thumbor-auction.hmn.com/mUhM91ICBxMVecBkljEDUozrJ64=/120x80/filters:format(webp)/4163616/156367033.jpg",
      "4:3": "https://thumbor-auction.hmn.com/PQSCOLqfYaoje1Fq-f27d_4oLWA=/120x90/filters:format(webp)/4163616/156367033.jpg",
      "full": "https://thumbor-auction.hmn.com/rRlAeK_rnjjXV4daxyILXKFeYws=/120x0/filters:format(webp)/4163616/156367033.jpg"
    },
    "lg": {
      "16:9": "https://thumbor-auction.hmn.com/wPmJmqsvHVQ62XEmvyxS12q-Kbk=/450x254/filters:format(webp)/4163616/156367033.jpg",
      "1:1": "https://thumbor-auction.hmn.com/p8ztd08MceD18t_X11saVPd1PDQ=/450x450/filters:format(webp)/4163616/156367033.jpg",
      "3:2": "https://thumbor-auction.hmn.com/jZ2Da6ITGxW9LT4szuUtFkLLfGg=/450x300/filters:format(webp)/4163616/156367033.jpg",
      "4:3": "https://thumbor-auction.hmn.com/6yRCMLzHij5Rvmwg05OK0hXip2k=/450x338/filters:format(webp)/4163616/156367033.jpg",
      "full": "https://thumbor-auction.hmn.com/uvTMUIEY9mNo0bSwIs_E16C95JE=/450x0/filters:format(webp)/4163616/156367033.jpg"
    }
  },
  "brand": null,
  "dealer": {
    "address": "3815 Grape St",
    "city": "Denver",
    "name": "Weisco Motorcars LTD",
    "id": 814,
    "state": "CO",
    "postal_code": "80207",
    "slug": null
  },
  "stock_no": null,
  "year": 2000,
  "make": {
    "name": "BMW",
    "id": 168,
    "slug": "bmw"
  },
  "model": {
    "name": "740iL",
    "id": 5814,
    "slug": "740il"
  },
  "live_date": "2026-01-07 15:00:34",
  "vin": null,
  "from_url": "https://www.hemmings.com/classifieds/cars-for-sale/bmw"
}
]
```

### Usage Guide

#### Option 1: Scraping with URLs

Navigate to Hemmings.com and construct targeted searches using their filters for make, model, year range, price range, location, and other criteria. Copy resulting URLs into the `urls` array.

**Best practices:**

- Test individual URLs before batch processing to verify data structure
- Use specific search URLs for targeted inventory (e.g., pre-war cars, muscle cars, European classics)
- Monitor for URL structure changes in Hemmings' platform
- Keep backup URLs as platform updates may alter formats
- Organize URLs by vehicle category for systematic collection

**Common troubleshooting:**

- Verify URL includes all necessary parameters (filters, sorting)
- Check for URL encoding issues with special characters
- Adjust retry settings if experiencing timeouts
- Use proxies if encountering access restrictions

#### Option 2: Scraping with Search Filters

**Step 1: Define Search Keyword**

Enter targeted keywords:

- **By Make**: "BMW", "Porsche", "Chevrolet", "Ford", "Ferrari"
- **By Model**: "Mustang", "Corvette", "911", "Camaro", "GTO"
- **By Era**: "Model T", "Brass Era", "Pre-war"
- **By Type**: "muscle car", "sports car", "roadster", "convertible"

**Step 2: Configure Sorting**

Select appropriate sorting strategy:

- **Weekly View Count**: Identifies most popular/desirable vehicles
- **Relevant Date (DESC)**: Tracks newest listings for early sourcing
- **Current Price (ASC/DESC)**: Analyzes market pricing by value range
- **Year (ASC/DESC)**: Organizes by vehicle age for era-specific research

**Step 3: Set Pagination**

Use `page` parameter for:

- Starting from specific result page
- Resuming interrupted scrapes
- Systematic coverage of large result sets
- Targeting specific price/date ranges deeper in results

##### Best Practices for Filter-Based Scraping

**Keyword Strategy:**

- Use specific makes/models for targeted sourcing
- Combine make with model for precise results (e.g., "BMW 2002")
- Include year ranges in keywords when relevant
- Test keyword variations to maximize results

**Sorting Strategy:**

- Use "weekly\_view\_count" to identify market-hot vehicles
- Use "relevant\_date" for fresh inventory monitoring
- Use "current\_price" for market pricing analysis
- Use "year" for chronological vehicle research

**Systematic Coverage:**

1. Start with broad searches to assess market size
2. Narrow to specific makes/models of interest
3. Use multiple sorting methods for comprehensive coverage
4. Track scraped listings to avoid duplicates

##### Data Validation and Quality Control

Verify:

- VIN numbers are present for authentication
- Prices are in expected ranges for vehicle type/year
- Listing dates are current for active inventory
- Location data is complete for logistics
- Dealer vs private seller distinction is clear

##### Common Issue Resolution

**Empty Results:**

- Verify keyword matches Hemmings' search terms
- Broaden search criteria if too specific
- Check if make/model exists in Hemmings database
- Try alternative keyword phrasings

**Incomplete Data:**

- Some fields may be optional in listings
- VIN may not be provided by all sellers
- Sold listings may have limited information
- Adjust expectations for field completeness

**Sorting Issues:**

- Ensure sort parameter matches enum values exactly
- Use empty string for default "Recommended" sort
- Verify sort order (ASC/DESC) matches needs

#### Proxy Configuration

**Recommendations:**

- Use US-based proxies for optimal Hemmings access
- Residential proxies provide better reliability
- Rotate proxies for high-volume scraping
- Monitor for rate limiting and adjust accordingly

### Benefits and Applications

**Time Savings:** Reduces hours of manual listing review to minutes of automated extraction, enabling focus on analysis and purchasing decisions rather than data gathering.

**Primary Applications:**

**Classic Car Dealer Inventory Management:** Build comprehensive sourcing databases, track competitor inventory, monitor market availability by make/model, and identify undervalued acquisition opportunities.

**Market Research & Analysis:** Track pricing trends across vehicle categories, analyze demand indicators through view counts and offers, identify emerging collector markets, and benchmark asking vs sold prices.

**Investment Analysis:** Monitor collector vehicle values over time, identify appreciation trends by make/model/year, track auction results vs classified sales, and assess market liquidity for specific vehicles.

**Competitive Intelligence:** Track dealer inventory strategies, monitor pricing positioning by competitor, identify market gaps and opportunities, and analyze regional market variations.

**Enthusiast Database Building:** Create personal watchlists for dream cars, track specific VINs across listings, monitor price changes on followed vehicles, and build comprehensive research archives.

**Competitive Advantages:**

- Access to complete listing data including VINs for authentication
- Real-time market metrics (trending status, offer counts, view data)
- Historical pricing when vehicles sell
- Dealer vs private seller segmentation
- Complete vehicle specifications and descriptions

Integration with CRM systems, inventory management platforms, and analytics tools enables immediate activation for sourcing workflows, market reports, and investment decisions.

### Conclusion

The Hemmings.com Cars Search Scraper transforms manual classic vehicle research into efficient automated data collection. By providing structured access to the world's largest classic car marketplace, it empowers dealers, researchers, investors, and enthusiasts to make data-driven decisions about vehicle sourcing, pricing, and market timing.

Whether building dealer inventory pipelines, conducting market research, tracking investment vehicles, or managing personal collections, this scraper provides systematic extraction capabilities that accelerate classic automotive intelligence gathering.

Ready to streamline your classic car market research? Start extracting valuable insights from Hemmings.com's extensive marketplace today and transform your vintage vehicle sourcing and analysis capabilities.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about hemmings.com Property Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Cars list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped after the maximum number of retries is reached.

## `keyword` (type: `string`):

Enter the keyword to search for items

## `sort_by` (type: `string`):

Filter items by (e.g., weekly\_view\_count, relevant\_date, current\_price, year, etc.)

## `page` (type: `integer`):

Specify the page number to start scraping from

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL or search filters you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL or search filters if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale&make_id%5B%5D=168&distance=50&per_page=30&sort_by=weekly_view_count&order=DESC"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "urls": [
        "https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale&make_id%5B%5D=168&distance=50&per_page=30&sort_by=weekly_view_count&order=DESC"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/hemmings-cars-search-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 = {
    "urls": ["https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale&make_id%5B%5D=168&distance=50&per_page=30&sort_by=weekly_view_count&order=DESC"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/hemmings-cars-search-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 '{
  "urls": [
    "https://www.hemmings.com/classifieds/cars-for-sale/bmw?adtype=cars-for-sale&make_id%5B%5D=168&distance=50&per_page=30&sort_by=weekly_view_count&order=DESC"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [],
    "apifyProxyCountry": "US"
  }
}' |
apify call ecomscrape/hemmings-cars-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ecomscrape/hemmings-cars-search-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/q3Nh6hHr8dhmlQlwr/builds/6PG90iqEkuTWUt77E/openapi.json
