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

Avito Listings Scraper

Scrape Avito.ru listings: id, title, price, category, city, seller name and type, publish date, photos. Filter by region, price and seller.

69 runs on Apify
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, region, category (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.

Inputs

FieldWhat it doesType
queryWhat to search for, in Russian — for example "iphone 15", "диван", "велосипед". Leave empty to browse a whole category.string
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
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
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
sortAvito's own ordering. "Default" is its relevance ranking, which puts promoted listings first.string
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
minPriceOptional lower price bound, in roubles.integer
maxPriceOptional upper price bound, in roubles.integer
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

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.

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: title, price, currency, location, link, photo, posted date, sold status. No login or cookies.

Ready to run — no setup

Zillow Scraper iconReal Estate & Classifieds

Zillow Scraper

Zillow scraper at $0.0008 per property plus a $0.001 run start. Search results and full listing details: price, beds, baths, sqft, photos, price history.

Ready to run — no setup

Realtor.com Scraper iconReal Estate & Classifieds

Realtor.com Scraper

Scrape Realtor.com listings as JSON: address, price, beds, baths, sqft, lot size, year built, days on market, agent, broker, photos, coordinates.

Ready to run — no setup

Craigslist Scraper iconReal Estate & Classifieds

Craigslist Scraper

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

Ready to run — no setup

Airbnb Listings Scraper iconTravel, Hotels & Events

Airbnb Listings Scraper

Scrape Airbnb search results by location, dates and guest count: listing ID, name, room type, price, rating, reviews and host. No account or API key.

Ready to run — no setup

See all Real Estate & Classifieds →

Avito Listings Scraper API

Scrape classified listings from Avito.ru, Russia's largest classifieds site. Give it a search term, a category, a city, or just paste an Avito search URL, and it returns structured rows: listing id, title, description, price, category, city and street address, coordinates, seller name and seller type, publish date, every photo URL, and the listing link.

$0.30 per 1,000 listings. A flat rate — no volume tiers to unlock and no plan gates, and the same price on your first run as on your millionth.

What you get

One row per listing:

fieldexample
listingId8016198496
titleLand Rover Range Rover 4.4 AT, 2026
descriptionfirst ~250 characters of the seller's text
price / priceText38250000 / 38 250 000 ₽
currencyRUB
priceWithoutDiscount, discountPercentset when Avito shows a markdown
categoryId / categoryName / categorySlug9 / Автомобили / avtomobili
microCategoryId23887
locationId / location637640 / Москва
address / addressLocalityМосква, Крылатское / Москва
latitude / longitude55.765888 / 37.403989
sellerNameА1 АВТО
sellerTypeprivate or company
sellerTypeTextAvito's own words: Автодилер, Компания, Агентство
sellerUrlhttps://www.avito.ru/brands/a1auto
sellerRating, sellerReviewsText4.5, 60 отзывов — when Avito shows them
publishedAt2026-07-31T10:49:16.000Z
images / imageCountarray of full-size photo URLs / 21
isNew, isVerified, isReserved, hasVideobooleans
params4.4 AT (615 л.с.), внедорожник, полный, бензин
urllink to the listing

Not every field is set on every listing, because Avito does not show every field on every ad. Measured on the runs below: publishedAt, images and url were present on 100% of rows; latitude/longitude on 100% of property rows but 57% of phone rows; sellerName on 41% of property rows, because Avito shows no name for most private sellers. Missing values are null, never invented.

Input

Fill in the form, or paste URLs — both end up in the same place.

{
  "query": "iphone 15",
  "region": ["Moscow"],
  "category": ["phones"],
  "maxItems": 500,
  "sort": "newest",
  "sellerType": "private",
  "minPrice": 20000,
  "maxPrice": 60000
}
{
  "searchUrls": ["https://www.avito.ru/sankt-peterburg/kvartiry/sdam?pmin=30000&pmax=60000"],
  "maxItems": 120
}

region and category accept English names (Moscow, Saint Petersburg, cars, flats, jobs), Russian names (Москва, автомобили), or the raw slug out of any Avito URL (moskva, kvartiry/prodam). Anything not in the built-in alias table is passed through as a slug, so every one of Avito's thousands of sub-categories works.

Run it with empty input and you get one clearly-labelled sample row, free. Nothing is charged until you ask for a real search.

Real numbers from real runs

Measured on the Apify platform, 2026-08-09:

runlistingswall timeplatform cost
empty input (sample)0 charged2.2 s$0.00018
iphone 15, Moscow55.7 s$0.00040
flats to rent, St Petersburg, from a pasted URL12016.2 s$0.00158
cars, Moscow25026.6 s$0.00284
cars, Moscow100090.7 s$0.01033

About 11 listings per second. Every run above returned exactly the number of rows requested, with zero pages refused.

Two things about Avito worth knowing before you run it

1. A region is a suggestion, not a filter. Search Moscow and read page 1 and you get Moscow. Read page 50 of the same search and most of it is Kaluga, Tver, Smolensk and Bryansk — Avito pads a region search with neighbouring ones and does not tell you. This actor sends Avito's own localPriority flag so you only get the region you asked for. It is on by default; the Stay inside the chosen region checkbox turns it off if you want Avito's mixed behaviour.

2. Any single search stops at 5,000 listings. Avito's pager always ends at page 100 and 50 listings a page, no matter that it reports 81,801 matches. Ask for page 101 and it answers HTTP 200 with a redirect back to page 1 — which is how a naive scraper ends up billing you for the same first 50 rows over and over. This one detects that and stops. To go past 5,000, split the search: by city, by price band (minPrice/maxPrice), or into sub-categories.

What this does not do

  • No phone numbers. Avito hides seller phone numbers behind a logged-in click. They are not in

the search results and this actor does not try to get them.

  • No full ad text. The description is the preview Avito puts in search results, roughly the

first 250 characters. Opening each ad for the complete text would be a separate request per listing and would cost you many times more.

  • Seller type comes from Avito's own labelling. Avito prints a business line ("Компания",

"Автодилер", "Агентство") on business accounts and nothing on private ones, and that is what sellerType reflects. It is also why the actor re-checks every row when you filter by seller type — Avito silently ignores its own user= parameter in some categories, notably cars, so rows that do not match are dropped and never charged.

  • No listing history, no price history, no sold-date.
  • Not a seller-profile scraper. You get the seller's name and profile URL, not their full

