# Trade-A-Plane Listings Scraper (`parseforge/trade-a-plane-scraper`) Actor

Browse Trade A Plane for aircraft and aviation listings by category, make, or model. Each listing returns the make, model, year, price, hours, location, seller type, category, listing id, and gallery images. Great for aviation market research, price tracking, and sourcing planes.

- **URL**: https://apify.com/parseforge/trade-a-plane-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, E-commerce, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.88 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🛫 Trade-A-Plane Scraper

> 🚀 **Export Trade-A-Plane listings in seconds. Category, make, model, year, price, hours, location, seller type, and gallery images in one clean dataset.**

> 🕒 **Last updated:** 2026-06-05 · **📊 13 fields** per listing · US-wide aircraft inventory · Piston, turboprop, jets, helicopters, parts · Live trade-a-plane.com results

The Trade-A-Plane Scraper turns any [trade-a-plane.com](https://www.trade-a-plane.com) search into a clean dataset. Pick a category, filter by make, model, and price band, and the actor walks every result page and flattens each listing into one row.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| 🛩️ Aircraft brokers | Track US inventory across categories |
| 🏢 MRO and parts dealers | Monitor parts and engine listings |
| 📊 Aviation analysts | Build pricing trend datasets |
| 👨‍✈️ Private buyers | Compare hundreds of listings in one sheet |
| 📰 Journalists | Track the used aircraft market |
| 👩‍💻 Developers | Mirror Trade-A-Plane inventory into your app |

### 📋 What the Trade-A-Plane Scraper does

- Builds the Trade-A-Plane search URL from category, make, model, and price band.
- Walks every result page up to your `maxItems` cap.
- Parses each card for title, year, price, hours, location, and gallery images.
- Detects the Trade-A-Plane listing ID from the URL.
- Surfaces upstream errors as clean records.

> 💡 **Why it matters:** Trade-A-Plane is the largest US aviation marketplace, but the inventory is only available behind paginated HTML. This actor flattens it into one tidy dataset.

### 🎬 Full Demo

_🚧 Coming soon._

### ⚙️ Input

<table>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td><code>category</code></td><td>enum</td><td>No</td><td>aircraft, piston-single, turboprop, jet, parts, engines, etc.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td>No</td><td>Free 10, paid up to 1,000,000.</td></tr>
<tr><td><code>make</code></td><td>string</td><td>No</td><td>Cessna, Piper, Beechcraft, etc.</td></tr>
<tr><td><code>model</code></td><td>string</td><td>No</td><td>172, Bonanza, etc.</td></tr>
<tr><td><code>minPrice</code></td><td>integer</td><td>No</td><td>Min price in USD.</td></tr>
<tr><td><code>maxPrice</code></td><td>integer</td><td>No</td><td>Max price in USD.</td></tr>
</table>

**Example 1, Cessna 172 listings:**
```json
{ "category": "piston-single-aircraft", "make": "Cessna", "model": "172", "maxItems": 100 }
````

**Example 2, turboprops under 1.5M:**

```json
{ "category": "turboprop-aircraft", "maxPrice": 1500000, "maxItems": 50 }
```

> ⚠️ **Good to Know:** Trade-A-Plane lists US-based aircraft, parts, engines, and avionics. Prices are in USD.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| 🏷️ `category` | string | Search category. |
| 🏭 `make` | string | Manufacturer. |
| ✈️ `model` | string | Model and headline. |
| 📅 `year` | number | Year of manufacture. |
| 💵 `price` | number | Asking price in USD. |
| ⏱️ `hours` | number | Total time hours when shown. |
| 📍 `location` | string | Listing location. |
| 🧑‍💼 `seller_type` | string | Dealer or private seller. |
| 🔖 `listing_id` | string | Trade-A-Plane listing ID. |
| 🖼️ `images` | string\[] | Gallery image URLs. |
| 🔗 `url` | string | Listing URL. |
| 🕒 `scrapedAt` | string | ISO timestamp. |
| ❌ `error` | string | Set if upstream errored. |

### ✨ Why choose this Actor

| 🇺🇸 | Full US Trade-A-Plane catalog in one sweep. |
| 🧹 | Clean numeric price and hours columns. |
| 🛟 | Clean `error` record on upstream issues. |
| 🏷️ | Filter by category, make, model, price band. |
| 🖼️ | Gallery URLs ready for downstream pipelines. |
| 💾 | Push to dataset, then download in tabular or structured formats. |

### 📈 How it compares to alternatives

| Approach | Setup time | Pagination | Numeric price |
|---|---|---|---|
| Manual copy-paste | Hours | Manual | Manual |
| Roll your own scraper | 4 hours plus | DIY | DIY |
| **This Actor** | 5 sec, no install | Automatic | Yes |

### 🚀 How to use

1. Click **Try for free**.
2. Pick a category, make, and model.
3. Optionally clamp the price band.
4. Click **Start**. The dataset is ready in seconds.

### 💼 Business use cases

**🛩️ Broker dashboards.** Monitor competitor inventory daily.

**📊 Pricing analytics.** Track average asking price by model and year.

**🏢 Parts sourcing.** Filter engine and parts listings by category.

**🤖 ML training.** Build aircraft-pricing models on real listing data.

### 🔌 Automating Trade-A-Plane Scraper

- **Make and Zapier**, push new listings to Slack or Airtable.
- **Cron schedule**, run nightly.
- **Webhooks**, get a POST when the run finishes.
- **Pipe to BigQuery, Snowflake, or Postgres**, native Apify integrations move datasets straight into your warehouse.

### 🌟 Beyond business use cases

**🎓 Education.** Use real aircraft pricing data in coursework.

**🧪 Personal research.** Hunt for your next plane without manual scrolling.

**🤝 Non-profit.** Track aviation market trends.

**🧰 Tinkering.** Prototype an aviation marketplace aggregator.

### 🤖 Ask an AI assistant about this scraper

Drop this README into ChatGPT, Claude, or any AI assistant and ask it to map your specific workflow to the actor's inputs.

### ❓ Frequently Asked Questions

**❓ Is this scraping or API?** HTML scraping of the public Trade-A-Plane search.

**❓ How fresh is the data?** As fresh as Trade-A-Plane serves it.

**❓ Are prices in USD?** Yes.

**❓ Can I filter by make and model?** Yes.

**❓ Does it follow detail pages?** Card-level fields only by default.

**❓ How are errors handled?** Upstream errors become a clean record with `error` populated.

**❓ Will the schema change?** Card-level fields are stable.

**❓ Can I schedule runs?** Yes.

**❓ What download formats are supported?** All formats Apify dataset export supports.

**❓ Is residential proxying used?** Yes, US residential proxies are used.

### 🔌 Integrate with any app

Apify ships native integrations with Make, Zapier, Slack, Discord, Google Drive, Google Sheets, Gmail, Airbyte, Keboola, Telegram, GitHub, and any REST API or webhook endpoint.

### 🔗 Recommended Actors

| Actor | What it does |
|---|---|
| [ParseForge Aircraft24 Scraper](https://apify.com/parseforge) | Pan-European aircraft listings. |
| [ParseForge YachtWorld Scraper](https://apify.com/parseforge) | Global yacht listings. |
| [ParseForge OurAirports Scraper](https://apify.com/parseforge/ourairports-scraper) | Global airport database. |
| [ParseForge Alpha Vantage Scraper](https://apify.com/parseforge) | Public market data, FX, crypto, indicators. |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for 900+ production-grade scrapers across business intelligence, real estate, e-commerce, sports, finance, and public records.

***

**Disclaimer:** This actor scrapes only publicly available data. ParseForge is not affiliated with, endorsed by, or sponsored by any of the third-party services referenced. Users are responsible for complying with the target site's terms of service and applicable law. [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp).

# Actor input Schema

## `category` (type: `string`):

Trade-A-Plane category to search.

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

Free users limited to 10 items (preview). Paid users up to 1,000,000.

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

Manufacturer name to filter by (e.g. Cessna, Piper, Beechcraft).

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

Model name to filter by (e.g. 172, Bonanza).

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

Lower bound on asking price.

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

Upper bound on asking price.

## Actor input object example

```json
{
  "category": "aircraft",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/trade-a-plane-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/trade-a-plane-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/trade-a-plane-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/trade-a-plane-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trade-A-Plane Listings Scraper",
        "description": "Browse Trade A Plane for aircraft and aviation listings by category, make, or model. Each listing returns the make, model, year, price, hours, location, seller type, category, listing id, and gallery images. Great for aviation market research, price tracking, and sourcing planes.",
        "version": "0.1",
        "x-build-id": "ziXRDFeBnF7cm2fgy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~trade-a-plane-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-trade-a-plane-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~trade-a-plane-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-trade-a-plane-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~trade-a-plane-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-trade-a-plane-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "category": {
                        "title": "Category",
                        "enum": [
                            "aircraft",
                            "piston-single-aircraft",
                            "piston-twin-aircraft",
                            "turboprop-aircraft",
                            "jet-aircraft",
                            "helicopters",
                            "experimental-aircraft",
                            "amphibious-aircraft",
                            "engines",
                            "parts",
                            "avionics"
                        ],
                        "type": "string",
                        "description": "Trade-A-Plane category to search.",
                        "default": "aircraft"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users limited to 10 items (preview). Paid users up to 1,000,000."
                    },
                    "make": {
                        "title": "Make",
                        "type": "string",
                        "description": "Manufacturer name to filter by (e.g. Cessna, Piper, Beechcraft)."
                    },
                    "model": {
                        "title": "Model",
                        "type": "string",
                        "description": "Model name to filter by (e.g. 172, Bonanza)."
                    },
                    "minPrice": {
                        "title": "Minimum price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Lower bound on asking price."
                    },
                    "maxPrice": {
                        "title": "Maximum price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Upper bound on asking price."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
