Avito Scraper - Avito.ru Listings, Prices, Sellers & Rentals avatar

Avito Scraper - Avito.ru Listings, Prices, Sellers & Rentals

Pricing

$3.50 / 1,000 avito listings

Go to Apify Store
Avito Scraper - Avito.ru Listings, Prices, Sellers & Rentals

Avito Scraper - Avito.ru Listings, Prices, Sellers & Rentals

Avito scraper for avito.ru: search by keyword, city, category or URL and get every ad as a row with title, price in roubles, private or business seller, location, coordinates and photos. For price research, dealer monitoring and rental tracking across Russia. No login or API key.

Pricing

$3.50 / 1,000 avito listings

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

3

Monthly active users

16 days ago

Last modified

Share

Avito Scraper - listings, prices and sellers from Russia's biggest classifieds site

This Avito scraper exports listings from avito.ru by search term, category, city or URL, and gives you the title, the asking price in roubles, the seller type, the location with coordinates and the full photo set as clean rows in JSON, CSV or Excel. It reads the same result pages a shopper sees, so an Avito price tracker built on it sees what buyers see rather than what an API decides to publish. Use it for price research, dealer monitoring and rental tracking across Russia, without an account, cookies or an Avito API key.

What you get

  • Up to 50 listings per search page, paged automatically until your row limit
  • Listing id, title and canonical URL with Avito's tracking query stripped off
  • Asking price as a number in roubles plus the price exactly as printed, the struck-through price and the discount percentage when a seller is cutting
  • City or region, the finer address line Avito prints, and latitude and longitude for every advert that carries them
  • Private-seller versus business flag, verified flag and reserved flag
  • Every photo at the widest size Avito serves, plus the photo count
  • Category name and category slug, so a result row feeds straight back in as the input of a narrower run
  • On rows read from a listing URL: the full advert text, the seller name, availability, new-or-used condition and the category breadcrumb path
  • A run summary that separates "this search found nothing" from "the site did not serve us", because in a dataset those two look identical and mean completely different things

Why scrape Avito with an Avito scraper

Avito is the default second-hand and small-business marketplace in Russia, and for most categories it is the only price signal that exists at scale. There is no public Avito API for listing data. The official developer programme is aimed at sellers managing their own adverts, not at anyone who wants to see the market, so pricing research, competitor monitoring and supply tracking all come down to reading the site.

That matters more on classifieds than on a retail catalogue. A retailer publishes one price per product. Avito publishes a distribution: the same phone model is listed forty times at forty prices, by private sellers and by shops, in cities with very different price levels. The useful number is not any single advert, it is the spread and how it moves, and you only get that by collecting the whole result page and paging through it.

The rental side works the same way. Avito carries a very large share of Russian long-term and short-term rental supply, and category and city slugs let you pull one neighbourhood's flats the same way you would pull one model of phone. Because every row carries coordinates when the advert has them, rental and vehicle data map directly without a geocoding step.

Avito Scraper input

FieldTypeRequiredWhat it does
querystringnoWhat to search for, Russian or Latin script
locationstringnoCity or region slug from an Avito URL, all for the whole country
categorystringnoCategory slug, for example telefony, kvartiry, avtomobili
searchUrlsarraynoFull Avito search URLs, used instead of the fields above
listingUrlsarraynoIndividual advert URLs to read one at a time
priceMinintegernoLowest price in roubles
priceMaxintegernoHighest price in roubles
sortselectnoRelevance, newest first, cheapest first, most expensive first
sellerTypeselectnoAny seller, private only, or companies only
onlyWithPhotobooleannoSkip adverts with no photograph
maxItemsintegernoStop after this many listings, default 50

The slugs are the ones in Avito's own URLs. If a browser shows you avito.ru/moskva/telefony, then moskva is the location and telefony is the category. If you would rather not think about slugs at all, paste the whole search URL into searchUrls and every filter you set in the browser is kept.

Output

The following is a real response fetched on 5 October 2026.

