# Avito Scraper: Listings, Prices and New Ads

> Avito scraper: enter search words, search links or listing links. Get title, price, location, category, seller type and link for each ad. No login.

URL: https://cliqtomedia.com/actors/avito-scraper/

Category: Classifieds & second-hand · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/avito-scraper?fpr=cliqto

Get public Avito listings from search words or links. Each row has the title, price, location, category and seller type. You can add full details or get only new ads each day.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify 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.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `[]` in Search links. Each start is one run.
3. **Download the results.** When 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.

## What it does

Avito Listings Scraper reads public Avito.ru search results and listing pages and saves clean rows with prices, locations, seller type, photos and optional full details.



### Good for

- Track prices of a product or a car in a region.
- Collect homes for sale with Avito's price estimate and the building's listing history.
- Get only the new listings of a saved search each day.
- Read public reviews and price statistics of a product model.
- Find short-term rentals for exact dates and guests.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.003 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Listing | $0.0036 (from $0.00252 on paid Apify plans) | One saved listing. Duplicates, excluded ads and closed listings are not charged. |
| Source work unit | $0.0003 (from $0.00021 on paid Apify plans) | Work on Avito, charged also when nothing is found. Search page: 12 units. Listing, reviews or valuation read: 2 units. New connection: 1 unit. Protected reply: 8 more units. |
| Listing details | $0.0021 (from $0.00147 on paid Apify plans) | Full details added to one listing when details are turned on. |
| Model review | $0.0005 (from $0.00035 on paid Apify plans) | One saved product model review when reviews are turned on. |

- One result: about $0.0066.
- 1,000 results: about $3.60.
- Every day 100 results, for 30 days: about $10.89 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 8 November 2026. Current price: https://apify.com/cliqtomedia/avito-scraper?fpr=cliqto

## Questions

### Do I need an Avito account or a proxy?

No. You need only an Apify account. The Actor reads public pages.

### Does it return phone numbers?

No. Phone numbers and personal emails are not collected.

### Why is the price empty?

The listing shows no number as price. The field is null, not zero.

### Can I get more than 2,000 rows from one search?

Not from one search. Avito stops showing results after about 31 pages. Add more phrases, regions, categories or price ranges in one run.

### How fresh and complete is the data?

Each row shows Avito at the time in `fetchedAt`. Avito decides what a search shows, so the Actor does not promise every listing.

### Is `isUnderpriced` a market valuation?

No. It compares a price only with rows from the same source page. Avito's own estimates for homes and cars are in `marketValuation` and `carMarketPrice`.

## Data fields

- `itemId` (string): Public Avito listing ID.
- `url` (string): Public listing page without tracking parameters.
- `title` (string): Listing title. Private contacts are removed.
- `priceText` (string): Price text shown by Avito.
- `currency` (string): RUB when a numeric price is shown.
- `location` (string): Public location text.
- `address` (string): Public listing address, when shown.
- `category` (string): Source category name.
- `postedAt` (string): Publication time in ISO 8601 UTC when Avito returns an exact timestamp.
- `description` (string): Listing description as plain text. Private phone numbers and email addresses are removed.
- `sellerType` (string): Source seller type, when shown.
- `source` (string): Data source: avito.ru.
- `sourceUrl` (string): Public source page for the listing.
- `fetchedAt` (string): Time the row was fetched, in ISO 8601 UTC.
- `status` (string): ok for a listing that was read successfully; not_found for a listing that no longer exists.
- `descriptionPreview` (string): Short description shown in search results. It may be cut off by Avito.
- `listingSummary` (string): Short specifications shown in the search card.
- `changeType` (string): new or changed when listing history is enabled.
- `price` (number): Current numeric price in RUB. A missing price is null, not zero.
- `latitude` (number): Public latitude.
- `longitude` (number): Public longitude.
- `categoryId` (number): Source category ID.
- `sellerRating` (number): Public seller rating, rounded to two decimal places.
- `sellerReviewCount` (number): Public number of seller reviews.
- `viewsTotal` (number): Public total listing views.
- `viewsToday` (number): Public listing views today.
- `modelRating` (number): Public model rating.
- `modelReviewCount` (number): Total public reviews for the model.
- `images` (array): Available public listing image links.
- `parameters` (array): Listing specifications shown by Avito.
- `productSpecs` (array): Model specifications when available.
- `productReviews` (array): Public model review text, ratings and original date labels. Review author names are excluded.
- `modelComparables` (object): Price statistics for a sample of matching model offers. Null when this model has no comparison data.
- `isUnderpriced` (boolean): True when the price is at least 20% below other comparable prices on the same source search page; null when fewer than 10 prices are available.
- `priceWithoutDiscount` (number): Previous price in RUB when the source shows a higher old price.
- `discountPercent` (number): Price reduction as a positive percentage, based on the current and old prices.
- `districtId` (number): Public source district ID, when returned.
- `metroId` (number): Public source metro station ID, when returned.
- `verticalId` (number): Source vertical category ID, when returned.
- `imageCount` (integer): Number of photos returned by the source.