catalogue.

Reliability

Avito sits behind Qrator and rate-limits by IP address. The actor handles this itself: it retries, and falls back from the plain Apify container address to rotating Apify datacentre sessions when an address has been throttled. Not one page was refused across the 29 pages the runs above read. If a run does get refused, it writes uncharged diagnostic rows explaining what happened rather than returning an empty dataset silently — and it stops early instead of spending your money retrying.

You can supply your own proxy in proxyConfiguration if you have Russian exit addresses, but you do not need one.

Pricing

eventprice
Actor start$0.0025 per run
Listing scraped$0.0003 each — $0.30 per 1,000

Sample rows, diagnostic rows, duplicates and rows dropped by the seller-type filter are not charged. A 1,000-listing run costs $0.3025.

FAQ

How do I scrape Avito.ru? Run this actor with a search term, a category, or a pasted Avito search URL. It reads Avito's own server-rendered search results and returns structured JSON, CSV or Excel. No account, no API key and no proxy of your own is needed.

Is there an official Avito API? Yes, but not for this. api.avito.ru is an OAuth API for sellers and advertisers to manage their own ads and read their own stats. It does not let you search the public catalogue. This actor reads the public site instead.

How many Avito listings can I get in one run? Up to 5,000 per individual search, which is Avito's own pagination ceiling, and up to 50,000 per run across several searches. Add regions, categories or price bands to widen it: ten cities is ten searches and up to 50,000 listings.

Can I filter by price, city or seller type? Yes — minPrice, maxPrice, region and sellerType. Price and region are applied by Avito; seller type is applied by Avito where it works and re-checked here where it does not.

Can I get sellers' phone numbers? No. Avito requires a logged-in session and a click to reveal a phone number. This actor does not log in and does not collect phone numbers.

Does it work for cars, flats and jobs, or only goods? All of them. avtomobili, kvartiry, vakansii, nedvizhimost, rabota and every other Avito category work, because the actor uses Avito's own URL structure. Cars and property listings also come back with coordinates.

What does it cost to scrape 10,000 Avito listings? $3.00 in listing charges plus $0.0025 for the run — $3.0025 total.

How current is the data? Live. Every run reads Avito at that moment; publishedAt is the listing's own timestamp and scrapedAt is when the row was read.

What if Avito blocks the run? You get uncharged diagnostic rows saying which pages were refused, not an empty dataset. Re-running usually lands on a different address and works. You are never charged for a listing you did not get.