Avito Seller Listings & Profile Scraper avatar

Avito Seller Listings & Profile Scraper

Pricing

from $0.29 / 1,000 listings

Go to Apify Store
Avito Seller Listings & Profile Scraper

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

2 days ago

Last modified

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.

InputAvito seller profile links, up to 10 per run
OutputOne row per active listing with the seller's profile on it: name, type, member since, rating, reviews, subscribers, listing counts and badges
CeilingPage 100 per seller, so 1,200 or 1,500 listings depending on the layout
Account neededNone 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 getField
The listing: id, title, link, preview text, price and currencylistingId, title, url, description, price, priceText, currency
Category and locationcategoryName, categorySlug, location, address, latitude, longitude
When it was publishedpublishedAt, publishedAtText
Photos and the spec lineimages, imageCount, params
The seller on every row: id, link, name and account typeprofileId, profileUrl, profileName, profileAccountType, profileType
Member since, rating, reviews and subscribersprofileMemberSince, profileMemberSinceText, profileRating, profileReviewCount, profileSubscribers
Active and closed listing counts, and badgesprofileActiveListings, profileClosedListings, profileBadges
The link you gave and the page the row came frominputUrl, 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

  1. Open Avito Seller Scraper and click Try for free.
  2. Paste profile links into Seller profile links, one per line, up to 10. Replace the example.
  3. Set Maximum listings. 20 is enough to see what the rows look like.
  4. Click Start, then download the dataset as JSON, CSV or Excel.
  5. Open the run's Storage tab and read RUN_REPORT if 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
}
FieldDefaultWhat it is
sellerUrlsnoneSeller profile links, 1 to 10 per run. Required.
maxItems1000 (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.
sortBydefaultdefault 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"
}
FieldHow to read it
descriptionThe preview Avito prints on the grid, cut off by Avito itself. Not the full ad body.
profileAccountTypeprivate or business. profileType keeps Avito's own word, which is person, company or shop.
profileMemberSince2020-05, or a full date like 2026-08-24 when Avito prints the day. The Russian text is in profileMemberSinceText.
profileRatingnull until the seller has any reviews. profileReviewCount is the number as a number.
profileActiveListingsWhat Avito says the seller has up. On a large seller this is higher than the rows you get, because of the page-100 ceiling.
searchQueryAlways null here, because there was no search. searchUrl holds the seller page the row came from.
latitude, longitudeOnly 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.

statusWhat it means
okThe seller was read.
not-foundNo such seller. Avito answers this at HTTP 200, so the run detects it rather than seeing an error.
no-listingsA real profile with nothing currently up.
duplicateThe same seller appeared twice in your list. Walked once.
unreachableThe profile could not be loaded after repeated attempts.
unreadableThe page loaded but did not contain a profile this could parse.
sort-not-appliedYou asked for a price order and Avito did not return that seller sorted that way. Nothing was charged for it.
error, skippedSomething 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. listingId is 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 profileAccountType separates shops from private sellers.

From a search to a dealer's whole stock, in three steps:

  1. Run Avito Listings Scraper on a category and city with sellerType set to company.
  2. Copy the sellerUrl of the dealers you care about.
  3. 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. profileClosedListings gives you the count, not the listings.
  • A listing link will not work. Only profile links.
  • description is 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_REPORT rather than guessed at, and only delivered listing rows are billed.

🧭 Which Russian-market scraper do you need?

If you wantUse
Everything one Avito seller has listed, plus their profileThis one
Ads from a search, a category or a city on AvitoAvito Listings 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

Do I need an Avito account?

No. Nothing to register and no cookies to paste.

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.

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.