{
  "openapi": "3.0.1",
  "info": {
    "title": "Booking.com Car Rental Scraper",
    "description": "[💰 $5 / 1K] Extract car rental offers from Booking.com — prices, suppliers, vehicle specs, pickup and drop-off depots, fees, and insurance. Search any airport or city with your own dates, times, and driver age. Filter by car type and transmission, in 19 currencies.",
    "version": "1.0",
    "x-build-id": "hYzoB65nZvJS2QSRD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~booking-com-car-rental-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-booking-com-car-rental-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/solidcode~booking-com-car-rental-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-booking-com-car-rental-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/solidcode~booking-com-car-rental-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-booking-com-car-rental-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": {
          "pickupLocations": {
            "title": "Pickup Locations",
            "type": "array",
            "description": "Airports, cities, or addresses where you want to collect the car (e.g. 'Los Angeles International Airport', 'Barcelona', 'Rome Fiumicino'). Add several to compare prices across locations in a single run — each one is searched with the same dates and driver age.",
            "items": {
              "type": "string"
            }
          },
          "dropoffLocation": {
            "title": "Drop-off Location",
            "type": "string",
            "description": "Where the car will be returned. Leave empty to return it to the pickup location (the usual case). If you set it, the same drop-off point is used for every pickup location above — so use a single pickup location when you want a specific one-way route."
          },
          "startUrls": {
            "title": "Booking.com Car Search URLs",
            "type": "array",
            "description": "Paste Booking.com car rental search URLs to scrape them exactly as they are — the dates, times, and filters already in each URL are used. When provided, this overrides the pickup locations and date settings.",
            "items": {
              "type": "string"
            }
          },
          "pickupDate": {
            "title": "Pickup Date",
            "type": "string",
            "description": "The day you collect the car. Accepts a calendar date (YYYY-MM-DD) OR a relative expression — `today`, `tomorrow`, `+7 days`, `+2 weeks`, `+1 month`, `next week`. Relative dates make this actor easy to run on a schedule for price monitoring. Leave empty to search one week from today."
          },
          "pickupTime": {
            "title": "Pickup Time",
            "type": "string",
            "description": "Time of day you collect the car, in 24-hour format (e.g. 10:00 or 16:30). Booking.com works in 30-minute steps, so times are rounded to the nearest half hour."
          },
          "dropoffDate": {
            "title": "Drop-off Date",
            "type": "string",
            "description": "The day you return the car. Accepts a calendar date (YYYY-MM-DD) OR a relative expression such as `+10 days` or `next month`. Must be after the pickup date. Leave empty to search a three-day rental."
          },
          "dropoffTime": {
            "title": "Drop-off Time",
            "type": "string",
            "description": "Time of day you return the car, in 24-hour format (e.g. 10:00 or 22:30). Rounded to the nearest half hour."
          },
          "driverAge": {
            "title": "Driver Age",
            "minimum": 18,
            "maximum": 99,
            "type": "integer",
            "description": "Age of the main driver. Booking.com quotes standard rates for drivers aged 30-65 and adds young-driver or senior-driver surcharges outside that range, so this can change every price you see (a 22-year-old can pay roughly three times a 70-year-old for the same car). At the extremes — under 19 or over 90 — many suppliers decline to quote at all and the search can come back empty."
          },
          "carTypes": {
            "title": "Car Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return these categories of vehicle. Multi-select — picking several widens the results rather than narrowing them. Leave empty to include every car type. 'Electric' filters on the fuel, so it combines with the size categories.",
            "items": {
              "type": "string",
              "enum": [
                "small",
                "medium",
                "large",
                "premium",
                "suv",
                "estate",
                "people_carrier",
                "electric"
              ],
              "enumTitles": [
                "Small",
                "Medium",
                "Large",
                "Premium",
                "SUV",
                "Estate / Wagon",
                "People Carrier",
                "Electric"
              ]
            }
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "automatic",
              "manual"
            ],
            "type": "string",
            "description": "Only return cars with this gearbox. Leave empty for both automatic and manual."
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "recommended",
              "price_low",
              "rating_high"
            ],
            "type": "string",
            "description": "How Booking.com should rank the offers. This matters whenever you set a result limit: Booking.com returns at most 500 offers per search, and the sort order decides which 500 you get. Sort by price to keep the cheapest cars, or by supplier rating to keep the best-reviewed ones."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "JPY",
              "CNY",
              "CHF",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "AED",
              "MXN",
              "BRL",
              "INR",
              "SGD",
              "ZAR",
              "TRY"
            ],
            "type": "string",
            "description": "Currency used for all prices, fees, and extras."
          },
          "language": {
            "title": "Language",
            "enum": [
              "en-gb",
              "en-us",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pt",
              "pl",
              "ru",
              "ja",
              "ko",
              "zh",
              "ar"
            ],
            "type": "string",
            "description": "Language for car names, supplier text, terms, and extras."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum car offers to return per pickup location. Set to 0 to keep every offer Booking.com returns. Important: Booking.com itself returns at most 500 offers for one search, no matter how many cars actually match — a busy airport can match 600+ and still send only 500. The Sort Order setting decides which 500 you get, so choose 'Price (lowest first)' if you want the cheapest ones. To go beyond 500 in one market, run several searches with different car types or date ranges."
          },
          "includeSupplierDetails": {
            "title": "Include Insurance & Bookable Extras",
            "type": "boolean",
            "description": "Open the full offer page for every car to add the priced list of bookable extras (child seats, additional driver, GPS, WiFi), the protection and insurance products with their policy documents, and Booking.com's own offer reference. Supplier profile, review scores, fees, tags and pickup alerts are always included and do not need this option. Adds one extra lookup per car, so runs take longer."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}