{
  "openapi": "3.0.1",
  "info": {
    "title": "Sauto Scraper - Czech Car Marketplace Data",
    "description": "Scrape car listings from Sauto.cz, Czech Republic's largest online car marketplace (Seznam.cz group). Extract prices, specs, mileage, fuel type, transmission, seller info, and images. No login or cookies required.",
    "version": "0.1",
    "x-build-id": "GOeeJaPkGfQQaW788"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/studio-amba~sauto-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-studio-amba-sauto-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/studio-amba~sauto-scraper/runs": {
      "post": {
        "operationId": "runs-sync-studio-amba-sauto-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/studio-amba~sauto-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-studio-amba-sauto-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": "Start URLs",
            "type": "array",
            "description": "Optional: paste a Sauto.cz car-search URL (e.g. from your browser's address bar after filtering on the site) instead of setting the fields below. Make/model (from the URL path) and price/year/fuel filters (from the query string) are read from the URL. When set, this replaces the filters below.",
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Search Query",
            "type": "string",
            "description": "Manufacturer name to search for (e.g., 'volkswagen', 'skoda', 'bmw', 'audi'). Uses manufacturer SEO slug on Sauto.cz."
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Car manufacturer (e.g., volkswagen, skoda, bmw). Overrides searchQuery when set."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Car model (e.g., golf, octavia, 3). Must be used together with Make."
          },
          "yearFrom": {
            "title": "Year From",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Minimum first registration year (e.g., 2018). Filtered client-side."
          },
          "yearTo": {
            "title": "Year To",
            "minimum": 1950,
            "maximum": 2030,
            "type": "integer",
            "description": "Maximum first registration year (e.g., 2024). Filtered client-side."
          },
          "priceFrom": {
            "title": "Price From (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in CZK (e.g., 100000 for 100,000 CZK)."
          },
          "priceTo": {
            "title": "Price To (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in CZK (e.g., 500000 for 500,000 CZK)."
          },
          "mileageMin": {
            "title": "Mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum odometer reading in km. Uses Sauto's own mileage filter (km-od on the site)."
          },
          "mileageMax": {
            "title": "Mileage to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum odometer reading in km. Uses Sauto's own mileage filter (km-do on the site)."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "ojete",
              "nove",
              "predvadeci",
              "havarovane",
              "veteran"
            ],
            "type": "string",
            "description": "Vehicle condition, using Sauto's own filter. Leave empty for all."
          },
          "fuelType": {
            "title": "Fuel Type",
            "enum": [
              "",
              "benzin",
              "nafta",
              "elektro",
              "hybrid",
              "lpg",
              "cng"
            ],
            "type": "string",
            "description": "Filter by fuel type."
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of car listings to return. Not used in whole-market mode, which reads every listing.",
            "default": 50
          },
          "wholeMarket": {
            "title": "Whole market",
            "type": "boolean",
            "description": "Off by default. When on, the actor reads every passenger-car listing on Sauto.cz (about 111,000 on 28 Oct 2026; you pay for every row), ignoring make, model, search query and start URLs. Price, mileage, year, condition and fuel filters still apply. Sauto returns at most 10,000 listings per search, so the actor splits the market by make and, for the largest makes, by price band, and checks that the parts add up to the site total. Every row carries sellerName and dealerId, so a dealer's own stock can be compared with the market. Year filters use the site's own filter here (manufacturing date first).",
            "default": false
          },
          "trackListings": {
            "title": "Track listings between runs",
            "type": "boolean",
            "description": "Off by default. When on, the actor remembers every listing of this search in a key-value store in your account (\"sauto-tracking\") and adds firstSeenAt, lastSeenAt, status (new, active), price changes, one row per listing that disappeared since the last run (status removed, with removalClass potential_sold, reposted, expired or deactivated_by_site, from Sauto's own ad status), and one __SEGMENT_SUMMARY__ row with market days supply and p25/median/p75 prices. A removal is a potential sale, never a confirmed one. Set maxResults above the number of listings in the search (or use whole-market mode): listings are only marked removed when the run read every listing. Schedule the same input daily or weekly.",
            "default": false
          },
          "trackingKey": {
            "title": "Tracking key",
            "type": "string",
            "description": "Name of the tracked segment in the store. Leave empty to derive it from the search filters, so the same filters always continue the same history. Set your own for a readable name (letters, digits, - _ . only). A new key starts a new history."
          },
          "salesWindowDays": {
            "title": "Sales window (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Number of past days counted as potential sales for the market days supply: MDS = active listings / (potential sales in the window / window days).",
            "default": 45
          },
          "priceBands": {
            "title": "Price bands",
            "maxItems": 20,
            "type": "array",
            "description": "Band edges for the price breakdown in the segment summary, in CZK. Default [100000, 200000, 300000, 500000, 750000, 1000000, 1500000] gives 0-99999, 100000-199999, ... and 1500000+.",
            "items": {
              "type": "integer"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Recommended: RESIDENTIAL proxies with CZ country for best results.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "CZ"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}