Avito Seller Listings & Profile Scraper
Pricing
from $0.29 / 1,000 listings
Avito Seller Listings & Profile Scraper
Paste up to 10 Avito seller profile links and get each seller's active listings as rows: title, price, category, city, photos and link, with the seller's name, private or business, member-since date, rating, reviews and subscribers on every row. $0.30 per 1,000 listings.
Pricing
from $0.29 / 1,000 listings
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Paste up to 10 Avito seller profile links and get every active listing as a row: title, price, category, city, photos and the link, with the seller's own details on every row: name, private or business, member-since date, rating, review count, subscribers, active and closed listing counts, and their badges.
The ceiling first, because it surprises people. Avito stops showing a seller's grid at page 100. That is 1,200 listings on the 12-per-page layout and 1,500 on the 15-per-page one, and it is Avito's limit, not a setting here. A seller with 7,467 active listings still ends at 1,200. And on big ranked grids the pages shuffle while they are read, so some listings never show up at all.
| Input | Avito seller profile links, up to 10 per run |
| Output | One row per active listing with the seller's profile on it: name, type, member since, rating, reviews, subscribers, listing counts and badges |
| Ceiling | Page 100 per seller, so 1,200 or 1,500 listings depending on the layout |
| Account needed | None from you |
| Price | $0.30 per 1,000 listings, flat on every plan. The free plan's $5 a month covers about 16,000 |
🔍 What Avito Seller Scraper does
It opens each profile you give it, reads the seller card, then walks the listing grid page by page until the seller runs out or the run hits your limit.
Every link shape Avito uses is accepted: /brands/<shop name>, /brands/<id>,
/user/<id>/profile, m.avito.ru links, and links with /all or a ?src= tail. A link to one
listing is the only thing that does not work. Open the seller's profile from it and copy that link.
Listings are de-duplicated by id across the whole run, so a seller pasted twice is walked once and the same listing is never billed twice. Rows are written page by page, so a run that stops early keeps what it had already delivered.
📋 What data you get from each Avito seller listing
| What you get | Field |
|---|---|
| The listing: id, title, link, preview text, price and currency | listingId, title, url, description, price, priceText, currency |
| Category and location | categoryName, categorySlug, location, address, latitude, longitude |
| When it was published | publishedAt, publishedAtText |
| Photos and the spec line | images, imageCount, params |
| The seller on every row: id, link, name and account type | profileId, profileUrl, profileName, profileAccountType, profileType |
| Member since, rating, reviews and subscribers | profileMemberSince, profileMemberSinceText, profileRating, profileReviewCount, profileSubscribers |
| Active and closed listing counts, and badges | profileActiveListings, profileClosedListings, profileBadges |
| The link you gave and the page the row came from | inputUrl, searchUrl |
Every other field has the same name and meaning as in the listings scraper, so rows from both load into one table.
▶️ How to scrape an Avito seller's listings
- Open Avito Seller Scraper and click Try for free.
- Paste profile links into Seller profile links, one per line, up to 10. Replace the example.
- Set Maximum listings. 20 is enough to see what the rows look like.
- Click Start, then download the dataset as JSON, CSV or Excel.
- Open the run's Storage tab and read
RUN_REPORTif any seller came back light.
💰 How much does it cost to scrape an Avito seller's listings?
$0.30 per 1,000 listings. Flat on every Apify plan, no volume tiers. On the free plan, the $5 Apify gives you each month covers about 16,000 listings.
One billed row per listing delivered. A seller that does not exist is not billed, a profile with nothing up is not billed, the same seller pasted twice is not billed twice, and a listing the grid shows again on a later page is dropped before the dataset. If you set a maximum cost for the run, the run shrinks to what that covers.
📥 What you give it
{"sellerUrls": ["https://www.avito.ru/brands/appledg-store","https://www.avito.ru/user/5f0a4e3d9bcf6a2e1d7c8b0a/profile"],"maxItems": 100}
| Field | Default | What it is |
|---|---|---|
sellerUrls | none | Seller profile links, 1 to 10 per run. Required. |
maxItems | 1000 (the form shows 100) | Total listings for the whole run across every seller, up to 15,000. A big seller still stops at Avito's own page-100 ceiling whatever you put here. |
sortBy | default | default is Avito's own order, price_asc cheapest first, price_desc most expensive first. Avito sorts the grid itself. There is no newest-first choice, because Avito's date order uses a date the rows do not carry. |
maxItems is a run total, not a per-seller figure, so the first seller in a list of ten can use the
whole allowance. Split the sellers across runs if you want each one covered.
📤 What you get back
A real row from a run on 20 September 2026, with the description and the photo list trimmed:
{"listingId": "8282950159","title": "iPhone 17 Pro Max, 1 ТБ","description": "IPhone 17 Pro Max 512GB.\nCosmic Orange (Космический оранжевый)...","price": 107990,"priceText": "107 990 ₽","currency": "RUB","categoryName": "Телефоны","categorySlug": "telefony","location": "Москва","address": "Москва","latitude": 55.794411,"longitude": 37.591988,"sellerName": "Apple UP – бери выше, плати меньше","sellerType": "company","publishedAt": "2026-09-20T14:09:08.000Z","publishedAtText": "20 сентября 17:09","images": ["https://80.img.avito.st/image/1/1.jJrwjLaAIHOGIuJ85J6Jg-ssIndCOyRzQlxBd0LvL7FL..."],"imageCount": 7,"params": "Новый","url": "https://www.avito.ru/moskva/telefony/iphone_17_pro_max_1_tb_8282950159","searchQuery": null,"searchUrl": "https://www.avito.ru/brands/appleup","scrapedAt": "2026-09-20T14:29:33.015Z","profileId": "8c7654ef974990c2fd8ca738f97f29e1","profileUrl": "https://www.avito.ru/brands/appleup","profileName": "Apple UP – бери выше, плати меньше","profileAccountType": "business","profileType": "company","profileMemberSince": "2020-05","profileMemberSinceText": "На Авито с мая 2020","profileRating": 5,"profileReviewCount": 10413,"profileSubscribers": 17721,"profileActiveListings": 471,"profileClosedListings": 392,"profileBadges": ["Надёжный продавец", "9090 продаж с Авито Доставкой", "яПомогаю"],"inputUrl": "https://www.avito.ru/brands/appleup"}
| Field | How to read it |
|---|---|
description | The preview Avito prints on the grid, cut off by Avito itself. Not the full ad body. |
profileAccountType | private or business. profileType keeps Avito's own word, which is person, company or shop. |
profileMemberSince | 2020-05, or a full date like 2026-08-24 when Avito prints the day. The Russian text is in profileMemberSinceText. |
profileRating | null until the seller has any reviews. profileReviewCount is the number as a number. |
profileActiveListings | What Avito says the seller has up. On a large seller this is higher than the rows you get, because of the page-100 ceiling. |
searchQuery | Always null here, because there was no search. searchUrl holds the seller page the row came from. |
latitude, longitude | Only when the seller added a location. |
🧾 Reading the output
The dataset holds listing rows and nothing else. There are no diagnostic rows and no charged
field to filter on. Everything about how the run went is in a key-value store record called
RUN_REPORT, on the Storage tab of the run.
It holds the run totals and the stop reason, then one entry per seller: status, profile id and
name, how many listings Avito claimed, how many were reachable, how many came back, pages loaded,
pages failed, duplicates skipped and why that seller stopped. Links that were not seller profiles
are listed separately with a reason.
status | What it means |
|---|---|
ok | The seller was read. |
not-found | No such seller. Avito answers this at HTTP 200, so the run detects it rather than seeing an error. |
no-listings | A real profile with nothing currently up. |
duplicate | The same seller appeared twice in your list. Walked once. |
unreachable | The profile could not be loaded after repeated attempts. |
unreadable | The page loaded but did not contain a profile this could parse. |
sort-not-applied | You asked for a price order and Avito did not return that seller sorted that way. Nothing was charged for it. |
error, skipped | Something else went wrong, or the run had already hit its limit. |
The run ends as FAILED, rather than quietly succeeding, when none of your links was a seller profile, when no seller could be loaded at all, and when the maximum cost you set cannot cover a single listing.
💡 What people use it for
- Pulling another shop's whole catalogue with prices, then re-running to see what sold and what was
added.
listingIdis stable between runs. - Qualifying a seller before dealing with them, using rating, review count, member-since and the active-versus-closed split that rides on every row.
- Building a dealer or agency list for one market, where
profileAccountTypeseparates shops from private sellers.
From a search to a dealer's whole stock, in three steps:
- Run Avito Listings Scraper on a category
and city with
sellerTypeset tocompany. - Copy the
sellerUrlof the dealers you care about. - Paste them here into Seller profile links, ten per run.
🚧 What it does not do
- It cannot go past Avito's page 100. 1,200 or 1,500 listings per seller depending on the layout, however many the profile claims.
- Big ranked grids shuffle while they are read. One measured walk of 1,200 slots returned 1,009 unique listings and 191 repeats. The repeats are dropped and never billed, but what they displaced is not reachable. Smaller sellers whose grids are time-ordered came back with no repeats at all across three runs.
- No phone numbers, and no reviews. This reads the profile card and the grid.
- No sold or closed listings.
profileClosedListingsgives you the count, not the listings. - A listing link will not work. Only profile links.
descriptionis the grid preview, truncated by Avito.- 10 sellers per run. Run again for more. If the first two sellers both cannot be loaded and nothing has been delivered, the rest of the list is skipped.
- A big run can come back short. A page Avito will not serve is recorded in
RUN_REPORTrather than guessed at, and only delivered listing rows are billed.
🧭 Which Russian-market scraper do you need?
| If you want | Use |
|---|---|
| Everything one Avito seller has listed, plus their profile | This one |
| Ads from a search, a category or a city on Avito | Avito Listings Scraper |
| Reviews for a place on Yandex Maps | Yandex Maps Reviews Scraper |
| Businesses and their details from 2GIS | 2GIS Places Scraper |
| Reviews from 2GIS | 2GIS Reviews Scraper |
❓ Questions people ask
Do I need an Avito account?
No. Nothing to register and no cookies to paste.
Why did a listing link give me nothing?
That is expected. Open the seller's profile from the listing page and paste that link instead.
Why did I get fewer rows than profileActiveListings says?
Either the run hit your maxItems, or the seller is past Avito's page-100 ceiling. RUN_REPORT
tells you which.
Is profileRating ever missing?
It is null until the seller has reviews. A brand new seller has no rating to report.
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-seller-scraper. Either way the
run happens on your Apify account at the same price.
Is scraping Avito sellers legal?
These are public seller pages and 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 profile link and the run ID, and if you can, the
RUN_REPORT record from that run's Storage tab; the per-seller status in it usually names the
problem on its own.