Avito Listings Scraper avatar

Avito Listings Scraper

Pricing

from $0.29 / 1,000 listings

Go to Apify Store
Avito Listings Scraper

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

Dami's Studio

Maintained by Community

Actor stats

1

Bookmarked

135

Total users

58

Monthly active users

3 hours ago

Last modified

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.

InputRussian search terms, or Avito search and category URLs
OutputOne row per ad: title, price in roubles, category, city and address, seller name and type, publish date, photos and link
Ceiling5,000 ads per search, Avito's own cap. 50,000 per run across searches
SpeedRuns of 11 to 201 ads finished in 4 to 37 seconds
Account neededNone
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 getField
Ad id, title, link and the preview textlistingId, title, url, description
Price, Avito's formatted price, the currency and any discountprice, priceText, currency, priceWithoutDiscount, discountPercent
CategorycategoryId, categoryName, categorySlug, microCategoryId
Where it is: city, address and coordinates when the seller gave themlocationId, location, address, addressLocality, latitude, longitude
The seller: name, private or business, link, rating and reviewssellerName, sellerType, sellerTypeText, sellerUrl, sellerRating, sellerReviewsText
When it was publishedpublishedAt, publishedAtText
Photos and videoimages, imageCount, hasVideo
Avito's badges and the spec line under the titleisNew, isVerified, isReserved, params
Which of your searches found itsearchQuery, searchUrl
A lowered price, and the crossed-out price next to a discountpriceDropped, previousPrice
Price per square metre, where Avito prints onenormalizedPrice, pricePerM2
Metro stations and places nearby, with distance and walking timenearbyPlaces
Badges as text, on the ad and on the seller, and whether the ad is promotedbadges, sellerBadges, isPromoted
The seller's id and number of reviewssellerId, sellerReviewCount
Whether Avito delivery is offeredhasDelivery
Region slug and the category breadcrumbregionSlug, categoryPath
Property ads: the complex name, rooms, area and floordevelopmentName, rooms, areaM2, floor, totalFloors
How the price compares with the rest of the search (optional)isUnderpriced, priceVsMedian

▶️ How to scrape Avito listings

  1. Open Avito Listings Scraper and click Try for free.
  2. Type your Russian search into Search terms, or paste links into Avito search URLs.
  3. Open Narrow it down to set a region, a category, the seller type or a price band.
  4. Set Maximum listings under Limits. Around 20 is enough to see what the rows look like.
  5. 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
}
FieldDefaultWhat it is
querynoneWhat to search for, in Russian. Leave it empty to browse a whole category.
searchUrlsnoneAvito search or category URLs pasted straight from the site, instead of filling in the fields. Every filter in a link is kept.
regionnoneRegion or city, by English name, Russian name or URL slug. Empty means the whole of Russia. Several means one search each.
categorynoneCategory, by English name, Russian name or URL slug, such as cars, phones, flats for sale, flats to rent or rooms. Empty means every category.
sellerTypeanyprivate or company to keep only one kind. Mismatched ads are dropped uncharged.
localOnlytrueKeeps results to the chosen region.
sortdefaultAvito'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, maxPricenonePrice bounds in roubles.
maxItems100Total ads across every search in the run, up to 50,000.
flagUnderpricedfalseMarks ads priced 20% or more under the median of their own search. Needs at least 10 priced ads in that search.
proxyConfigurationnoneOptional, 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"
}
FieldHow to read it
descriptionThe preview Avito prints on the results page, cut off by Avito itself. Not the full ad body.
price, priceTextThe 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, addressOnly when the seller added them. Often null on electronics, usually filled on property and cars.
sellerTypeprivate or company, worked out from the label Avito prints under the seller's name.
sellerRatingThe key is absent, not null, when Avito sends no rating. Check for the key, not for a null.
publishedAtA real ISO timestamp, alongside Avito's own wording in publishedAtText.
imagesEvery photo at the largest size Avito renders. imageCount is how many.
paramsThe spec line Avito prints under the title, like Отличное.
previousPriceThe 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.
pricePerM2A number, only where Avito prints a price per m², mostly flats for sale. normalizedPrice is Avito's own wording.
nearbyPlacesOne 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, totalFloorsRead 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.
isPromotedtrue when Avito marks the ad as paid for more visibility.
sellerReviewCount0 when Avito says the seller has no reviews, null when it shows no review line.
isUnderpriced, priceVsMedianOnly 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

RowHow to spot itBilled
An adIt has a listingId and no _sample or _diagnostic keyyes
The sample row_sample: true and charged: falseno
A diagnostic_diagnostic: true, charged: false and an errorCodeno

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.

CodeWhat it means
NO_RESULTSThat search returned nothing.
BAD_INPUTA URL that is not an Avito search or category link.
NOT_SERVEDThis ad was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED.
BAD_RESPONSEAvito answered with something this actor could not read.
PROXY_GROUP_IGNOREDPart of the network settings you sent could not be used as given, so the run adjusted them and carried on.
TIME_LIMITThe 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 publishedAt for what is new and listingId to see what sold.
  • Listing the businesses selling in a category, using sellerType to keep the shops and dealers and drop private sellers.
  • Property and car research, where latitude and longitude are 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:

  1. Run this on a category and city with sellerType set to company.
  2. Copy the sellerUrl of the dealers you care about.
  3. 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.
  • description is 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, longitude or street address.
  • 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 wantUse
Ads from a search, a category or a city on AvitoThis one
Everything one Avito seller has listed, plus their profileAvito Seller Listings & Profile Scraper
Reviews for a place on Yandex MapsYandex Maps Reviews Scraper
Businesses and their details from 2GIS2GIS Places Scraper
Reviews from 2GIS2GIS 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.

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.

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.

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.