Avito Listings Scraper
Pricing
from $0.29 / 1,000 listings
Avito Listings Scraper
Scrape Avito.ru ads by Russian search term, category, city or a pasted search link. Each row has the title, price in roubles, category, city and address, seller name and private or business, publish date, photos and link. A chosen region stays a real filter. $0.30 per 1,000 ads.
Pricing
from $0.29 / 1,000 listings
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
1
Bookmarked
135
Total users
58
Monthly active users
3 hours ago
Last modified
Categories
Share
Search Avito.ru by term, category, city or a pasted search link and get one row per ad: id, title, price in roubles, category, city and address, the seller's name and whether they are private or a business, publish date, photos and the link. No account, no cookies.
The awkward part first. Avito treats a region as a relevance nudge, not a filter. On page 50 of a Moscow search, most of what Avito returns is actually from Kaluga, Tver and Smolensk. This actor keeps results to the chosen region, and that is what Stay inside the chosen region does. Turn it off and you get Avito's mixed results back.
| Input | Russian search terms, or Avito search and category URLs |
| Output | One row per ad: title, price in roubles, category, city and address, seller name and type, publish date, photos and link |
| Ceiling | 5,000 ads per search, Avito's own cap. 50,000 per run across searches |
| Speed | Runs of 11 to 201 ads finished in 4 to 37 seconds |
| Account needed | None |
| Price | $0.30 per 1,000 ads on the free plan, down to $0.285 on Business. The free plan's $5 a month covers about 16,000 |
🔍 What Avito Listings Scraper does
There are two ways in and they mix freely. Fill in the form, which is a search term plus any combination of region, category, seller type, price band and sort order. Or paste URLs you already have. Every filter in a pasted link is kept, its sort order included.
Regions and categories both take an English name, the Russian name, or the slug out of an Avito URL,
so Moscow, Москва and moskva all work, and so do cars, автомобили and avtomobili. For
flats, flats for sale and flats to rent (or kvartiry/prodam and kvartiry/sdam) keep buying
and renting apart. Put several regions in and you get one search per region, with duplicate ads
counted only once.
A seller type or price bound filled in on the form replaces a pasted link's own. A link with no sort takes the form's Sort order.
The seller filter is checked twice, because Avito ignores its own seller filter in some categories, cars among them. Ads that do not match your choice are dropped before they reach the dataset and never billed.
📋 What data you get from each Avito ad
| What you get | Field |
|---|---|
| Ad id, title, link and the preview text | listingId, title, url, description |
| Price, Avito's formatted price, the currency and any discount | price, priceText, currency, priceWithoutDiscount, discountPercent |
| Category | categoryId, categoryName, categorySlug, microCategoryId |
| Where it is: city, address and coordinates when the seller gave them | locationId, location, address, addressLocality, latitude, longitude |
| The seller: name, private or business, link, rating and reviews | sellerName, sellerType, sellerTypeText, sellerUrl, sellerRating, sellerReviewsText |
| When it was published | publishedAt, publishedAtText |
| Photos and video | images, imageCount, hasVideo |
| Avito's badges and the spec line under the title | isNew, isVerified, isReserved, params |
| Which of your searches found it | searchQuery, searchUrl |
| A lowered price, and the crossed-out price next to a discount | priceDropped, previousPrice |
| Price per square metre, where Avito prints one | normalizedPrice, pricePerM2 |
| Metro stations and places nearby, with distance and walking time | nearbyPlaces |
| Badges as text, on the ad and on the seller, and whether the ad is promoted | badges, sellerBadges, isPromoted |
| The seller's id and number of reviews | sellerId, sellerReviewCount |
| Whether Avito delivery is offered | hasDelivery |
| Region slug and the category breadcrumb | regionSlug, categoryPath |
| Property ads: the complex name, rooms, area and floor | developmentName, rooms, areaM2, floor, totalFloors |
| How the price compares with the rest of the search (optional) | isUnderpriced, priceVsMedian |
▶️ How to scrape Avito listings
- Open Avito Listings Scraper and click Try for free.
- Type your Russian search into Search terms, or paste links into Avito search URLs.
- Open Narrow it down to set a region, a category, the seller type or a price band.
- Set Maximum listings under Limits. Around 20 is enough to see what the rows look like.
- Click Start, then download the dataset as JSON, CSV or Excel.
Run it with no search target at all and you get one labelled sample row, which is not charged.
💰 How much does it cost to scrape Avito listings?
$0.30 per 1,000 ads. That is the free plan's price; paid plans pay a little less: $0.295 on Starter, $0.29 on Scale and $0.285 on Business. On the free plan, the $5 Apify gives you each month covers about 16,000 ads.
One billed row per ad delivered. The sample row is not billed, diagnostic rows are not billed, an ad that fails your seller-type choice is dropped before the dataset, and the same ad found under two regions is counted once.
📥 What you give it
{"query": "iphone 15","region": ["Moscow"],"category": ["phones"],"sellerType": "private","localOnly": true,"sort": "newest","minPrice": 20000,"maxItems": 100}
| Field | Default | What it is |
|---|---|---|
query | none | What to search for, in Russian. Leave it empty to browse a whole category. |
searchUrls | none | Avito search or category URLs pasted straight from the site, instead of filling in the fields. Every filter in a link is kept. |
region | none | Region or city, by English name, Russian name or URL slug. Empty means the whole of Russia. Several means one search each. |
category | none | Category, by English name, Russian name or URL slug, such as cars, phones, flats for sale, flats to rent or rooms. Empty means every category. |
sellerType | any | private or company to keep only one kind. Mismatched ads are dropped uncharged. |
localOnly | true | Keeps results to the chosen region. |
sort | default | Avito's own ordering. default is relevance, which puts promoted ads first. Also newest, cheapest, expensive. A pasted link with a sort of its own keeps it. |
minPrice, maxPrice | none | Price bounds in roubles. |
maxItems | 100 | Total ads across every search in the run, up to 50,000. |
flagUnderpriced | false | Marks ads priced 20% or more under the median of their own search. Needs at least 10 priced ads in that search. |
proxyConfiguration | none | Optional, under Advanced. Leave it alone unless you want the run to go out through a network of your own. |
maxItems is a total, not a per-search figure, so the first region in a long list can use the whole
allowance before the others get a turn.
📤 What you get back
A real row from a run on 21 September 2026, with the description, images and long links trimmed:
{"listingId": "8403263007","title": "iPhone 15, 128 ГБ, SIM + eSIM","description": "IPhone 15 128Gb Blue.\n\nУстройство после сервисного обслуживания...","price": 26990,"priceText": "26 990 ₽","currency": "RUB","priceWithoutDiscount": null,"discountPercent": null,"categoryId": 84,"categoryName": "Телефоны","categorySlug": "telefony","microCategoryId": 1104365,"locationId": 621630,"location": "Барнаул","address": "Алтайский край, Барнаул","addressLocality": "Барнаул","latitude": 53.356916,"longitude": 83.696808,"sellerName": "Скупка Store","sellerType": "company","sellerTypeText": "Компания","sellerUrl": "https://www.avito.ru/brands/6aa30742c61b481f75171d9173cf0c2f","sellerRating": 5,"sellerReviewsText": "5 отзывов","publishedAt": "2026-09-18T12:01:59.000Z","publishedAtText": "3 дня назад","images": ["https://20.img.avito.st/image/1/1.3TfI5raAcd6GTIvV_t3_b9NGc9p6UXXeejYQ2nq9eiR3..."],"imageCount": 4,"hasVideo": false,"isNew": false,"isVerified": false,"isReserved": false,"params": "Отличное","url": "https://www.avito.ru/barnaul/telefony/iphone_15_128_gb_sim_esim_8403263007","searchQuery": "iphone 15","searchUrl": "https://www.avito.ru/all?q=iphone%2015","scrapedAt": "2026-09-21T13:00:55.530Z"}
| Field | How to read it |
|---|---|
description | The preview Avito prints on the results page, cut off by Avito itself. Not the full ad body. |
price, priceText | The number of roubles, and Avito's own formatted string. price is null on ads with no price, and currency goes null with it. |
latitude, longitude, address | Only when the seller added them. Often null on electronics, usually filled on property and cars. |
sellerType | private or company, worked out from the label Avito prints under the seller's name. |
sellerRating | The key is absent, not null, when Avito sends no rating. Check for the key, not for a null. |
publishedAt | A real ISO timestamp, alongside Avito's own wording in publishedAtText. |
images | Every photo at the largest size Avito renders. imageCount is how many. |
params | The spec line Avito prints under the title, like Отличное. |
previousPrice | The crossed-out price Avito prints next to a discount. Avito does not show what a lowered price used to be, so after a plain price drop priceDropped is true and this stays null. |
pricePerM2 | A number, only where Avito prints a price per m², mostly flats for sale. normalizedPrice is Avito's own wording. |
nearbyPlaces | One entry per place: name, distance as Avito writes it, distanceM in metres, travelTime, and lineColors for a metro station (empty for a district). |
rooms, areaM2, floor, totalFloors | Read from the title of property ads. A studio has rooms 0. Free layout, and an ad for one room or bed in a shared flat, have rooms null; there areaM2 is what the ad offers. null on everything else. |
isPromoted | true when Avito marks the ad as paid for more visibility. |
sellerReviewCount | 0 when Avito says the seller has no reviews, null when it shows no review line. |
isUnderpriced, priceVsMedian | Only with flagUnderpriced on. priceVsMedian is in percent: -25 means a quarter under the median of the search. Rents are compared with rents. null when the search had under 10 priced ads. |
🧾 Reading the output
| Row | How to spot it | Billed |
|---|---|---|
| An ad | It has a listingId and no _sample or _diagnostic key | yes |
| The sample row | _sample: true and charged: false | no |
| A diagnostic | _diagnostic: true, charged: false and an errorCode | no |
Ad rows carry no charged field; only the sample and diagnostic rows do, set to false. The sample
row is a real Avito ad with a listingId of its own, so to keep only your results, drop every row
with _sample or _diagnostic.
| Code | What it means |
|---|---|
NO_RESULTS | That search returned nothing. |
BAD_INPUT | A URL that is not an Avito search or category link. |
NOT_SERVED | This ad was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED. |
BAD_RESPONSE | Avito answered with something this actor could not read. |
PROXY_GROUP_IGNORED | Part of the network settings you sent could not be used as given, so the run adjusted them and carried on. |
TIME_LIMIT | The run got close to its time limit, so it stopped searching and delivered the ads found up to then. Give it more time to get the rest. If none had come back yet, the run ends as failed. |
One bad search never stops the others, with one exception: if two searches come back with nothing before a single ad has been collected, the remaining searches are skipped instead of run.
💡 What people use it for
- Watching prices for one model in one city on a schedule, with
publishedAtfor what is new andlistingIdto see what sold. - Listing the businesses selling in a category, using
sellerTypeto keep the shops and dealers and drop private sellers. - Property and car research, where
latitudeandlongitudeare usually filled and you can map the results directly. - Comparing one search across several regions in a single run.
From a category to a dealer's whole stock, in three steps:
- Run this on a category and city with
sellerTypeset tocompany. - Copy the
sellerUrlof the dealers you care about. - Paste them into Seller profile links in Avito Seller Listings & Profile Scraper for everything each one has up.
🚧 What it does not do
- No phone numbers. Avito keeps them behind an interaction this does not perform.
descriptionis the preview, not the ad. Avito truncates it on the results page and that is what comes back.- Coordinates depend on the seller. No seller-supplied location means no
latitude,longitudeor streetaddress. - 5,000 per search is Avito's ceiling, not ours. Past page 100 Avito sends you back to page 1.
- Seller type is read off a label, so an unfamiliar label is treated as a business.
- Rows arrive at the end. Everything is collected first and written when the searches finish, so a very large run has nothing in the dataset until it is done.
- A big run can come back short. A page Avito will not serve becomes an uncharged diagnostic rather than a gap passed off as a complete result.
- It is not an official Avito tool. Dami's Studio is independent and is not affiliated with or endorsed by Avito, or by any other company named on this page.
🧭 Which Russian-market scraper do you need?
| If you want | Use |
|---|---|
| Ads from a search, a category or a city on Avito | This one |
| Everything one Avito seller has listed, plus their profile | Avito Seller Listings & Profile Scraper |
| Reviews for a place on Yandex Maps | Yandex Maps Reviews Scraper |
| Businesses and their details from 2GIS | 2GIS Places Scraper |
| Reviews from 2GIS | 2GIS Reviews Scraper |
❓ Questions people ask
Do I need an Avito account?
No. Nothing to register and no cookies to paste.
Can I search Avito in English?
The search text goes to Avito as you typed it, and Avito's index is Russian, so English terms return little. Region and category names do accept English.
Why are listings from other cities in my Moscow search?
They are not, if Stay inside the chosen region is on. If you turned it off, that is Avito's own behaviour: it ranks your region higher rather than restricting to it.
How do I get more than 5,000 ads for one search?
Split it. Several regions, several price bands, or narrower categories, all in the same run.
Why is sellerRating missing rather than null?
Because Avito sent no rating for that seller. Test for the key rather than for a null value.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made
code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/avito-listings-scraper. Either way the
run happens on your Apify account at the same price.
Is scraping Avito legal?
These are public ads. They carry personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the search or the URL you used and the run ID; the
errorCode on the diagnostic row usually names the problem on its own.