{
  "openapi": "3.0.1",
  "info": {
    "title": "Bilbasen Cars Scraper: Brugte biler",
    "description": "Extract used-car listings from Bilbasen.dk, Denmark's largest car marketplace, with price, mileage, model year, fuel type, and transmission filtered server-side. JSON or CSV rows ready for Sheets, Make, and Zapier.",
    "version": "0.2",
    "x-build-id": "wBcGQFwDQ62yZ9kmk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~bilbasen-cars-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-bilbasen-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/getascraper~bilbasen-cars-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-bilbasen-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/getascraper~bilbasen-cars-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-bilbasen-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",
        "properties": {
          "startUrls": {
            "title": "Custom Start URLs (optional)",
            "type": "array",
            "description": "Paste one or more Bilbasen.dk car search or listing links directly, built however you like on the site itself, such as a specific make or model. When set, this replaces the filters below. Leave empty to use the filters below to build the search for you.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Restrict to a single car make, for example Audi, Skoda, or Mercedes-Benz. Bilbasen keeps make and model in the page URL rather than a tick-box, so neither top competitor lets you type them as plain filter fields; this does. Matched against each listing, so an unknown make simply returns nothing rather than the wrong cars. Ignored when Start URLs is set."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Restrict to a single model within the chosen make, for example A4, Scala, or Corolla. Only used when Make is also set."
          },
          "priceFromDkk": {
            "title": "Price From (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum asking price in Danish kroner."
          },
          "priceToDkk": {
            "title": "Price To (DKK)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum asking price in Danish kroner."
          },
          "yearFrom": {
            "title": "Model Year From",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Earliest model year."
          },
          "yearTo": {
            "title": "Model Year To",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Latest model year."
          },
          "mileageFromKm": {
            "title": "Mileage From (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum odometer reading in kilometers."
          },
          "mileageToKm": {
            "title": "Mileage To (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum odometer reading in kilometers."
          },
          "fuelTypes": {
            "title": "Fuel Type",
            "type": "array",
            "description": "Restrict to one or more fuel types.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "electric",
                "hybrid-petrol",
                "hybrid-diesel",
                "plugin-petrol",
                "plugin-diesel"
              ],
              "enumTitles": [
                "Petrol (Benzin)",
                "Diesel",
                "Electric (El)",
                "Petrol hybrid",
                "Diesel hybrid",
                "Petrol plug-in hybrid",
                "Diesel plug-in hybrid"
              ]
            },
            "default": []
          },
          "transmissions": {
            "title": "Transmission",
            "type": "array",
            "description": "Restrict to one or more transmission types.",
            "items": {
              "type": "string",
              "enum": [
                "manual",
                "automatic"
              ],
              "enumTitles": [
                "Manual (Manuelt gear)",
                "Automatic (Automatisk gear)"
              ]
            },
            "default": []
          },
          "sellerTypes": {
            "title": "Seller Type",
            "type": "array",
            "description": "Restrict to dealer or private-seller listings.",
            "items": {
              "type": "string",
              "enum": [
                "dealer",
                "private"
              ],
              "enumTitles": [
                "Dealer (Forhandler)",
                "Private seller (Privat)"
              ]
            },
            "default": []
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Not needed. The Actor connects to Bilbasen.dk directly, which is the only way the site's bot check passes reliably, so any proxy selected here is ignored. Leave it off.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxItems": {
            "title": "Maximum Listings",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of unique car listings to return.",
            "default": 25
          },
          "maxPages": {
            "title": "Maximum Search Pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of search pages to visit.",
            "default": 5
          },
          "monitorMode": {
            "title": "Monitor mode",
            "enum": [
              "all",
              "newOnly",
              "monitor"
            ],
            "type": "string",
            "description": "All listings returns every match (the default). New listings only returns listings not seen in earlier runs with the same monitor name. Monitor also reports price drops and price increases on listings seen before. Schedule the Actor and use a monitoring mode to track a filtered slice of the market over time.",
            "default": "all"
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "A label for this saved search, used only in the monitoring modes. Runs sharing a name share the same memory of past listings, so keep one name per filter set (for example 'ev-under-200k'). Defaults to 'default'.",
            "default": ""
          },
          "reportRemoved": {
            "title": "Report removed listings",
            "type": "boolean",
            "description": "In Monitor mode, also emit listings that were seen before but are no longer in the results, marked as removed. Only reliable when the run covers every matching listing (set Maximum Listings and Maximum Search Pages high enough to reach the end of the results).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}