Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Avito Listings Scraper icon

Avito Listings Scraper

Scrape Avito.ru listings by keyword, category or city. Get id, title, price, seller name and type, publish date and photos. $0.30 per 1,000 listings.

5 from 2 reviews on Apify 9,731 runs on Apify $0.0003 per listing ($0.3 / 1,000)
Run this in the cloudRun on Apify →

Real Estate & Classifieds

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust query, searchUrls, sellerType (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0003 per listing = $0.3 per 1,000

You are charged forWhenPrice
Listing scrapedOne Avito listing returned in the dataset. Sample rows, diagnostics, and listings dropped because they did not match the seller-type filter are never charged.$0.0003

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-09, and they are what you are actually charged.

Inputs

FieldWhat it doesType
queryWhat to search for, in Russian, for example "iphone 15", "диван", "велосипед". Leave empty to browse a whole category.string
searchUrlsOptional. Paste Avito search or category URLs instead of filling in the fields above, e.g. https://www.avito.ru/moskva/avtomobili?cd=1&pmin=500000. The region, category, search text, price range, seller type and sort order in the URL are all read.array
sellerTypeReturn only private sellers or only businesses (shops, dealers, agencies). Avito ignores its own seller filter in some categories, so the actor also checks every row and drops the ones that do not match, dropped rows are never charged.string
localOnlyOn by default. Avito treats a region as a relevance boost rather than a filter: on page 50 of a Moscow search, most listings are actually from Kaluga, Tver and Smolensk. This sends Avito's own localPriority flag so only the chosen region comes back. Turn it off to get Avito's default mixed results.boolean
regionAvito region, by English name ("Moscow", "Saint Petersburg", "Kazan"), Russian name ("Москва"), or the slug from an Avito URL ("moskva", "sankt-peterburg", "moskovskaya_oblast"). Leave empty for the whole of Russia. Add several to run one search per region.array
categoryAvito category by English name ("cars", "phones", "flats", "jobs", "furniture"), Russian name ("автомобили"), or the slug from an Avito URL ("avtomobili", "kvartiry/prodam"). Leave empty to search every category.array
sortAvito's own ordering. "Default" is its relevance ranking, which puts promoted listings first.string
minPriceOptional lower price bound, in roubles.integer
maxItemsHow many listings to return in total across all searches. Each returned listing is one charged result. Avito caps any single search at 5,000 listings (100 pages of 50), add regions, price bands or sub-categories to go past that.integer
maxPriceOptional upper price bound, in roubles.integer

What you get

A structured dataset — each result includes fields like:

listingIdtitlepricepriceTextcategoryNamelocationaddresssellerNamesellerTypepublishedAtimageCounturl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

1 ready-to-run use cases

Avito Cheapest Private-Seller Listings

Search Avito for private-seller listings sorted cheapest first. Get price, title, location, date and link.

Related tools in Real Estate & Classifieds

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Facebook Marketplace Scraper iconReal Estate & Classifieds

Facebook Marketplace Scraper

Scrape Facebook Marketplace listings by keyword and city. Rows carry title, price, currency, location, link, posted date, sold status.

Ready to run — no setup

Zillow Scraper iconReal Estate & Classifieds

Zillow Scraper

Scrape Zillow search results and full listing details: price, beds, baths, sqft, photos, price history, schools. No login or API key. $0.0008 per property.

1 use cases

Realtor.com Scraper iconReal Estate & Classifieds

Realtor.com Scraper

Realtor.com listings as JSON, by city, ZIP or county. Fields: address, price, beds, baths, sqft, year built, days on market, agent, broker. $0.68/1k.

Ready to run — no setup

Craigslist Scraper iconReal Estate & Classifieds

Craigslist Scraper

Scrape Craigslist listings by city, category and keyword: id, title, price, neighborhood, date, images and URL. No account or API key. $0.85 per 1,000.

1 use cases

Airbnb Listings Scraper iconTravel, Hotels & Events

Airbnb Listings Scraper

Scrape Airbnb listings by location, dates and guests. Get listing ID, name, room type, price, rating, reviews and host. No account, no API key.

Ready to run — no setup

See all Real Estate & Classifieds →

Avito Listings Scraper: ads from Avito.ru by search, category, city or a URL you paste

Type a Russian search term, or paste an Avito search URL, and each ad comes back as a row: id, title, price in roubles, category, city and address, seller name and whether they are private or a business, publish date, photos and the link. No account, no cookies, nothing to install.

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 sends Avito's own localPriority flag so a chosen region really is a 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
Ceiling5,000 ads per search, Avito's own cap. 50,000 per run across searches
Account neededNone, and nothing to install
Price$0.30 per 1,000 ads, flat on every plan

🏷️ 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, and the region, category, search text, price range, seller type and sort inside each one are read straight off the link.

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. Put several regions in and you get one search per region, with duplicate ads counted only once.

One thing to watch with pasted URLs: the form's Sort order wins over a sort inside the URL. If your link already carries one, set the sort field to match it.

The seller filter is checked twice, because Avito ignores its own user= 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 you give it

{
  "query": "iphone 15",
  "region": ["Moscow"],
  "category": ["phones"],
  "sellerType": "private",
  "localOnly": true,
  "sort": "newest",
  "minPrice": 20000,
  "maxItems": 100
}
FieldDefaultWhat it is
querybox starts at iphone 15What 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.
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. Empty means every category.
sellerTypeanyprivate or company to keep only one kind. Mismatched ads are dropped uncharged.
localOnlyonSends Avito's own region flag so a chosen region really is a filter.
sortdefaultAvito's own ordering. default is relevance, which puts promoted ads first. Also newest, cheapest, expensive.
minPrice, maxPricenonePrice bounds in roubles.
maxItemsbox starts at 100Total ads across every search in the run, up to 50,000.
proxyConfigurationleave it aloneOptional, under Advanced. Only if you want the run to go out through a particular 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 recent run, 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"
}
FieldWhat it is
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 Отличное.
searchQuery, searchUrlWhich of your searches produced this row.

🧾 Reading the output

RowHow to spot itBilled
An adIt has a listingIdyes
The sample row_sample: true and charged: falseno
A diagnostic_diagnostic: true, charged: false and an errorCodeno

Ad rows carry no charged field at all. The flag exists only on the sample and diagnostic rows, to mark them as not real results. Filter on listingId being present.

CodeWhat it means
NO_RESULTSThat search returned nothing.
BAD_INPUTA URL that is not an Avito search or category link.
BLOCKEDAvito refused a page. The row names which page number it stopped on.
BAD_RESPONSEAvito answered with something this actor could not read.
PROXY_GROUP_IGNOREDPart of the advanced 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.

▶️ How to run it

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. Start around 20 to see what the rows look like. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.30 per 1,000 ads. Flat on every Apify plan, with no volume tiers.

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 people use it for

  • Watching prices for one model in one city, on a schedule, with publishedAt for what is new.
  • Building a lead list of businesses 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 the same search across several regions in one run, since every row says which search

produced it.

  • Tracking how long stock sits, by re-running and diffing on listingId.

🚧 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.

Split by region, price band or sub-category to get more.

  • 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. Avito rate-limits hard, and a page it will not serve becomes an

uncharged diagnostic rather than a gap passed off as a complete result. Only delivered ad rows are billed.

🧭 Which Russian-market scraper do you need?

If you wantUse
Ads from a search, a category or a cityThis one
Everything one 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

Can I search 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 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 schedule it? Yes. listingId is stable, so diffing one run against the next shows what appeared and what sold.

Is this 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 scraping and the law 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.