{
  "openapi": "3.0.1",
  "info": {
    "title": "Subito.it – Italy Listings, Cars, Property & Jobs",
    "description": "Scrape Subito.it listings across cars, real estate, marketplace, jobs, and more. Search by keyword and filters or use Subito URLs. Returns prices, descriptions, photos, specs, seller details, location, 60+ fields, and optional seller reputation.",
    "version": "1.0",
    "x-build-id": "wZpNvcCLcKg2msPOp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~subito-it-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-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/abotapi~subito-it-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-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/abotapi~subito-it-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-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",
        "required": [
          "category",
          "proxyConfiguration"
        ],
        "properties": {
          "category": {
            "title": "Vertical",
            "enum": [
              "auto",
              "realestate",
              "marketplace",
              "jobs"
            ],
            "type": "string",
            "description": "Which Subito.it vertical to scrape. This drives the default landing section and decides which vertical-specific filters below apply. Cars, real estate and jobs each expose their own filter set; marketplace covers all the consumer-goods categories.",
            "default": "marketplace"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Free-text keyword. Leave empty to browse all listings in the chosen vertical. Used together with the filters below. If a Start URL is also given, the URL takes precedence for that entry."
          },
          "subjectOnly": {
            "title": "Search title only",
            "type": "boolean",
            "description": "Match the keyword only against the ad title (not the description).",
            "default": false
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Region name or region id. Leave empty for all of Italy."
          },
          "city": {
            "title": "Province / city",
            "type": "string",
            "description": "Province (provincia) name or id to narrow results."
          },
          "town": {
            "title": "Town (comune)",
            "type": "string",
            "description": "Town (comune) name or id to narrow results further."
          },
          "priceMin": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in euro. For jobs this maps to the advertised salary when present."
          },
          "priceMax": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in euro."
          },
          "sellerType": {
            "title": "Advertiser type",
            "enum": [
              "any",
              "private",
              "company"
            ],
            "type": "string",
            "description": "Filter by advertiser. Any = both, Private = individuals, Company = businesses/dealers.",
            "default": "any"
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "datedesc",
              "relevance",
              "priceasc",
              "pricedesc",
              "yearasc",
              "yeardesc",
              "mileageasc",
              "mileagedesc",
              "hpasc",
              "hpdesc",
              "vlenasc",
              "vlendesc"
            ],
            "type": "string",
            "description": "Result ordering. Relevance / newest / price options work for every vertical; the year, mileage, power and length options only apply to cars & motors.",
            "default": "datedesc"
          },
          "adType": {
            "title": "Ad type",
            "enum": [
              "s",
              "k",
              "u",
              "h",
              "g"
            ],
            "type": "string",
            "description": "Transaction type. Offer (vendita) and Wanted (cercasi) apply broadly; Rent and Holiday rental apply to real estate; Free (in regalo) applies to marketplace. Cars and jobs only support Offer.",
            "default": "s"
          },
          "condition": {
            "title": "Item condition",
            "type": "array",
            "description": "Marketplace only. Filter by item condition. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "10",
                "20",
                "30",
                "40",
                "50"
              ],
              "enumTitles": [
                "New",
                "Like new",
                "Excellent",
                "Good",
                "Damaged"
              ]
            }
          },
          "shippableOnly": {
            "title": "Shippable only",
            "type": "boolean",
            "description": "Marketplace only. Show only ads that offer shipping.",
            "default": false
          },
          "brand": {
            "title": "Brand id",
            "type": "string",
            "description": "Cars only. Brand id (e.g. 000101 = Volkswagen)."
          },
          "model": {
            "title": "Model id",
            "type": "string",
            "description": "Cars only. Model id (depends on the chosen brand)."
          },
          "yearMin": {
            "title": "Min registration year",
            "type": "integer",
            "description": "Cars only. Earliest registration year."
          },
          "yearMax": {
            "title": "Max registration year",
            "type": "integer",
            "description": "Cars only. Latest registration year."
          },
          "mileageMin": {
            "title": "Min mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Cars only. Minimum kilometres."
          },
          "mileageMax": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Cars only. Maximum kilometres."
          },
          "fuelType": {
            "title": "Fuel type",
            "type": "array",
            "description": "Cars only. Filter by fuel. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "LPG",
                "Electric",
                "Other",
                "Hybrid",
                "Methane"
              ]
            }
          },
          "gearbox": {
            "title": "Gearbox",
            "enum": [
              "1",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Cars only. Transmission type."
          },
          "bodyType": {
            "title": "Body type",
            "type": "array",
            "description": "Cars only. Filter by body style. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "10"
              ],
              "enumTitles": [
                "City / small",
                "Saloon",
                "Estate / wagon",
                "MPV / minivan",
                "SUV / off-road",
                "Convertible",
                "Coupe",
                "City car",
                "Other"
              ]
            }
          },
          "vehicleStatus": {
            "title": "Vehicle condition",
            "type": "array",
            "description": "Cars only. Used, zero-km or new. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "Used",
                "Zero km",
                "New"
              ]
            }
          },
          "sizeMin": {
            "title": "Min surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only. Minimum surface in square metres."
          },
          "sizeMax": {
            "title": "Max surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only. Maximum surface in square metres."
          },
          "roomsMin": {
            "title": "Min rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Real estate only. Minimum number of rooms."
          },
          "roomsMax": {
            "title": "Max rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Real estate only. Maximum number of rooms."
          },
          "bathroomsMin": {
            "title": "Min bathrooms",
            "minimum": 1,
            "type": "integer",
            "description": "Real estate only. Minimum number of bathrooms."
          },
          "buildingCondition": {
            "title": "Building condition",
            "type": "array",
            "description": "Real estate only. Filter by property condition. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "10",
                "20",
                "30",
                "40"
              ],
              "enumTitles": [
                "New build",
                "Excellent",
                "Good",
                "To renovate"
              ]
            }
          },
          "jobCategory": {
            "title": "Job sector",
            "type": "array",
            "description": "Jobs only. Filter by job sector. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "100",
                "101",
                "102",
                "103",
                "104",
                "105",
                "106",
                "107",
                "108",
                "109",
                "110",
                "111",
                "112",
                "113",
                "114",
                "115",
                "116",
                "117",
                "118",
                "119",
                "120",
                "121",
                "122",
                "123",
                "124"
              ]
            }
          },
          "contractType": {
            "title": "Contract type",
            "type": "array",
            "description": "Jobs only. Filter by contract type. Choose one or more.",
            "items": {
              "type": "string",
              "enum": [
                "agent",
                "apprentice",
                "ind",
                "project",
                "stage",
                "tdet",
                "zzzzzother"
              ],
              "enumTitles": [
                "Agent / representative",
                "Apprenticeship",
                "Permanent",
                "Project / freelance",
                "Internship",
                "Fixed-term",
                "Other"
              ]
            }
          },
          "workHours": {
            "title": "Working hours",
            "enum": [
              "fulltime",
              "parttime",
              "shift",
              "zzzzzother"
            ],
            "type": "string",
            "description": "Jobs only. Filter by working hours."
          },
          "educationDegree": {
            "title": "Education level",
            "enum": [
              "1",
              "2",
              "3",
              "4"
            ],
            "type": "string",
            "description": "Jobs only. Filter by required education level."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste subito.it search URLs (/annunci-italia/...) or listing detail URLs (ending in .htm). Search URLs are parsed into search parameters; a detail URL enriches that single ad. Can be combined with a keyword search — the URL wins for each entry it covers.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "scrapeDetail": {
            "title": "Fetch full vehicle details",
            "type": "boolean",
            "description": "Vehicles only (category Cars & motors). When on, opens each vehicle's page to add full technical specs (engine size, kW/HP, cylinders, gears, drive, dimensions, weight) and the complete equipment/optionals list. Adds one request per vehicle. Other categories already return their full data from search and are unaffected.",
            "default": false
          },
          "scrapeReviews": {
            "title": "Fetch seller reputation",
            "type": "boolean",
            "description": "When on, fetch each unique seller's public reputation once and attach it to their listings. Adds one request per unique seller. Individual written review texts are not publicly available; only the aggregate reputation is returned.",
            "default": false
          },
          "maxItems": {
            "title": "Max items (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the total number of listings across all searches and URLs."
          },
          "maxItemsPerQuery": {
            "title": "Max items per search",
            "minimum": 1,
            "type": "integer",
            "description": "Per-search / per-URL cap for multi-search runs. Leave empty for no per-search limit (still bounded by Max items)."
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue an interrupted crawl without re-collecting or re-charging for listings already gathered there. For recurring daily/weekly monitoring of the same search instead, use Incremental mode below."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring of the same search. The first run returns all matching listings as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED listings. Turn on \"Emit unchanged\" or \"Emit expired\" only when you also want those returned (and billed). State is kept separately per vertical/query/filter/URL/enrichment setup; use State key to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the vertical/query/filters/URLs/enrichment settings -- different searches then never mix state with each other."
          },
          "emitUnchanged": {
            "title": "Emit unchanged listings (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns -- and bills -- extra rows you already have, so leave it off unless you specifically want the full snapshot every run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired listings (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search -- not when Max items capped it or when Resume was used. This returns -- and bills -- extra synthetic rows, so leave it off unless you need expiry tracking.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxy is required for reliable access; the actor defaults the country to Italy.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "IT"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Apify (https://mcp.apify.com)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}