## Input settings

- `query` (string): Words to find in public Avito listings. Used when no search links or listing links are given.
- `region` (string): Region path from an Avito search link, such as moskva or sankt-peterburg. Use rossiya for Russia.
- `searchUrls` (array): Public Avito search links. Their category and filters are kept. Search words are used only when this list is empty.
- `queries` (array): Run several phrases in the selected region. Used instead of Search words when no links are given.
- `listingUrls` (array): Public Avito listing links or numeric listing IDs. No phone numbers or personal email addresses are returned.
- `categoryPath` (string): Optional path after the region, such as velosipedy or kvartiry/prodam. Copy it from an Avito search link.
- `maxItems` (integer): Maximum number of listings saved across all inputs. Duplicate listing IDs are saved once.
- `includeDetails` (boolean): Add descriptions, photos, parameters, coordinates and publication times. For supported secondary homes for sale, also read Avito’s price estimate. Slower than search results alone.
- `includeReviews` (boolean): For supported products, add public reviews about the model. Names and contacts of review authors are excluded. Full details are also read.
- `includeComparables` (boolean): For supported products, add price statistics from up to 35 matching offers, or up to 10 when Avito limits the direct route. Avito chooses the region of these offers, so check modelComparables.region. Full details are also read.
- `maxReviews` (integer): Maximum public model reviews to save for each listing. Used only when model reviews are enabled.
- `minPrice` (integer): Only listings at or above this price.
- `maxPrice` (integer): Only listings at or below this price.
- `sort` (string): Avito search order. A sort in a pasted search link takes priority.
- `sellerType` (string): Choose all sellers, private sellers or businesses.
- `localOnly` (boolean): Ask Avito to prioritize results from the selected region.
- `onlyNew` (boolean): Remember delivered IDs and skip them in later runs with the same searches. The latest 50,000 delivered IDs are kept.
- `trackChanges` (boolean): Return new listings and changes to their title, price, publication time or category. View counts, model statistics and the amount of optional detail data do not count as changes. Unseen records stay in the history.
- `stateName` (string): Optional name for a shared listing history in your private Actor storage. Leave empty to use a history for these searches.
- `excludeListingIds` (array): Do not return these listing IDs.
- `skipNegotiablePrice` (boolean): Exclude listings that do not show a numeric price.
- `flagUnderpriced` (boolean): Compare each ad with other priced ads from the same source page and category. At least 10 prices with the same price unit are needed. Flag ads priced 20% or more below the median. Model comparisons are not required.
- `maxPagesPerSearch` (integer): Stop a search after this many source pages. A source page cap is recorded in the run summary.
- `deliveryConnector` (string): Your Slack, Notion or other MCP connector. After the run the Actor posts a short summary there. Connect services once in Apify Console → MCP connectors.
- `deliveryTarget` (string): Where to post the summary: a Notion page link (each run is added on top of that page) or a Slack channel ID. Leave empty to let the connector decide.

## Step by step on Apify

