{
  "openapi": "3.0.1",
  "info": {
    "title": "MachineryTrader Scraper — US Heavy Equipment Listings",
    "description": "Scrape heavy equipment listings from MachineryTrader.com, a top US marketplace for construction, agriculture, and forestry machinery. Extract price, make, model, year, hours, dealer info, specs, and photos. Ideal for equipment valuation, market intelligence, and dealer analysis.",
    "version": "2.14",
    "x-build-id": "2MUNVtnhWETt5Uitb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rastriq~machinerytrader-discovery/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rastriq-machinerytrader-discovery",
        "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/rastriq~machinerytrader-discovery/runs": {
      "post": {
        "operationId": "runs-sync-rastriq-machinerytrader-discovery",
        "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/rastriq~machinerytrader-discovery/run-sync": {
      "post": {
        "operationId": "run-sync-rastriq-machinerytrader-discovery",
        "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": {
          "data_freshness": {
            "title": "📡 Data source",
            "enum": [
              "preloaded",
              "live"
            ],
            "type": "string",
            "description": "<strong>Preloaded</strong>: instant access to our pre-scraped monthly snapshot. Data arrives in seconds.<br><strong>Live</strong>: fresh scrape of MachineryTrader in real time.",
            "default": "preloaded"
          },
          "country": {
            "title": "Market",
            "enum": [
              "us",
              "europe",
              "es",
              "it",
              "de",
              "fr"
            ],
            "type": "string",
            "description": "Selects which MachineryTrader domain to scrape. US uses machinerytrader.com, Europe covers the shared EU catalog (IT/ES/DE/FR — same inventory, different languages)."
          },
          "countryFilter": {
            "title": "Country filter",
            "enum": [
              "",
              "US",
              "CA",
              "GB",
              "DE",
              "FR",
              "IT",
              "ES",
              "MX",
              "NL",
              "BE",
              "CH",
              "AU",
              "IE"
            ],
            "type": "string",
            "description": "Filter listings by country within machinerytrader.com. Only applies when Market is US (.com). Other domains (.es, .it, .de, .fr) are already country-scoped. Leave empty for all countries on .com (includes USA, Canada, Mexico, etc.).",
            "default": ""
          },
          "scrape_all": {
            "title": "All categories",
            "type": "boolean",
            "description": "Scrape every equipment category. When off, pick individual categories below.",
            "default": false
          },
          "cat__excavators": {
            "title": "Excavators",
            "type": "boolean",
            "description": "All excavator types.",
            "default": false
          },
          "cat__mini_excavators": {
            "title": "Mini Excavators",
            "type": "boolean",
            "description": "Compact/mini excavators.",
            "default": false
          },
          "cat__crawler_excavators": {
            "title": "Crawler Excavators",
            "type": "boolean",
            "description": "Crawler excavators.",
            "default": false
          },
          "cat__wheel_loaders": {
            "title": "Wheel Loaders",
            "type": "boolean",
            "description": "Wheel loaders.",
            "default": false
          },
          "cat__skid_steers": {
            "title": "Skid Steers",
            "type": "boolean",
            "description": "Skid steer loaders.",
            "default": false
          },
          "cat__track_skid_steers": {
            "title": "Track Skid Steers",
            "type": "boolean",
            "description": "Compact track loaders.",
            "default": false
          },
          "cat__dozers": {
            "title": "Dozers",
            "type": "boolean",
            "description": "Bulldozers.",
            "default": false
          },
          "cat__cranes": {
            "title": "Cranes",
            "type": "boolean",
            "description": "All crane types.",
            "default": false
          },
          "cat__loader_backhoes": {
            "title": "Loader Backhoes",
            "type": "boolean",
            "description": "Loader backhoes.",
            "default": false
          },
          "cat__telehandlers_lifts": {
            "title": "Telehandlers",
            "type": "boolean",
            "description": "Telehandlers.",
            "default": false
          },
          "cat__forklifts_lifts": {
            "title": "Forklifts",
            "type": "boolean",
            "description": "Forklifts.",
            "default": false
          },
          "cat__lifts": {
            "title": "Lifts",
            "type": "boolean",
            "description": "Boom and scissor lifts.",
            "default": false
          },
          "cat__off_highway_trucks": {
            "title": "Off-Highway Trucks",
            "type": "boolean",
            "description": "Off-highway trucks.",
            "default": false
          },
          "cat__dump_trucks": {
            "title": "Dump Trucks",
            "type": "boolean",
            "description": "Dump trucks. On machinerytrader.es this returns the catalog without filtering by category.",
            "default": false
          },
          "cat__trucks": {
            "title": "Trucks",
            "type": "boolean",
            "description": "General trucks category. On machinerytrader.es this returns the catalog without filtering by category.",
            "default": false
          },
          "cat__motor_graders": {
            "title": "Motor Graders",
            "type": "boolean",
            "description": "Motor graders.",
            "default": false
          },
          "cat__crawler_loaders": {
            "title": "Crawler Loaders",
            "type": "boolean",
            "description": "Crawler loaders.",
            "default": false
          },
          "cat__scrapers": {
            "title": "Scrapers",
            "type": "boolean",
            "description": "Scrapers.",
            "default": false
          },
          "cat__pipelayers": {
            "title": "Pipelayers",
            "type": "boolean",
            "description": "Pipelayers.",
            "default": false
          },
          "cat__forestry_equipment": {
            "title": "Forestry Equipment",
            "type": "boolean",
            "description": "Forestry equipment.",
            "default": false
          },
          "cat__skidders": {
            "title": "Skidders",
            "type": "boolean",
            "description": "Forestry skidders.",
            "default": false
          },
          "cat__log_loaders": {
            "title": "Log Loaders",
            "type": "boolean",
            "description": "Log loaders.",
            "default": false
          },
          "cat__aggregate_equipment": {
            "title": "Aggregate Equipment",
            "type": "boolean",
            "description": "Aggregate equipment.",
            "default": false
          },
          "cat__crusher_aggregate": {
            "title": "Crushers",
            "type": "boolean",
            "description": "Crushers and aggregate equipment.",
            "default": false
          },
          "cat__drills": {
            "title": "Drills",
            "type": "boolean",
            "description": "Drills.",
            "default": false
          },
          "cat__trenchers_slash_cable_plows": {
            "title": "Trenchers / Cable Plows",
            "type": "boolean",
            "description": "Trenchers and cable plows.",
            "default": false
          },
          "cat__sweepers_slash_broom_equipment": {
            "title": "Sweepers",
            "type": "boolean",
            "description": "Sweepers and broom equipment.",
            "default": false
          },
          "cat__asphalt_slash_pavers_slash_concrete_equipment": {
            "title": "Asphalt / Pavers / Concrete",
            "type": "boolean",
            "description": "Asphalt, pavers, and concrete equipment.",
            "default": false
          },
          "cat__generators": {
            "title": "Generators",
            "type": "boolean",
            "description": "Generators and power systems.",
            "default": false
          },
          "cat__air_compressors": {
            "title": "Air Compressors",
            "type": "boolean",
            "description": "Air compressors.",
            "default": false
          },
          "cat__pumps": {
            "title": "Pumps",
            "type": "boolean",
            "description": "Pumps.",
            "default": false
          },
          "cat__compactors": {
            "title": "🔨 Compactors",
            "type": "boolean",
            "description": "Compactors & Rollers",
            "default": false
          },
          "cat__crushers": {
            "title": "🪨 Crushers",
            "type": "boolean",
            "description": "Crushers & Screening Equipment",
            "default": false
          },
          "cat__augers": {
            "title": "🔩 Augers",
            "type": "boolean",
            "description": "Auger attachments",
            "default": false
          },
          "cat__snow_blowers": {
            "title": "❄️ Snow Blowers",
            "type": "boolean",
            "description": "Snow removal equipment",
            "default": false
          },
          "cat__welding_equipment": {
            "title": "⚡ Welding Equipment",
            "type": "boolean",
            "description": "Welding machines & accessories. On machinerytrader.es category ID 1063 is actually \"Zanjadora (accesorio)\" (trencher attachment), not welding equipment.",
            "default": false
          },
          "cat__stump_grinders": {
            "title": "🪵 Stump Grinders",
            "type": "boolean",
            "description": "Stump grinding equipment",
            "default": false
          },
          "cat__asphalt_pavers": {
            "title": "🛣️ Asphalt Pavers",
            "type": "boolean",
            "description": "Asphalt paving machines",
            "default": false
          },
          "cat__construction_attachments": {
            "title": "Attachments",
            "type": "boolean",
            "description": "Construction attachments. On machinerytrader.es this returns the catalog without filtering by category.",
            "default": false
          },
          "cat__dismantled_machines": {
            "title": "Dismantled Machines",
            "type": "boolean",
            "description": "Dismantled machines (parts).",
            "default": false
          },
          "manufacturer": {
            "title": "Manufacturer / Brand",
            "type": "string",
            "description": "Filter by manufacturer (e.g. CATERPILLAR, JOHN DEERE, KOMATSU). Leave empty for all brands."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Filter by model (e.g. 320, D6, WA380). Requires a manufacturer to be set. Leave empty for all models."
          },
          "yearMin": {
            "title": "Year from",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include listings from this year onwards. Leave empty for no lower bound. Works in both Preloaded and Live modes."
          },
          "yearMax": {
            "title": "Year to",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include listings up to this year. Leave empty for no upper bound. Works in both Preloaded and Live modes."
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Maximum number of listings to download across all categories. Set 0 for unlimited.",
            "default": 100
          },
          "maxItems": {
            "title": "Max items (preloaded)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of items to return in Preloaded mode. Takes priority over 'Max listings' when set. 0 means unlimited (full snapshot)."
          },
          "pricedOnly": {
            "title": "Only listings with price",
            "type": "boolean",
            "description": "Skip listings marked as 'Call for price'. Typically reduces volume by ~25%.",
            "default": false
          },
          "maxPagesPerCategory": {
            "title": "Max pages per category",
            "minimum": 1,
            "maximum": 999,
            "type": "integer",
            "description": "Each page contains ~28 listings. Higher values give more coverage per category.",
            "default": 999
          },
          "pagesPerSession": {
            "title": "Pages per browser session",
            "type": "integer",
            "description": "How many pages to scrape before rotating browser session. Higher = fewer warmups = less blocking. 999 = don't rotate unless blocked.",
            "default": 999
          },
          "maxBurnedSessions": {
            "title": "Max burned sessions per category",
            "type": "integer",
            "description": "Stop trying a category after this many consecutive session failures.",
            "default": 3
          },
          "outputSchema": {
            "title": "Output schema",
            "enum": [
              "english",
              "ftp28"
            ],
            "type": "string",
            "description": "Select 'ftp28' to output canonical Spanish field names required for FTP-28 pipeline integration.",
            "default": "ftp28"
          },
          "_admin_snapshot": {
            "title": "Admin snapshot",
            "type": "boolean",
            "description": "Internal: trigger full snapshot to Named Dataset.",
            "default": false
          },
          "_proxy_debug": {
            "title": "Proxy debug",
            "type": "boolean",
            "description": "Admin only: guarda muestras HTML crudas en el KV del run.",
            "default": false
          },
          "fetchDetails": {
            "title": "Fetch detail pages for images",
            "type": "boolean",
            "description": "When true, listings without an image in the listing page DOM will have their detail page visited via Playwright to extract the primary sandhills.com image URL. Increases fill rate on imagenes from ~16% to ~95%+ but adds one Playwright page visit per listing without image. Only enable for live mode runs.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}