{
  "openapi": "3.0.1",
  "info": {
    "title": "ParuVendu Used Cars Scraper",
    "description": "Scrape used-car listings from ParuVendu.fr, a major French car classifieds marketplace. Search by make, model, price, year, mileage, fuel type, transmission, body type, seller type, and location.",
    "version": "0.1",
    "x-build-id": "dtXHHkEead4ckaPGh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~paruvendu-cars-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-paruvendu-cars-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/crawlerbros~paruvendu-cars-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-paruvendu-cars-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/crawlerbros~paruvendu-cars-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-paruvendu-cars-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",
        "required": [
          "make"
        ],
        "properties": {
          "make": {
            "title": "Make",
            "enum": [
              "Renault",
              "Peugeot",
              "Citroën",
              "Volkswagen",
              "BMW",
              "Mercedes",
              "Audi",
              "Ford",
              "Opel",
              "Toyota",
              "Nissan",
              "Fiat",
              "Dacia",
              "Seat",
              "Skoda",
              "Hyundai",
              "Kia",
              "Mini",
              "Volvo",
              "Mazda",
              "Honda",
              "Suzuki",
              "Mitsubishi",
              "Jeep",
              "Land-Rover",
              "Porsche",
              "Alfa Romeo",
              "Jaguar",
              "DS",
              "Smart",
              "Subaru",
              "Lexus",
              "Chevrolet",
              "Chrysler",
              "Dodge",
              "Cupra",
              "MG",
              "Tesla",
              "BYD",
              "Abarth",
              "Aiways",
              "Alpina",
              "Alpine",
              "Aston Martin",
              "Austin",
              "Auverland",
              "Bentley",
              "Buick",
              "Cadillac",
              "Caterham",
              "Corvette",
              "Daewoo",
              "Daihatsu",
              "Daimler",
              "Donkervoort",
              "Ferrari",
              "Fisker",
              "Foton",
              "GMC",
              "Hummer",
              "Infiniti",
              "Isuzu",
              "Jaecco",
              "Lada",
              "Lamborghini",
              "Lancia",
              "Leapmotor",
              "Lincoln",
              "Lotus",
              "Lynk & CO",
              "Maserati",
              "McLaren",
              "Mega",
              "Morgan",
              "PGO",
              "Plymouth",
              "Polestar",
              "Pontiac",
              "Rolls-Royce",
              "Rover",
              "Saab",
              "Santana",
              "Seres",
              "Ssangyong",
              "TVR",
              "Talbot",
              "Triumph",
              "Xpeng",
              "Autres"
            ],
            "type": "string",
            "description": "Car make/brand to search within. ParuVendu.fr requires a make (or another category anchor) per search page, so this drives the base search URL.",
            "default": "Renault"
          },
          "modelKeyword": {
            "title": "Model / keyword",
            "type": "string",
            "description": "Optional free-text model or keyword (e.g. `Clio`, `Golf`, `dCi`). Matches listing titles server-side within the selected make."
          },
          "priceMin": {
            "title": "Price min (EUR)",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Minimum listing price in euros."
          },
          "priceMax": {
            "title": "Price max (EUR)",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Maximum listing price in euros."
          },
          "yearMin": {
            "title": "Year min",
            "minimum": 1900,
            "maximum": 2026,
            "type": "integer",
            "description": "Earliest first-registration year."
          },
          "yearMax": {
            "title": "Year max",
            "minimum": 1900,
            "maximum": 2026,
            "type": "integer",
            "description": "Latest first-registration year."
          },
          "mileageMin": {
            "title": "Mileage min (km)",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Minimum odometer reading in kilometers."
          },
          "mileageMax": {
            "title": "Mileage max (km)",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Maximum odometer reading in kilometers."
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "",
              "ES",
              "DI",
              "GP",
              "BI",
              "EL",
              "HY",
              "HR",
              "MH",
              "HD"
            ],
            "type": "string",
            "description": "Filter to a single fuel type. ParuVendu.fr's own filter ANDs multiple fuel selections together (which no single car can satisfy), so this is single-select to avoid silently returning zero results.",
            "default": ""
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "",
              "MA",
              "AU",
              "SA"
            ],
            "type": "string",
            "description": "Filter by gearbox type.",
            "default": ""
          },
          "bodyType": {
            "title": "Body type",
            "enum": [
              "",
              "TO",
              "4X",
              "BR",
              "CA",
              "CO",
              "MO",
              "SO"
            ],
            "type": "string",
            "description": "Filter by vehicle body/category.",
            "default": ""
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "",
              "on",
              "off"
            ],
            "type": "string",
            "description": "Filter by dealer vs. private seller.",
            "default": ""
          },
          "location": {
            "title": "Location (city or postal code)",
            "type": "string",
            "description": "City name or postal code to search around, e.g. `Lyon` or `69000`. Combine with `radiusKm` to widen the search area."
          },
          "radiusKm": {
            "title": "Search radius (km)",
            "enum": [
              "",
              "5",
              "15",
              "30",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Radius around `location` to include. Only applies when `location` is set.",
            "default": ""
          },
          "fiscalPowerMin": {
            "title": "Fiscal power min (CV)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Minimum French fiscal horsepower (puissance fiscale)."
          },
          "fiscalPowerMax": {
            "title": "Fiscal power max (CV)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum French fiscal horsepower (puissance fiscale)."
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "",
              "priceAsc",
              "priceDesc",
              "mileageAsc",
              "mileageDesc",
              "withPhotoFirst"
            ],
            "type": "string",
            "description": "Result ordering, matching ParuVendu.fr's own \"Trier\" dropdown. Default is the site's own default (most recently listed first).",
            "default": ""
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records. Note: ParuVendu.fr caps each make/filter combination to ~125 listings (5 pages) regardless of total inventory; run again with a narrower filter to collect more.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}