1. Open the input form. Keep the prefilled `велосипед` in Search words or type your own words (box 1 in the picture).
2. Keep `moskva` in Region or paste a region from an Avito link, such as `sankt-peterburg` (box 2).
3. Keep `10` in Maximum listings for a first test (box 3).
4. Click Start.
5. Open the Output tab and check `title`, `price` and `location` (box 5).

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Compare prices of a product in a region | `query`, `region`, `sort` | Listing row | `title`, `price`, `location`, `url` | CSV or Excel export |
| Get new listings from a saved search | `searchUrls`, `onlyNew`, `stateName` | New listing row | `itemId`, `changeType`, `price`, `url` | Schedule and Slack or Notion summary |
| Watch price changes | `searchUrls`, `trackChanges`, `stateName` | Changed listing row | `changeType`, `price`, `priceText`, `postedAt` | Schedule, API or webhook |
| Value a home for sale | `listingUrls`, `includeDetails` | Detailed listing row | `marketValuation`, `realtyReport`, `buildingListingHistory` | JSON export |
| Study a product model | `listingUrls`, `includeReviews`, `includeComparables` | Listing row with model data | `productReviews`, `modelRating`, `modelComparables` | JSON export or API |

## Tips

- One search shows up to about 2,000 listings. Use more phrases, regions or price ranges for more.
- Turn on onlyNew and run it on a schedule to get only new ads.
- The default 300 second timeout fits about 550 to 1,000 search rows. Set a longer timeout for more.

## Limits



- The Actor reads only public pages. It does not return phone numbers or personal emails, and it does not log in.
- One search returns up to about 2,000 listings, because Avito stops showing results after about 31 pages. Avito can also start repeating or stop a search after about 500–800 listings. Use several phrases, regions, categories or price ranges for more.
- The default timeout of 300 seconds fits about 550–1,000 search rows. Set a longer timeout for more. Rows with details take about 1 second each.
- The current version was tested up to 450 search rows in one run. Larger runs were measured on an earlier build at 512 MB: 5,000 rows took about 28 minutes and 20,000 rows about 93 minutes. Treat these numbers as a guide, and start a large job with a smaller run.
- Avito can refuse some reads. The Actor retries and then keeps the rows it has, with `SOURCE_BLOCKED` in the summary.
- Avito can widen a narrow search with other regions and loosely related listings. The Actor checks the price range again, but it keeps Avito's choice of words and region.
- `onlyNew` remembers the latest 50,000 delivered IDs.

## Sample result

```json
{
  "itemId": "8075689687",
  "url": "https://www.avito.ru/moskva/velosipedy/velosiped_gornyy_26_8075689687",
  "title": "Велосипед горный 26''",
  "price": 7500,
  "priceText": "7 500 ₽",
  "priceWithoutDiscount": null,
  "discountPercent": null,
  "currency": "RUB",
  "location": "Москва, ул. Лескова, 19Ас2",
  "latitude": 55.894085,
  "longitude": 37.616457,
  "category": "Горные",
  "categoryId": 34,
  "breadcrumbs": ["Хобби и отдых", "Велосипеды", "Горные"],
  "postedAt": "2026-10-31T17:06:46.000Z",
  "sellerType": "company",
  "sellerRating": 5,
  "sellerReviewCount": 442,
  "sellerVerified": false,
  "imageCount": 5,
  "isDeliveryAvailable": false,
  "isNegotiable": null,
  "parameters": [
    { "name": "Состояние", "value": "Новое", "attributeId": 110399 }
  ],
  "viewsTotal": 16248,
  "viewsToday": 4,
  "source": "avito.ru",
  "fetchedAt": "2026-11-07T03:22:15.474Z",
  "status": "ok"
}
```

## Use it from code

Actor ID: `cliqtomedia/avito-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/avito-scraper").call(run_input={
    "query": "велосипед",
    "region": "moskva"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~avito-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "велосипед", "region": "moskva"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/avito-scraper")
result = tool.invoke({"run_input": {"query": "велосипед", "region": "moskva"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [Facebook Marketplace Scraper - Prices & Price Drops, No Login](https://cliqtomedia.com/actors/facebook-marketplace/)
- [Craigslist Scraper - Listings, Prices & Photos, No Login](https://cliqtomedia.com/actors/craigslist-scraper/)
- [eBay Search Scraper: Active Listings & Prices, No Login](https://cliqtomedia.com/actors/ebay-browse-search/)
- [AutoScout24 Scraper - EU Car Listings & Prices, No login](https://cliqtomedia.com/actors/car-listings-scraper/)
- [Depop Scraper - Listings, Prices, Brands & Shops](https://cliqtomedia.com/actors/depop-scraper/)
- [Kleinanzeigen Scraper: Listings, Prices & Photos (No Login)](https://cliqtomedia.com/actors/kleinanzeigen-scraper/)
