# IronPlanet Scraper (`parseforge/iron-planet-scraper`) Actor

Scrapes IronPlanet heavy equipment listings from search or listing URLs and returns each machine as a flat row with price, hours, location, and details.

- **URL**: https://apify.com/parseforge/iron-planet-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Developer tools, Lead generation
- **Stats:** 14 total users, 1 monthly users, 69.4% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $28.99 / 1,000 result items

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?

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### IronPlanet Scraper

**Scrape IronPlanet heavy equipment listings from any search or listing URL, up to a million per run.** Every machine comes with its price, hours, location, and full listing details. No login or API key. Export to CSV, JSON, Excel, or XML.

IronPlanet's auction site hides its inventory behind dynamic pages and search filters. This reads the public listing pages directly, follows pagination, and returns each machine in one fixed schema. Filter by URL, cap the count, and get clean rows ready for analysis.

| Who uses it | What they scrape IronPlanet for |
|---|---|
| Equipment dealers | Monitor competitor pricing and inventory on IronPlanet |
| Market analysts | Track heavy equipment market trends and auction volumes |
| Fleet managers | Find specific machines for purchase or replacement |
| Data scientists | Build datasets of equipment specs and sold prices |

### What it does

This Actor collects IronPlanet equipment listings from search result pages or direct listing URLs and returns each one as a flat row.

- 🔗 **URL-driven:** Start from any IronPlanet search or listing URL, including filtered searches.
- 📄 **Pagination handled:** Follows next-page links automatically until maxItems is reached.
- ⚙️ **Simple controls:** Set maxItems to cap the run, no complex configuration needed.
- 📦 **Structured output:** Each listing becomes a flat row with consistent fields for easy export.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with IronPlanet data

**📊 Monitor auction prices.**

A market analyst runs the scraper on IronPlanet search results for excavators weekly to track average selling prices and adjust valuation models.

**🔍 Find specific equipment.**

A fleet manager scrapes listings filtered by make and model to locate a low-hour bulldozer within budget.

**📈 Track inventory trends.**

An equipment dealer scrapes all listings in a category monthly to see which brands are flooding the market.

**🧪 Build research datasets.**

A data scientist collects thousands of listings with specs and prices to train a price prediction model.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API needed** | Scrapes public IronPlanet pages directly, no registration or keys |
| **Flexible start** | Use any search URL with filters, or a single listing page |
| **Scalable** | Collect up to 1,000,000 listings in one run |
| **Clean data** | Returns a fixed schema with all listing details |

### How it compares

No other Store actor targets IronPlanet the same way, so the honest comparison is with the alternatives teams actually weigh.

| | IronPlanet Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When IronPlanet changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from IronPlanet search or listing URLs, and set a maximum number of listings to collect per run. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "startUrls": [
    {
      "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage"
    }
  ],
  "maxItems": 10
}
```

A larger pull:

```json
{
  "startUrls": [
    {
      "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage"
    }
  ],
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.03866 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $3.87 |
| 1,000 results | $38.66 |
| 10,000 results | $386.60 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [IronPlanet Scraper](https://apify.com/parseforge/iron-planet-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to IronPlanet through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/iron-planet-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your start URL is a valid IronPlanet search or listing page and that it is publicly accessible. Also ensure maxItems is set to at least 1.

**Why are some fields empty?**

Some listing details may not be present on the page or may be hidden behind a login. Try a different URL or check the page manually.

**Why did the run stop before reaching maxItems?**

The scraper stops when there are no more pages to follow or when it hits the maxItems limit. If you expected more, verify the search URL returns more results.

**Why am I getting a timeout error?**

IronPlanet may be slow or blocking requests. Try reducing the number of start URLs or increasing the timeout in advanced settings.

**Can I scrape a listing that requires login?**

No, the scraper only accesses public pages. If a listing is behind a login, it cannot be scraped.

### FAQ

| Question | Answer |
|---|---|
| What is IronPlanet? | IronPlanet is an online marketplace for used heavy equipment, trucks, and other industrial assets, sold through auctions and direct listings. |
| Do I need an IronPlanet account to scrape? | No, the scraper reads public listing pages without login. Some details may be limited to what is visible to anonymous visitors. |
| Can I scrape a specific search with filters? | Yes, copy the URL from IronPlanet after applying your filters and use it as a start URL. |
| How many listings can I get in one run? | You can set maxItems up to 1,000,000. The actual number depends on how many listings match your start URLs. |
| What format is the output? | The Actor returns a dataset of flat rows, which you can export to CSV, JSON, Excel, or XML from Apify. |
| Does it scrape sold listings? | It scrapes whatever is visible on the pages you provide. If sold listings appear in search results, they will be included. |
| Can I scrape multiple URLs at once? | Yes, provide an array of start URLs, and the scraper will process them all in one run. |
| Is this an official IronPlanet API? | No, this is a third-party scraper that reads public web pages. It is not affiliated with IronPlanet. |
| How often can I run it? | You can schedule runs as often as you like, but be respectful of IronPlanet's servers and follow their terms of service. |
| What if a listing page changes layout? | The scraper is maintained to adapt to site changes. If you notice missing fields, contact support or update the Actor. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by IronPlanet, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

URLs to start scraping from. You can provide search result pages or specific listing pages from IronPlanet.com. Example: https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage

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

How many listings to collect per run.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage"
    }
  ],
  "maxItems": 10
}
```

# Actor output Schema

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

Complete dataset with all scraped equipment listings including specifications, pricing, location, images, and auction details

## `overview` (type: `string`):

Overview view of equipment listings with key fields displayed in a table format

# 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 = {
    "startUrls": [
        {
            "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage"
        }
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/iron-planet-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 = {
    "startUrls": [{ "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage" }],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/iron-planet-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 '{
  "startUrls": [
    {
      "url": "https://www.ironplanet.com/jsp/s/search.ips?kwtag=newhomepage"
    }
  ],
  "maxItems": 10
}' |
apify call parseforge/iron-planet-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/iron-planet-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/hyYv7NSWI0Pp8roVP/builds/fwfDsiCjQqu6QYSaV/openapi.json
