{
  "openapi": "3.0.1",
  "info": {
    "title": "resale.info Scraper — Used Industrial Machinery Listings",
    "description": "Scrape resale.info, Europe's used machinery marketplace (137,000+ machines): by category, manufacturer or dealer. Manufacturer, model, year, price, location, description and technical data, photos and the selling dealer. Price, year, country and dealer filters. No login.",
    "version": "0.1",
    "x-build-id": "TGw8NIVftA45Qv9Sj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~resale-info-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-resale-info-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/yugenox~resale-info-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-resale-info-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/yugenox~resale-info-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-resale-info-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": {
          "categories": {
            "title": "🏭 Categories",
            "type": "array",
            "description": "Machine categories as resale.info names them, e.g. \"CNC turning machines\", \"lathes\", \"milling machines\", \"injection moulding machines\", \"forklift trucks\", or a category number such as \"rs-102\" or \"102-90\". A main category (e.g. \"metal working machines\") is searched through all its sub-categories. Each category is searched separately.",
            "items": {
              "type": "string"
            }
          },
          "manufacturers": {
            "title": "🏷️ Manufacturers",
            "type": "array",
            "description": "Machine manufacturers, e.g. \"DMG Mori\", \"Trumpf\", \"Mazak\", \"Engel\". On their own, all of a manufacturer's listings are scraped. Together with Categories, only that manufacturer's machines in those categories are kept.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 resale.info links",
            "type": "array",
            "description": "Optional: resale.info category pages (…/rs-102/), manufacturer pages (…/trumpf/used-trumpf/), dealer profiles (…/used-machinery-dealer-1086/…) or single listings (…/No-169875752). Use the English pages of www.resale.info.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of listings for the whole run, shared fairly between your categories and manufacturers. 0 = everything.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Also open every listing page for the full description and technical data, the exact location (postal code and town), quantity, stock status, all photos and the selling dealer. One extra page per listing, charged per listing. Off = only what the result pages show (machine, year, price, country, short description, photos).",
            "default": true
          },
          "priceMin": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at least this price, in the listing's own currency (most are EUR; Swiss dealers use CHF). Listings without a price are left out when a price filter is set."
          },
          "priceMax": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings up to this price, in the listing's own currency."
          },
          "yearMin": {
            "title": "Built from (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only machines built in or after this year."
          },
          "yearMax": {
            "title": "Built until (year)",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Only machines built in or before this year."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Only machines located in these countries, e.g. \"Germany\", \"Italy\", \"PL\".",
            "items": {
              "type": "string"
            }
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "used",
              "new"
            ],
            "type": "string",
            "description": "Used, new, or both.",
            "default": "any"
          },
          "withPriceOnly": {
            "title": "Only listings with a price",
            "type": "boolean",
            "description": "Leave out \"request quote\" listings.",
            "default": false
          },
          "verifiedDealersOnly": {
            "title": "Only approved dealers",
            "type": "boolean",
            "description": "Only listings from resale.info's approved (verified) dealers.",
            "default": false
          },
          "excludeAuctions": {
            "title": "Leave out auction lots",
            "type": "boolean",
            "description": "Leave out machines that are sold in an auction (their price is a start or current bid).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Listed within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings from the last N days. Results are newest first, so the search stops at the first older listing."
          },
          "maxPagesPerSearch": {
            "title": "Max result pages per search",
            "minimum": 1,
            "type": "integer",
            "description": "Stop each category or manufacturer after this many result pages (30–50 listings each). Empty = no limit, or 50 pages when filters are set (so a filter that matches little can't scan a whole category)."
          },
          "maxConcurrency": {
            "title": "Parallel listing pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many listing pages are read at the same time.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (datacenter) is the default and comes with every Apify plan. If resale.info refuses datacenter IPs for a while, the run switches to residential proxies when your account has them.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}