{
"id": "7924194781",
"title": "iPhone 13, 256 ГБ, SIM + eSIM",
"url": "https://www.avito.ru/moskva/telefony/iphone_13_256_gb_sim_esim_7924194781",
"price": 28900,
"price_text": "28 900 ₽",
"price_without_discount": null,
"discount_percent": null,
"currency": "RUB",
"category": "Телефоны",
"category_slug": "telefony",
"region": null,
"address": "",
"latitude": null,
"longitude": null,
"is_company": null,
"is_verified": false,
"is_reserved": false,
"images": [
"https://80.img.avito.st/image/1/1.E5ZfjraAv38RJEV0dfY_xmguvXvtObt_7V7ee-3VtIXgLbtlESRFdOk.Dj5UfLmGDvhCmTzUI0P_e1vij53ez4ZSxtP6YR-A_Fc",
"https://b40.img.avito.st/image/1/1.KW_BLbaAhYaPh3-Nn1kmOvaNh4JzmoGGc_3kgnN2jnx-joGcj4d_jXc.2ACzlMb_hfDGXzaI1ttRpNa4Xt-rZckvtULGYAINPM0",
"https://20.img.avito.st/image/1/1.FOQLgLaAuA1FKkIGL9g1tDwgugm5N7wNuVDZCbnbs_e0I7wXRSpCBr0.DCo7-MnjnjR3J-nn7kg4NsuHGvbIVU4lNG_w0_uQl6A?cqp=2.2LhnDdKx1gU5sZ7QAbwhSdJoeYt5K_KL9JwGcCXpGrDVbBxJ1yJf9Jn7hY3rGWaiHtSha9zz1w==",
"https://90.img.avito.st/image/1/1.4wgzfraAT-F91LXqeRHlXQTeTeWByUvhga4u5YElRBuM3Uv7fdS16oU.LOJ0PaQGpA2LdivwOPFoxKjBAiwmyULoJAcUI_5GfY4",
"https://90.img.avito.st/image/1/1.BFcBgLaAqL5PKlK1BfQNATYgqrqzN6y-s1DJurPbo0S-I6ykTypStbc.Gr7C25mzmHIXkWeQi9HDhTWyt0w7cp8KvLByZmraNOc"
],
"image_count": 7,
"attributes": [],
"listed_at_ms": 1788937729000,
"found": true,
"blocked": false,
"listing_id": "7924194781",
"image_url": "https://80.img.avito.st/image/1/1.E5ZfjraAv38RJEV0dfY_xmguvXvtObt_7V7ee-3VtIXgLbtlESRFdOk.Dj5UfLmGDvhCmTzUI0P_e1vij53ez4ZSxtP6YR-A_Fc",
"source": "avito-scraper",
"country": "RU",
"fetched_at": "2026-10-05T01:32:57.916Z",
"position": 1
}

Rows read from listingUrls include description, seller, availability, condition and breadcrumbs. Search-only fields such as coordinates are not present on detail rows. latitude and longitude remain strings on search rows; price is numeric and id remains a string or null. Each row also includes listing_id, source, country, fetched_at and its position.

Use cases for the Avito scraper

Price research before you buy or list. If you are pricing stock to sell on Avito, the question is never "what is this worth" but "what is the tenth-cheapest comparable advert asking today". Pull one category in one city sorted by price, take the distribution, and you have a listing price that will actually move. Run it weekly and you have the trend, which is the part a single lookup on the site can never give you.

Competitor and dealer monitoring. The seller-type filter splits genuine second-hand supply from business inventory in one input. Electronics resellers, car dealers and furniture shops all list on Avito under business accounts, so restricting a category to companies gives you a clean view of who is stocking what, at what price, in which cities, without the noise of private adverts.

Rental and property tracking. Property analysts use Avito the way their western counterparts use portals that publish an API. Category and city slugs narrow a run to one neighbourhood, newest-first sorting turns it into a feed of new supply, and the coordinates on each row drop straight onto a map. Because listings disappear when they let, tracking the same search over time also tells you how fast stock is moving.

Sourcing and arbitrage. Regional price gaps on Avito are real and large. The same item is routinely cheaper several time zones away from Moscow. Running one query across several city slugs and comparing the medians is a spread report you can act on, and the rows carry everything you need to contact the seller.

Avito Scraper vs. the Avito API and DIY parsers

There are three other ways to get Avito data, and each one stops short of a market view.

OptionWhat you getWhere it stops
Copying adverts by handExactly what is on screenA few dozen adverts before it becomes a job; no history
Avito's official API for sellersYour own adverts, statistics and messagesNo access to other sellers' listings, so no market prices
An open-source Avito parser from GitHubFull control over the codeYou maintain it every time the page changes, and you handle refused reads and paging yourself
This Avito scraperEvery listing of a search as a row, paged and de-duplicated, with a run summaryRussia only (avito.ru), and only what Avito shows publicly

