{
  "openapi": "3.0.1",
  "info": {
    "title": "AutoScout24 Underpriced Cars — Discount vs Model Median",
    "description": "Type a make/model and get the cheapest AutoScout24 listings measured against every car of that model, not one page. Returns the model's median, then for each of the 40 cheapest cars its price, % under the median, mileage and year. $0.02 per make/model; unmeasurable search = free. Unofficial.",
    "version": "0.1",
    "x-build-id": "HR9hkIgtnU7sJCHtk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~autoscout24-underpriced-deals/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-autoscout24-underpriced-deals",
        "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/jpmarketdata~autoscout24-underpriced-deals/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-autoscout24-underpriced-deals",
        "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/jpmarketdata~autoscout24-underpriced-deals/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-autoscout24-underpriced-deals",
        "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": [
          "models"
        ],
        "properties": {
          "models": {
            "title": "Makes or make/model",
            "type": "array",
            "description": "e.g. \"bmw/3er\", \"volkswagen/golf\", or just \"bmw\". A narrower search gives a tighter population and a more meaningful percentile.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "de",
              "at",
              "be",
              "es",
              "fr",
              "it",
              "lu",
              "nl",
              "com"
            ],
            "type": "string",
            "description": "AutoScout24 domain to search. The population, the currency and the model slugs are all country-specific.",
            "default": "de"
          },
          "dealThresholdPct": {
            "title": "Deal threshold (% of population median)",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "A listing counts as a deal at or below this share of the population median. 80 means \"20% under the market\".",
            "default": 80
          },
          "maxCandidates": {
            "title": "Cheapest listings to place",
            "minimum": 10,
            "maximum": 200,
            "type": "integer",
            "description": "How many of the cheapest listings to fetch and position. Sorted by price ascending, ~18 per page.",
            "default": 40
          },
          "firstRegistrationFrom": {
            "title": "First registration from (year)",
            "minimum": 1950,
            "type": "integer",
            "description": "Applied to the population and the candidates alike."
          },
          "mileageMaxKm": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Applied to the population and the candidates alike, so the percentile stays a like-for-like comparison."
          },
          "maxPopulationSpread": {
            "title": "Max population spread (p90 / p10)",
            "type": "string",
            "description": "Comparability ceiling. A search whose population spans more than this from p10 to p90 is mixing model years and conditions, so a discount against its median compares unlike cars — it is refused rather than scored.",
            "default": "4.0"
          },
          "implausibleBelowPct": {
            "title": "Implausible below (% of median)",
            "type": "string",
            "description": "Listings under this share of the median are placeholders, not prices — dealers use EUR 1 for price-on-request, deposits and parts cars. They are counted in implausibleExcluded and kept out of the deal list.",
            "default": "5.0"
          },
          "ladderSteps": {
            "title": "Price ladder steps",
            "minimum": 4,
            "maximum": 16,
            "type": "integer",
            "description": "Rungs in the count ladder that builds the population CDF. More rungs mean tighter percentile bounds and more requests.",
            "default": 9
          },
          "refineSteps": {
            "title": "Ladder refinement steps",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Extra rungs placed around the median to sharpen the middle of the distribution.",
            "default": 3
          },
          "includeIndividualDeals": {
            "title": "Include individual deals",
            "type": "boolean",
            "description": "Return each matching listing with its placement (charged per deal).",
            "default": true
          },
          "convertToUsd": {
            "title": "Convert to USD",
            "type": "boolean",
            "description": "Add USD figures alongside the local currency.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}