Avito Listings Scraper API avatar

Avito Listings Scraper API

Pricing

Pay per event

Go to Apify Store
Avito Listings Scraper API

Avito Listings Scraper API

Scrape Avito.ru classified ads by search term, category, city, or a pasted Avito URL. Each row: listing id, title, price, category, city, address, coordinates, seller name and type, publish date, photos and link. $0.30 per 1,000 listings - the lowest per-listing price of any Avito scraper on Apify.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

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. That is the lowest per-listing price of any Avito scraper on the Apify Store — checked against all 29 of them, at their cheapest tier, not just their headline price. The next cheapest is $0.40/1,000 and it also charges $0.10 to start every run. The widely-used ones are $3.00–$4.99 per 1,000.

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.