{
  "openapi": "3.0.1",
  "info": {
    "title": "Subito.it Scraper - Cars, Real Estate, New Ads & Price Drops",
    "description": "For car dealers and property investors: Subito.it ads by keyword, category, region, price, car year, mileage, private or business seller: price, town, date, photos, car/home details. 16 of 30 newest Lombardia cars were old ads re-dated (2026-09-25); monitor returns only new ads and price drops.",
    "version": "0.1",
    "x-build-id": "euIch8FZwbsTO2Ukc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~subito-it-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-subito-it-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/neverempty~subito-it-scraper/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-subito-it-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/neverempty~subito-it-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-subito-it-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": {
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "What you would type into the Subito search box, for example golf, iphone 15, panda 4x4, bilocale. Each search term is searched in each category and location. Leave Search terms, Categories, Locations and Search URLs all empty to run the example search: all cars (auto) in Lombardia.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional. Subito categories, for example auto, moto-e-scooter, veicoli-commerciali, appartamenti, telefonia, informatica, biciclette. Empty = all categories. A category alone (without a search term) lists everything new in it. The README lists all categories.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Optional. Italian regions (lombardia, lazio, sicilia), provinces (milano, roma, torino, or the code MI, RM, TO) or italia for the whole country. Empty = all of Italy. An unknown place is refused before anything is requested.",
            "items": {
              "type": "string"
            }
          },
          "adType": {
            "title": "Sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "sale (default) = listings for sale. rent = rentals; works with the real estate categories (appartamenti, ville-singole-e-a-schiera, loft-mansarde, camere-posti-letto, garage-e-box, uffici-locali-commerciali, terreni-e-rustici, immobili).",
            "default": "sale"
          },
          "minPrice": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Only listings at or above this price (Subito's own price filter). For rentals this is the monthly rent."
          },
          "maxPrice": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "type": "number",
            "description": "Optional. Only listings at or below this price (Subito's own price filter)."
          },
          "yearFrom": {
            "title": "Cars: registration year from",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Vehicles first registered in this year or later (Subito's own filter). Listings without a year are left out when it is set."
          },
          "yearTo": {
            "title": "Cars: registration year to",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional. Vehicles first registered in this year or earlier."
          },
          "mileageFrom": {
            "title": "Cars: mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Minimum mileage in km. Subito filters by mileage bands, so this Actor asks for the band that contains your number and then keeps only listings at or above the exact value."
          },
          "mileageTo": {
            "title": "Cars: mileage to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum mileage in km (asked as a Subito band, then cut at the exact value)."
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "any",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Any (default), private sellers only, or businesses (dealers, shops) only. Subito's own filter.",
            "default": "any"
          },
          "titleOnly": {
            "title": "Search terms in the title only",
            "type": "boolean",
            "description": "On: Subito matches the search terms only in the listing title (Ricerca solo nel titolo), not in the description. Useful for short terms such as golf or 500.",
            "default": false
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Optional. Subito search result pages copied from your browser, with any filters you set there (brand, model, fuel ...), for example https://www.subito.it/annunci-lombardia/vendita/auto/milano/?q=golf. Paste the first page: page numbers (o=2) are not allowed by Subito's robots.txt and come back as a free row.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Max listings per search",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Most listings returned for one search. Subito's robots.txt allows only the first page of a search (the 30 newest listings), so 30 is the maximum and the default. In monitor mode it limits the new listings and price drops returned per search in one run; the rest come first in the next run, while they are still among the 30 newest."
          },
          "onlyNew": {
            "title": "Monitor mode: only new listings and price drops",
            "type": "boolean",
            "description": "On: every run reads the newest 30 listings of each search and returns only listings that are new since the previous check (changeType new) and listings whose price went down (changeType price-drop, with previousPrice). Older listings that were bumped back to the top are not sold as new. The first run returns the current listings (changeType first-check) and remembers them as the starting point. Each run that reads the list is charged the run start fee even when nothing changed; runs where nothing changed return a free row saying so. Schedule it often (for example every 15 minutes) on busy searches: only the first page can be read.",
            "default": false
          },
          "includePriceDrops": {
            "title": "Monitor mode: return price drops",
            "type": "boolean",
            "description": "On (default): in monitor mode, also return listings whose price is lower than at the previous check. Off: only new listings.",
            "default": true
          },
          "includeResurfaced": {
            "title": "Monitor mode: return older listings bumped back to the top",
            "type": "boolean",
            "description": "Off (default): an older listing that was bumped back to the top of the list, which this watch had not seen before, is not returned. On: return it with changeType resurfaced instead of new.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional. Keeps separate memories for monitor mode, for example one per client (letters, digits, dot, dash, underscore; up to 40). Runs with the same watch name and the same search share what has already been returned."
          },
          "resetMonitoringState": {
            "title": "Start the watch again",
            "type": "boolean",
            "description": "On: forget what this watch has seen for these searches before running, so this run is a first check again.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}