{
  "openapi": "3.0.1",
  "info": {
    "title": "Row52 Scraper — Junkyard Inventory, VINs & Yard Rows",
    "description": "Scrape Row52 junkyard inventory. Extract VIN, year, make, model, yard, row, and the date a donor car was added. Monitor mode returns only new arrivals and row moves.",
    "version": "0.1",
    "x-build-id": "Zhdn7hkROs2dtfXcq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~row52-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-row52-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/crawloop~row52-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-row52-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/crawloop~row52-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-row52-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": {
          "searchMode": {
            "title": "Search mode",
            "enum": [
              "vehicles",
              "yards"
            ],
            "type": "string",
            "description": "Vehicles searches donor-car inventory. Yards returns the public yard directory. A VIN input or a vehicle URL overrides this and reads that car.",
            "default": "vehicles"
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Vehicle make, for example Acura. Matched against the live catalog. Leave empty to take the newest arrivals."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Vehicle model, for example MDX. Matched against the catalog for the selected make. Leave empty to include every model of that make."
          },
          "year": {
            "title": "Year",
            "type": "string",
            "description": "Model year or a site-style range, for example 2012 or 2010-2015. Leave empty for every year."
          },
          "makeId": {
            "title": "Make ID",
            "minimum": 0,
            "type": "integer",
            "description": "Catalog make id. Skips the name lookup when set."
          },
          "modelId": {
            "title": "Model ID",
            "minimum": 0,
            "type": "integer",
            "description": "Catalog model id. Skips the name lookup when set."
          },
          "vin": {
            "title": "VIN",
            "type": "string",
            "description": "Full or partial VIN. Reads that vehicle page directly and ignores make, model, and year."
          },
          "zipCode": {
            "title": "ZIP or postal code",
            "type": "string",
            "description": "Optional US ZIP or Canadian postal code. Use with distance to limit the search."
          },
          "distance": {
            "title": "Radius (miles)",
            "minimum": 0,
            "maximum": 3000,
            "type": "integer",
            "description": "Miles around the ZIP code. 0 does not apply a radius.",
            "default": 0
          },
          "locationId": {
            "title": "Yard ID",
            "minimum": 0,
            "type": "integer",
            "description": "Limit the search to one yard. 0 searches every yard. Example: 66.",
            "default": 0
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "dateadded",
              "year",
              "make",
              "model",
              "yard"
            ],
            "type": "string",
            "description": "Sort the vehicle list. Date added is the right order for a monitor.",
            "default": "dateadded"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Descending puts the newest arrivals first.",
            "default": "desc"
          },
          "hasImage": {
            "title": "Photos only",
            "type": "boolean",
            "description": "Keep vehicles that have a photo.",
            "default": false
          },
          "includeDetails": {
            "title": "Include vehicle details",
            "type": "boolean",
            "description": "Open each saved vehicle for engine, transmission, trim, color, and barcode. In monitor mode this runs only for rows that will be saved, not for every car on the page.",
            "default": false
          },
          "includePhones": {
            "title": "Include phone numbers",
            "type": "boolean",
            "description": "Off by default. Add the yard phone already published on the public yard record only when you have a lawful basis.",
            "default": false
          },
          "includeEmails": {
            "title": "Include email addresses",
            "type": "boolean",
            "description": "Off by default. Add a yard email already published on the public yard record only when you have a lawful basis.",
            "default": false
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Vehicle search URLs, a single vehicle URL, or the yard directory. When this list has rows, make and model are ignored.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum vehicles or yards to save. 0 saves every row inside maxPages. In monitor mode this caps charged rows, not how many cars are compared.",
            "default": 30
          },
          "maxPages": {
            "title": "Max pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Search pages to read. One page is about 30 vehicles. Raise this when a scheduled watch can add more cars than fit on the first page.",
            "default": 1
          },
          "concurrency": {
            "title": "Detail concurrency",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Parallel vehicle-detail requests when Include vehicle details is on.",
            "default": 4
          },
          "monitorMode": {
            "title": "Monitor mode",
            "type": "boolean",
            "description": "When scheduled, save and charge only new VINs and row moves since the last run. The first run builds a baseline and still returns rows. Sort by date added.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor state store",
            "type": "string",
            "description": "Named key-value store that remembers VINs between runs. Use one name per watch.",
            "default": "row52-monitor"
          },
          "resetMonitorState": {
            "title": "Reset monitor state",
            "type": "boolean",
            "description": "Clear the saved VINs before this run. The run becomes a new baseline.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Direct requests are the default. Turn on Apify Proxy only if a run is blocked.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}