How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
biciclettain Search keywords. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Scrape classified ads from Subito.it, Italy's biggest classifieds site, by keyword, category, region, price and seller type. Each row has the title, price, town, province, photos, condition, seller type, posting date and the category's own details, such as mileage, year or rooms. No login, cookies or proxy settings. A 20-listing search costs $0.0225 on the Free plan.
- Keyword: one search per keyword, such as
bicicletta,iphone 13ordivano. - Category: 43 Subito.it categories, such as Cars, Apartments, Phones or Bicycles.
- Region: one of the 20 Italian regions.
- Ad type: for sale, for rent, wanted, holiday rental or giveaway.
- Price: minimum and maximum in euros.
- Seller type: private people or businesses (shops, dealers, agencies).
- Only in the title and only with Subito shipping.
Good for
- Track prices of used cars, bikes, phones or furniture in one region.
- Get new listings for a search every day or every hour with
onlyNew. - Compare private and business sellers in a category.
- Collect rental or sale listings for a real estate market report.
Not a good fit
- Seller phone numbers, e-mails or names of private sellers. They are not collected.
- Other classifieds sites, or Subito listings outside Italy.
- More than 10,000 listings for one search. Subito.it shows at most 10,000. Split a big search by region or price to get more.
- Sorting other than newest first.
Who uses it
Used car and bike traders
Watch prices in one Italian region.
Real estate analysts
Collect rental and sale ads for a market report.
Shops and agencies
See which businesses sell in your category.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.0045 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Listing | $0.0009 (from $0.00075 on paid Apify plans) | One Subito.it listing saved to the dataset. Duplicates and listings already seen in only-new mode are not charged. |
Examples
- One listing: about $0.0054.
- 1,000 listings: about $0.90.
- Every day 100 listings, for 30 days: about $2.83 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 5,500 listings.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Can I search the whole of Italy?
Yes. Leave the region empty to search every region.
Do I pay if nothing is found?
You pay only the small start fee. Rows cost money only when they are saved.
Can I get the seller's phone?
No. Phones and contact details are not collected. Use the ad link to contact the seller on Subito.it.
Can I see only private sellers?
Yes. You can filter by private people or businesses.
Do I need a Subito.it account or a proxy?
No. The Actor reads public search results. You only need an Apify account.
How do I get price history?
Each run gives the current listings. Schedule the same input and keep the datasets. Use id to follow one listing over time.
Details
Step by step on Apify
- Open the Input tab.
- Keep Search keywords as
bicicletta(the prefill). - Keep Max listings per keyword at
20. - Click Start.
- Open the Listings view of the dataset. Check
title,price,cityandpostedAt.
Use cases
| Task | Input | Key fields | Next step |
|---|---|---|---|
| Watch used car prices in a region | category: auto, region, priceMin, priceMax | price, features.year, features.mileage_scalar, city | Sort by price in a spreadsheet |
| Get new deals as soon as they appear | queries + onlyNew: true | title, price, url, postedAt | Schedule the run every hour |
| Rental market report | category: appartamenti, adType: rent, region | price, features, city, province | Group by city |
| Find shops and dealers in a category | category + sellerType: professional | shopName, city, category | Count listings per shopName |
Tips for better results
- Leave the keyword empty and pick a category to read the whole category.
- Use Italian search words, like bicicletta or divano, for better results.
- Keep the same input and schedule it to build your own price history.
Limits and good to know
Data comes from the public search pages of Subito.it. The Subito.it terms limit automated access and reuse of its content. You are responsible for checking that your use of the data is allowed. This Actor is an independent tool. It is not made by or endorsed by Subito.it.
- Search results. Subito.it decides which listings match a keyword. The Actor does not promise every listing on the site
- 10,000 per search. Subito.it shows at most 10,000 results for one search. For bigger categories, split by region or price range
- Newest first.
postedAtis the publish or renewal time, so a renewed old listing can appear as new - Features. Keys and values come from Subito.it and are in Italian. Each category has its own keys
- Privacy. Phone numbers, seller user IDs and names of private sellers are never collected. Phone numbers and e-mails typed into the title or text are replaced with
[phone removed]/[email removed] - Changes. If Subito.it changes its website, a run can fail with
SOURCE_ERRORuntil the Actor is updated
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"id": "664528066",
"urn": "id:ad:8b094273-32b6-4e90-b12f-084df242018c:list:664528066",
"url": "https://www.subito.it/biciclette/bici-da-corsa-sarto-bologna-664528066.htm",
"title": "Bici da corsa Sarto",
"description": "Bicicletta da Corsa Sarto Seta con gruppo Record Campagnolo 10 velocità taglia S orrizontale 52 cm verticale 50 cm",
"price": 900,
"currency": "EUR",
"adType": "sale",
"adTypeLabel": "In vendita",
"category": "Biciclette",
"categoryId": "41",
"macrocategoryId": "18",
"region": "Emilia-Romagna",
"regionId": "8",
"province": "Bologna",
"provinceCode": "BO",
"city": "Bologna",
"latitude": 44.49411,
"longitude": 11.341719,
"postedAt": "2026-10-14T13:14:55.444Z",
"expiresAt": "2027-10-14T13:14:55.444Z",
"condition": "Ottimo - poco usato e ben conservato",
"shippingAvailable": true,
"features": {
"bicycle_type": "Uomo",
"item_condition": "Ottimo - poco usato e ben conservato",
"item_shippable": "Sì",
"item_shipping_cost_tuttosubito": "24,90 €"
},
"images": [
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/91/9118b420-7f13-48e8-b012-72225d03ec81?rule=gallery-desktop-2x-auto",
"https://images.sbito.it/api/v1/sbt-ads-images-pro/images/c0/c0c24a31-b068-49d1-986e-b42a4452066a?rule=gallery-desktop-2x-auto"
],
"imageCount": 6,
"sellerType": "private",
"shopName": null,
"searchQuery": "bicicletta",
"source": "subito.it",
"fetchedAt": "2026-10-14T13:18:22.105Z"
}Use it from code
Actor ID: cliqtomedia/subito-listings-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/subito-listings-scraper").call(run_input={
"queries": [
"bicicletta"
],
"category": ""
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~subito-listings-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["bicicletta"], "category": ""}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/subito-listings-scraper")
result = tool.invoke({"run_input": {"queries": ["bicicletta"], "category": ""}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (31)
| Field | Type | Meaning |
|---|---|---|
id | string | Subito.it listing id (the number at the end of the listing URL). |
urn | string | Full Subito.it ad identifier. |
url | string | Public listing page on www.subito.it. |
title | string | Ad title as written by the seller. Phone numbers and e-mails are masked. |
description | string | Ad text (null when includeDescription is off). Phone numbers and e-mails are masked. |
price | number | Asking price in euros; null when the ad has no price (never 0 for a missing price). |
currency | string | EUR when a price is present. |
adType | string | sale, rent, wanted, holiday or gift. |
adTypeLabel | string | Ad type label on the site, e.g. "In vendita". |
category | string | Category name on the site, e.g. "Biciclette". |
categoryId | string | Subito.it category id. |
macrocategoryId | string | Subito.it parent category id. |
region | string | Italian region, e.g. "Lombardia". |
regionId | string | Subito.it region id. |
province | string | Province, e.g. "Milano". |
provinceCode | string | Province code, e.g. "MI". |
city | string | Town (comune) of the ad. |
latitude | number | Latitude of the town centre (not the seller's address). |
longitude | number | Longitude of the town centre (not the seller's address). |
postedAt | string | When the ad was published or last renewed (ISO 8601, UTC). |
expiresAt | string | When the ad expires (ISO 8601, UTC). |
condition | string | Item condition, e.g. "Come nuovo", when the seller set it. |
shippingAvailable | boolean | true if the item can be shipped with Subito delivery. |
features | object | Category-specific attributes as key → value, e.g. mileage, year, rooms, size, bicycle type. |
images | array | Full-size image URLs. |
imageCount | integer | Number of images. |
sellerType | string | private or professional (shop, dealer, agency). |
shopName | string | Business name for professional sellers; always null for private sellers. |
searchQuery | string | Keyword of the search that found this ad; null for a category/region browse. |
source | string | Always "subito.it". |
fetchedAt | string | When this row was fetched (ISO 8601, UTC). |
Input settings (12)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Search keywords | queries | array | ["bicicletta"] |
| Category | category | string | "" |
| Region | region | string | "" |
| Ad type | adType | string | "sale" |
| Minimum price (€) | priceMin | integer | |
| Maximum price (€) | priceMax | integer | |
| Max listings per search | maxItems | integer | 20 |
| Only new listings since last run | onlyNew | boolean | false |
| Seller type | sellerType | string | "all" |
| Match keywords in title only | titleOnly | boolean | false |
| Only ads with shipping | shippingOnly | boolean | false |
| Include description text | includeDescription | boolean | true |
