# Fastline Scraper — Farm Equipment Listings & Dealer Monitor (`crawloop/fastline-scraper`) Actor

Scrape Fastline US farm equipment listings for dealers, appraisers, and data teams: asking prices, hours, horsepower, dealer phones, and images. Monitor new inventory and price changes; export JSON or CSV from Python, Node.js, or MCP.

- **URL**: https://apify.com/crawloop/fastline-scraper.md
- **Developed by:** [Andrej Kiva](https://apify.com/crawloop) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 1,000 scraped fastline listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## Fastline Scraper — Farm Equipment Listings & Dealer Monitor

> **Disclaimer:** Unofficial tool — not affiliated with, sponsored by, or endorsed by Fastline, Fastline Marketing Group, or their affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.

> **Contact-data controls:** Phone and email fields are omitted from the dataset by default. Enable `includePhones` / `includeEmails` only for values already published on public pages and only when you have a lawful basis. Any contact-field examples below assume that explicit opt-in; otherwise those fields are absent.

> **Crawloop Used Machinery Marketplace Suite** — Independent US Fastline classifieds for tractors, harvesting, hay, and construction. Pair with MachineryPete / EquipmentTrader for other US boards, TractorHouse for Sandhills farm stock, or Machineryline for European dealer contacts.

| Fastline | MachineryPete | EquipmentTrader | TractorHouse |
| :--- | :--- | :--- | :--- |
| Fastline Scraper ◄── you are here | [MachineryPete Scraper](https://apify.com/crawloop/machinerypete-scraper) | [EquipmentTrader Scraper](https://apify.com/crawloop/equipmenttrader-scraper) | [TractorHouse Scraper](https://apify.com/crawloop/tractorhouse-scraper) |

| Machineryline | Truck1 | MachineryTrader | Exapro | Troostwijk |
| :--- | :--- | :--- | :--- | :--- |
| [Machineryline Scraper](https://apify.com/crawloop/machineryline-scraper) | [Truck1 Scraper](https://apify.com/crawloop/truck1-scraper) | [MachineryTrader Scraper](https://apify.com/crawloop/machinerytrader-scraper) | [Exapro Scraper](https://apify.com/crawloop/exapro-scraper) | [Troostwijk Scraper](https://apify.com/crawloop/troostwijk-scraper) |

### What this Fastline scraper does

This **Fastline scraper** turns US farm and construction equipment classifieds into a structured Apify dataset: asking price, make, model, year, hours, horsepower, stock number, dealer name, location, and images. Use it as a Fastline API alternative for dealers, appraisers, lenders, and data teams who need tractor, combine, hay, and construction comps in **Python**, **Node.js**, or **MCP** — export JSON / CSV / Excel without manual browsing.

Run `listings` for fast catalog pulls (cards already include price, hours, HP, and dealer) or `details` for PDP street address, serial, and extra specs. Enable **`monitorMode`** on an Apify Schedule to track **new inventory** and **price changes** per dealer or category.

### When to use

- Dealer competitive intelligence — watch a rival dealer inventory URL daily
- Asking-price comps for tractors, combines, planters, tillage, hay/forage, skid steers, and construction equipment
- Fleet sourcing by manufacturer, model, hours, and US state
- Outreach lists with published dealer phones (opt-in) without visiting every PDP
- Join Fastline asking prices with [MachineryPete Scraper](https://apify.com/crawloop/machinerypete-scraper) or [EquipmentTrader Scraper](https://apify.com/crawloop/equipmenttrader-scraper) for other US boards
- Join Fastline asking prices with European heavy-equipment contacts from [Machineryline Scraper](https://apify.com/crawloop/machineryline-scraper)

#### When not to use

- You need Fastline Auctions hammer prices (`bid.fastline.com` lots) — those cards are skipped in this Actor
- You only need Sandhills TractorHouse / MachineryTrader inventory — use [TractorHouse Scraper](https://apify.com/crawloop/tractorhouse-scraper) or [MachineryTrader Scraper](https://apify.com/crawloop/machinerytrader-scraper)
- You need Fastline parts-search catalogs — not in this version

### Used machinery workflow

```
Independent US classifieds                 Sandhills / Europe / auctions
──────────────────────────                 ─────────────────────────────

  Fastline Scraper ◄── you are here
       │ classified cards, hours, HP, dealer monitor
       ▼
  MachineryPete / EquipmentTrader ─► other US farm & construction boards
  TractorHouse Scraper ────────────► Sandhills US + EU farm stock
  Machineryline Scraper ───────────► EU heavy equipment & dealer contacts
  Truck1 Scraper ──────────────────► commercial trucks
  Troostwijk / Surplex ────────────► industrial auction lots

  Join by make + model + year ──► comps, remarketing, residual checks
```

### Key features

- **US Fastline classifieds** — tractors, harvesting, hay, construction, and more
- **Search URL or filters** — paste a category / dealer / detail URL, or build one from manufacturer, category, keywords, and state
- **Two modes** — `listings` (fast SSR cards) and `details` (JSON-LD address, serial, extra specs)
- **Monitor mode** — seed fingerprints, then emit only `new` / `price_change` rows; optional Telegram alerts
- **Stable date sort** — built search URLs default to Date Listed (`sort=11`) so scheduled category watches do not reshuffle the first page
- **US residential proxy** — required on the Apify platform (datacenter IPs get Cloudflare 403)
- **Priced-only filter** — skip Contact-for-price rows
- **Auction lots skipped** — SERP mix-ins that point at Fastline Auctions are not emitted
- **Contact opt-in** — phones and emails off unless you enable them

### Input

| Field | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `startUrls` | Array | Tractors sample | Search, category, dealer inventory, or detail URLs |
| `searchQuery` | String | — | Keywords for a built search URL |
| `listingType` | String | `For Sale` | `For Sale`, `Auction`, or `All` |
| `manufacturer` | String | — | e.g. John Deere, Case IH, Kubota |
| `category` | String | — | e.g. Tractors, Combines, Hay/Forage |
| `state` | String | — | US state name (`Iowa`, `Texas`) |
| `sort` | String | `11` on built URLs | `11` Date Listed, `8` price low→high, `7` price high→low, `1` year newest |
| `minPrice` / `maxPrice` | Integer | — | Asking-price bounds |
| `minYear` / `maxYear` | Integer | — | Model-year bounds |
| `minHours` / `maxHours` | Integer | — | Meter-hour bounds |
| `runMode` | String | `listings` | `listings` or `details` |
| `pricedOnly` | Boolean | `false` | Keep only rows with a published price |
| `maxItems` | Integer | `100` | Emit budget (seed run: fingerprint budget) |
| `maxPagesPerUrl` | Integer | `10` | Pages per start URL (~30 classifieds/page) |
| `concurrencyLimit` | Integer | `5` | Parallel PDP fetches in details mode |
| `includePhones` / `includeEmails` | Boolean | `false` | Opt-in published dealer contact fields |
| `monitorMode` | Boolean | `false` | Delta tracking via named KV store |
| `monitorStoreName` | String | `fastline-monitor-state` | Distinct name per watch target |
| `resetMonitorState` | Boolean | `false` | Clear fingerprints and re-seed |
| `proxyConfiguration` | Object | US residential | Required on Apify; datacenter IPs are Cloudflare 403 |

Dealer watch (JSON example URLs are input data, not links):

```json
{
  "startUrls": [
    {
      "url": "https://www.fastline.com/dealers/ahw-llc-melvin-melvin-illinois/debfcdea-de62-4139-9828-54a0338119f0"
    }
  ],
  "runMode": "listings",
  "monitorMode": true,
  "monitorStoreName": "fl-dealer-ahw-melvin",
  "maxItems": 500,
  "maxPagesPerUrl": 20,
  "pricedOnly": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

Category + manufacturer example:

```json
{
  "manufacturer": "John Deere",
  "category": "Tractors",
  "state": "Iowa",
  "listingType": "For Sale",
  "runMode": "listings",
  "maxItems": 100,
  "pricedOnly": true,
  "sort": "11",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

With `monitorMode: true`, the first run seeds fingerprints and writes **no** dataset rows. Later scheduled runs emit only `changeType: "new"` or `"price_change"`. Use Date Listed sort (`11`) and set `maxItems` to cover the first page you care about so the seed window matches later ticks.

### Output

| Field | Description |
| :--- | :--- |
| `id` | Listing UUID from the detail URL |
| `externalId` | Numeric Fastline item id when published |
| `title` / `make` / `model` / `year` | Equipment identity |
| `price` / `currency` / `priceFormatted` | Asking price when published |
| `hours` / `horsepower` / `driveType` / `serialNumber` / `stockNumber` | Specs from the card or PDP |
| `dealerName` / `dealerPhone` / `dealerEmail` / `dealerUrl` | Dealer contact (phones/emails opt-in) |
| `location` / `city` / `state` | Machine location |
| `url` | Listing detail URL |
| `images` | Photo URLs |
| `specs` | Spec key/value map |
| `changeType` / `previousPrice` / `monitoredAt` | Monitor deltas only |

```json
{
  "id": "b467c65a-1894-45cb-bec6-68ec90744f1c",
  "title": "2022 Versatile 580DT",
  "make": "Versatile",
  "model": "580DT",
  "year": "2022",
  "price": 369900,
  "currency": "USD",
  "priceFormatted": "USD $369,900",
  "hours": "1073",
  "horsepower": "580",
  "dealerName": "AHW LLC",
  "location": "MELVIN, IL",
  "city": "MELVIN",
  "state": "IL",
  "url": "https://www.fastline.com/farm-equipment/listing-detail/2022-versatile-580dt-ahw-llc-melvin-melvin-illinois/b467c65a-1894-45cb-bec6-68ec90744f1c"
}
```

### Use cases

| Job | How |
| :--- | :--- |
| **Competitor dealer watch** | Paste a `/dealers/...` URL + `monitorMode` on an Apify Schedule |
| **John Deere / Case IH price scan** | Manufacturer + category filters, `pricedOnly`, export JSON or CSV |
| **Iowa tractor comps** | `category: Tractors` + `state: Iowa` |
| **Dealer outreach list** | `listings` mode with `includePhones` when you have a lawful basis |
| **Cross-board valuation** | Join Fastline asking prices with [Machineryline Scraper](https://apify.com/crawloop/machineryline-scraper) |
| **MCP / AI research** | Ask an assistant via Apify MCP to run filters and summarize prices |

### Integration examples

#### Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/fastline-scraper').call({
  manufacturer: 'John Deere',
  category: 'Tractors',
  runMode: 'listings',
  maxItems: 50,
  pricedOnly: true,
  proxyConfiguration: {
    useApifyProxy: true,
    apifyProxyGroups: ['RESIDENTIAL'],
    apifyProxyCountry: 'US',
  },
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 3));
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("crawloop/fastline-scraper").call(
    run_input={
        "manufacturer": "John Deere",
        "category": "Tractors",
        "state": "Iowa",
        "runMode": "listings",
        "maxItems": 80,
        "pricedOnly": True,
        "proxyConfiguration": {
            "useApifyProxy": True,
            "apifyProxyGroups": ["RESIDENTIAL"],
            "apifyProxyCountry": "US",
        },
    }
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("title"), item.get("price"), item.get("hours"), item.get("location"))
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/crawloop~fastline-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"manufacturer\":\"John Deere\",\"category\":\"Tractors\",\"maxItems\":25,\"pricedOnly\":true,\"proxyConfiguration\":{\"useApifyProxy\":true,\"apifyProxyGroups\":[\"RESIDENTIAL\"],\"apifyProxyCountry\":\"US\"}}"
```

### MCP and AI assistants

Use this Actor from AI tools via [Apify MCP](https://docs.apify.com/platform/integrations/mcp). Connect your Apify account, then call this Actor by its Store ID / name (`crawloop/fastline-scraper`).

Example prompts:

- "Run Fastline Scraper for John Deere tractors in Iowa, max 40, priced only, and return title, price, hours, horsepower as JSON"
- "Scrape Fastline dealer inventory from this /dealers/ URL and summarize new asking prices"
- "Chain Fastline Scraper then Machineryline Scraper for the same make and model and compare US asking prices vs EU dealer stock"

### Suite next step

After Fastline classifieds, pull other US boards with [MachineryPete Scraper](https://apify.com/crawloop/machinerypete-scraper) or [EquipmentTrader Scraper](https://apify.com/crawloop/equipmenttrader-scraper), Sandhills farm stock with [TractorHouse Scraper](https://apify.com/crawloop/tractorhouse-scraper), European heavy-equipment contacts with [Machineryline Scraper](https://apify.com/crawloop/machineryline-scraper), or commercial trucks with [Truck1 Scraper](https://apify.com/crawloop/truck1-scraper). For industrial auctions, use [Troostwijk Scraper](https://apify.com/crawloop/troostwijk-scraper) or [Surplex Scraper](https://apify.com/crawloop/surplex-scraper).

### FAQ

**Is this a Fastline API?**\
There is no official public bulk API for most users. This Actor is a structured scrape / API alternative that returns a dataset you can call from Python, Node.js, cURL, or MCP.

**How do I scrape Fastline farm equipment listings?**\
Paste a filtered search, category, or dealer URL into `startUrls`, set `maxItems`, and run. Or set `manufacturer` + `category` (e.g. John Deere tractors) and let the Actor build the search URL.

**Do I need details mode for dealer phones?**\
Usually no — classified cards already expose dealer name, location, hours, and HP. Use `details` when you need street address, serial number, or the full spec table. Phones stay off unless `includePhones` is true.

**How do I watch one dealer?**\
Paste the dealer inventory URL (`/dealers/{slug}/{uuid}`), enable `monitorMode`, pick a unique `monitorStoreName`, and schedule the Actor. Keep `maxItems` large enough to cover that dealer’s first pages.

**Why did a category monitor emit every listing as new?**\
Unsorted Fastline search reshuffles page one. Built URLs now default to Date Listed (`sort=11`). Seed with the same `maxItems` window you will poll later.

**Why are auction lots missing?**\
Fastline mixes Fastline Auctions cards into classified search. Those point at a separate host and are skipped in this Actor.

**Does this cover parts search?**\
Not in this version. Equipment classifieds and dealer inventory only.

### Related Actors

| Actor | Focus |
| :--- | :--- |
| Fastline Scraper ◄── you are here | US Fastline farm & construction classifieds |
| [MachineryPete Scraper](https://apify.com/crawloop/machinerypete-scraper) | US MachineryPete ZIP/FSBO farm classifieds |
| [EquipmentTrader Scraper](https://apify.com/crawloop/equipmenttrader-scraper) | US EquipmentTrader construction & farm |
| [TractorHouse Scraper](https://apify.com/crawloop/tractorhouse-scraper) | Sandhills US + EU farm equipment |
| [MachineryTrader Scraper](https://apify.com/crawloop/machinerytrader-scraper) | Sandhills US heavy equipment |
| [Machineryline Scraper](https://apify.com/crawloop/machineryline-scraper) | EU heavy equipment & dealer contacts |
| [Truck1 Scraper](https://apify.com/crawloop/truck1-scraper) | commercial trucks |
| [Troostwijk Scraper](https://apify.com/crawloop/troostwijk-scraper) | multi-country industrial auctions |
| [Surplex Scraper](https://apify.com/crawloop/surplex-scraper) | plant closures & Surplex lots |

# Actor input Schema

## `includePhones` (type: `boolean`):

Off by default. Include phone fields already published on public pages only when you have a lawful basis.

## `includeEmails` (type: `boolean`):

Off by default. Include dealer emails already published on public pages only when you have a lawful basis.

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

Fastline search, category, dealer inventory, or listing detail URLs. Auction lots on bid.fastline.com are skipped.

## `searchQuery` (type: `string`):

Optional keyword search (e.g. john deere 8r, round baler).

## `listingType` (type: `string`):

For Sale classifieds, Auction-only SERP filter, or All. Auction lots that point at bid.fastline.com are still skipped in v1.

## `manufacturer` (type: `string`):

Brand when building a search URL (e.g. John Deere, Case IH, Kubota, New Holland).

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

Fastline category name (e.g. Tractors, Combines, Hay/Forage, Skid Steers, Construction Equipment).

## `state` (type: `string`):

State name when building a search URL (e.g. Iowa, Texas, Illinois).

## `sort` (type: `string`):

Optional Fastline sort key. Default for built URLs is 11 (Date Listed newer). 8 = Price low→high, 7 = Price high→low, 1 = Year newest.

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

Drop listings below this asking price (server-side minprice).

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

Drop listings above this asking price (server-side maxprice).

## `minYear` (type: `integer`):

Minimum model year (server-side minyear).

## `maxYear` (type: `integer`):

Maximum model year (server-side maxyear).

## `minHours` (type: `integer`):

Minimum meter hours (server-side ip1min).

## `maxHours` (type: `integer`):

Maximum meter hours (server-side ip1max).

## `baseUrl` (type: `string`):

Site origin for built search URLs.

## `runMode` (type: `string`):

listings = fast card fields (price, make/model, hours, HP, dealer). details = also visit each PDP for JSON-LD address, serial, and extra specs.

## `pricedOnly` (type: `boolean`):

Skip Contact-for-price rows.

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

Maximum dataset rows to emit (in monitor seed runs: max listings to fingerprint).

## `maxPagesPerUrl` (type: `integer`):

Maximum pagination pages per search / dealer URL (~30 classified cards per page).

## `proxyConfiguration` (type: `object`):

Apify datacenter IPs get Cloudflare 403. Prefill is US residential.

## `concurrencyLimit` (type: `integer`):

Parallel PDP fetches in details mode.

## `monitorMode` (type: `boolean`):

Delta tracking for category, search, or dealer inventory URLs. First run seeds a named Key-Value store (no dataset rows / alerts). Later runs output only new listings and price changes. Pair with an Apify Schedule.

## `monitorStoreName` (type: `string`):

Named Key-Value store for fingerprints across scheduled runs. Use a distinct name per watch target (dealer or category).

## `telegramToken` (type: `string`):

Bot token for real-time alerts on new listings and price changes (monitorMode only).

## `telegramChatId` (type: `string`):

Telegram user or group chat ID that receives monitor alerts.

## `resetMonitorState` (type: `boolean`):

Clear stored listing fingerprints before this run (forces a fresh seed run).

## Actor input object example

```json
{
  "includePhones": false,
  "includeEmails": false,
  "startUrls": [
    {
      "url": "https://www.fastline.com/farm-equipment-for-sale/listings/tractors/results?category=Tractors"
    }
  ],
  "searchQuery": "john deere 8r",
  "listingType": "For Sale",
  "manufacturer": "John Deere",
  "category": "Tractors",
  "state": "Iowa",
  "sort": "11",
  "baseUrl": "https://www.fastline.com",
  "runMode": "listings",
  "pricedOnly": false,
  "maxItems": 100,
  "maxPagesPerUrl": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "concurrencyLimit": 5,
  "monitorMode": false,
  "monitorStoreName": "fastline-monitor-state",
  "resetMonitorState": false
}
```

# Actor output Schema

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

Default dataset items: Fastline equipment listings with prices, hours, horsepower, and dealer fields.

# 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.fastline.com/farm-equipment-for-sale/listings/tractors/results?category=Tractors"
        }
    ],
    "baseUrl": "https://www.fastline.com",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    },
    "monitorStoreName": "fastline-monitor-state"
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawloop/fastline-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.fastline.com/farm-equipment-for-sale/listings/tractors/results?category=Tractors" }],
    "baseUrl": "https://www.fastline.com",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
    "monitorStoreName": "fastline-monitor-state",
}

# Run the Actor and wait for it to finish
run = client.actor("crawloop/fastline-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.fastline.com/farm-equipment-for-sale/listings/tractors/results?category=Tractors"
    }
  ],
  "baseUrl": "https://www.fastline.com",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "monitorStoreName": "fastline-monitor-state"
}' |
apify call crawloop/fastline-scraper --silent --output-dataset

```

## MCP server setup

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