If you already run your own парсер Авито (Avito parser), the output here is a drop-in replacement: one row per advert with stable field names, so the step from "it broke again" to "it runs every morning" is an input form rather than a rewrite. Because the actor runs on Apify, you can schedule it, call it through the Apify API from Python or JavaScript, and push the results to Google Sheets, a webhook or your own database with the integrations Apify already offers.

How to scrape Avito in three steps

  1. Open Avito in your browser and set up the search you want: city, category, price range, sort order. Copy the URL from the address bar.
  2. Paste that URL into searchUrls, or fill in query, location and category instead, and set maxItems to the number of listings you need.
  3. Start the run and download the dataset as JSON, CSV or Excel, or read it through the API. Schedule the same input daily to build a price history.

Pricing

There is no start fee. Empty searches, refused reads and removed listings are free. Only rows with found: true are billed.

Billing is pay-per-event at $0.0035 per listing delivered. A refused read costs nothing: if the site does not serve us, you get a row saying so and no charge for it. All pricing is pay-per-event — you only pay for results you receive. No actor-start fee, no per-compute-unit charges.

Limits and gotchas

  • Avito serves Russia. Prices are in roubles and there is no other currency.
  • One search page holds 50 listings. A maxItems of 500 is ten pages, and each page is a separate request, so a large run takes minutes rather than seconds.
  • Avito's result ordering is not stable between requests. Two runs of the same search minutes apart can return the same listings in a different order, and a small number of adverts may appear on the boundary between two pages. Rows are de-duplicated by listing id within a run.
  • priceMin, priceMax, sort, sellerType and onlyWithPhoto apply to the search-term path. If you paste a URL into searchUrls, whatever is in that URL wins, which is the point of pasting it.
  • Advert text, seller name and condition are only on the listing page, so they appear on rows produced from listingUrls, not on search rows.
  • Some adverts name no price at all. Those rows arrive with price empty rather than zero, so that a missing price is never mistaken for a free item.
  • The site refuses some requests. The actor retries, and if every attempt is refused you get a row with blocked set and the run summary says siteRefusedUs. Treat that as "come back later", not as "no such listings".

FAQ

What happens when I provide only listing URLs? Only those adverts are read. The default location does not add an unrelated recommendation feed. If you also provide a query or search URLs, search results use the shared row budget first and listing URLs use the remainder.

How do large searches work? Set maxItems between 1 and 2,000. The actor follows result pages automatically and de-duplicates listing ids across them. Non-paying Apify users receive at most ten rows per run. A genuinely empty search returns no dataset rows and its run completes successfully. Removed listing URLs can return a free diagnostic row with found: false and blocked: false.

Can I scrape Avito without an API key? Yes. There is no public Avito API for listing data, and this actor needs no key, no account and no cookies from you. You give it a search and it returns rows.

How do I get Avito listings for a specific city? Put the city slug from an Avito URL into location, for example moskva, sankt-peterburg or novosibirsk. Use all to search the whole country, which is the default.

Can I scrape Avito rental and property listings? Yes. Use the property category slug, for example kvartiry, together with a city slug. Every row carries coordinates when the advert has them, so rental data maps without a separate geocoding step.

How do I filter Avito results by price? Set priceMin and priceMax in roubles. They are applied by Avito itself as part of the search rather than after the fact, so paging stays efficient.

Is there an official Avito API for listing data? Avito's developer portal serves sellers managing their own adverts: posting, statistics, messages. It does not return other sellers' listings, so it cannot answer "what does this item sell for". This Avito scraper fills that gap and is itself an API: start a run over the Apify API and fetch the rows as JSON.

Can I export Avito listings to CSV or Excel? Yes. Every run stores its rows in an Apify dataset that downloads as JSON, CSV, Excel, XML or HTML, and the same data is available through the API.

Does it work for Avito Morocco (avito.ma)? No. This actor reads avito.ru only. Prices are always in roubles.

Why did my Avito run return no listings? Check the run summary. emptySearch true means the search genuinely matched nothing, usually a typo in a slug. siteRefusedUs true means the site did not serve the result set on that run and the same search is worth re-running.