Avito Listings Scraper - Classifieds from Avito.ru
Pricing
from $0.80 / 1,000 results
Avito Listings Scraper - Classifieds from Avito.ru
Scrapes classified listings from Avito (avito.ru): real estate, cars, goods, jobs and services with price, title, address, coordinates, seller, photos and posting date. Search by URL, keyword, city and category, with automatic splitting of large searches and a cache for new listings only.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
ActorFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Парсер Авито — объявления с Avito.ru (недвижимость, авто, товары)
English version of this page is below ⬇️
Парсер объявлений Авито (avito.ru) — крупнейшей онлайн-площадки России. Выгружайте данные в JSON, CSV или Excel либо вызывайте парсер как API. Он собирает объявления из любой категории: недвижимость, автомобили, электроника, вакансии и услуги — с ценой, названием, адресом, координатами, продавцом, фотографиями и датой публикации. Вставьте ссылку на поиск или введите ключевое слово и город, нажмите Start и получите готовую таблицу.
Целевой сайт: avito.ru

✨ Возможности парсера объявлений Авито
- Любые категории — недвижимость, автомобили, телефоны и электроника, одежда, вакансии, услуги и другое одним парсером.
- Постраничный обход — парсер проходит все страницы выдачи до заданного лимита объявлений.
- Надёжная загрузка страниц — страницы загружаются автоматически, с повторными попытками. Ничего настраивать не нужно, прокси не требуются.
- Фильтры — ключевое слово, город или регион, категория, диапазон цен и сортировка, либо любая готовая ссылка на поиск Авито.
- Обход лимита выдачи — Авито показывает не более 1 500 результатов на поиск, поэтому большие поиски делятся автоматически: сначала по подкатегориям, затем по частным продавцам и компаниям, затем по диапазонам цен, которые подбираются по реальному числу результатов. Объявления с одной и той же ценой, которых больше лимита, читаются в нескольких порядках сортировки.
- Кэш: только новые объявления — используйте одно название кэша при запусках по расписанию, чтобы получать только новые объявления и изменения цены.
- Без браузера — страницы загружаются лёгкими запросами, поэтому запуск быстрый и стоит значительно дешевле парсеров на браузере.
🚀 Как собрать объявления Авито за 5 шагов
- Зарегистрируйтесь в Apify — новым аккаунтам доступно 5 $ бесплатного кредита в месяц.
- Откройте страницу актора и нажмите Try for free.
- Заполните поля Input: нужна ссылка на поиск либо ключевое слово, город или категория.
- Нажмите Start и дождитесь завершения запуска.
- Скачайте результат на вкладке Output в формате JSON, CSV или Excel.
Актор также можно запускать через Apify API или подключить к Zapier, Make и n8n.
💰 Стоимость
Актор работает по модели оплаты за события (pay-per-event): вы платите за каждое сохранённое объявление, и только при включённой опции Scrape listing pages — небольшую дополнительную плату за каждую открытую страницу объявления.
- Обычная выдача поиска (по умолчанию) — самый дешёвый вариант: одна плата за объявление.
- При включённой опции Scrape listing pages каждая открытая страница объявления — это дополнительное событие
listing-detailsсверх платы за объявление. Взамен вы получаете полное описание, все параметры и просмотры. - Объявления, пропущенные кэшем, не оплачиваются.
🖼️ Скриншот полей ввода

Номера на скриншоте соответствуют полям ниже:
- Search or listing URLs — страницы поиска или отдельные объявления Авито.
- Max items per search — сколько объявлений сохранить для каждой ссылки.
- Scrape listing pages — открывать каждое объявление для полной записи (отдельное событие
listing-details). - Cache project name — получать только новые объявления и изменения цены при повторных запусках.
Остальные фильтры (ключевое слово, город, категория, цена, сортировка) находятся в группе Optional filters ниже.
🔧 Поля ввода
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Search or listing URLs (startUrls) | массив | https://www.avito.ru/moskva/kvartiry/prodam | Ссылки на страницы поиска или на отдельные объявления Авито в любой категории. Фильтры из ссылки сохраняются. Если поле пустое, используются фильтры ниже. |
Max items per search (maxItems) | число | 5 | Сколько объявлений сохранить для каждого поиска. Если больше 1 500, поиск автоматически делится на части (подкатегория, тип продавца, цена). |
Scrape listing pages (scrapeDetails) | да/нет | false | Открывать каждое объявление: полное описание, все параметры (комнаты, площадь, пробег…), тип продавца, просмотры. Работает медленнее; каждая страница — отдельное событие listing-details. |
Cache project name (cacheProjectName) | текст | — | Название кэша. Используйте одно и то же при каждом запуске, чтобы получать только новые объявления и изменения цены. Неизменившиеся объявления пропускаются и не оплачиваются. |
Keyword (keyword) | текст | — | Поисковые слова, например iphone 15. |
City or region (city) | текст | — | Город или регион, как в адресе avito.ru: moskva, sankt-peterburg. Пусто — вся Россия. |
Category path (category) | текст | — | Путь категории после города: kvartiry/prodam, transport/avtomobili. |
Minimum price (minPrice) | число | — | Нижняя граница цены в рублях. |
Maximum price (maxPrice) | число | — | Верхняя граница цены в рублях. |
Sort by (sortBy) | список | relevance | relevance, newest, cheapest или expensive. |
Поддерживаемые ссылки:
- Поиск по категории:
https://www.avito.ru/moskva/kvartiry/prodam - Поиск по ключевому слову:
https://www.avito.ru/rossiya?q=iphone - Ключевое слово в городе и категории:
https://www.avito.ru/moskva/telefony?q=iphone+15 - Отдельное объявление:
https://www.avito.ru/moskva/kvartiry/6-k._kvartira_6937_m_6667_et._8060826600
📦 Выходные данные
Для каждого объявления парсер сохраняет JSON-запись с полями: id, url, title, price, priceText, currency, pricePerUnit (цена за единицу, например за м²), category, categoryId, categorySlug, location, address, latitude, longitude, description, sellerName, sellerUrl, sellerType, sellerBadges, sellerRating, sellerReviewsText, sellerClosedAds, summary (для авто: двигатель, кузов, привод, топливо), badges, priceWithoutDiscount, discountPercent, priceDropped, nearbyPlaces (станции метро с расстоянием и временем в пути пешком), dealType, realtyType, hasLayout, microCategoryId, locationId, developmentName, isVerified, isReserved, hasVideo, postedAt, images, imagesCount, changeType, previousPrice, searchUrl и scrapedAt.
С включённой опцией Scrape listing pages запись дополняется полями: params (параметры объявления: комнаты, площадь, марка, пробег и т. д.), categoryPath, postedText, expiresAt, views, viewsToday, isActive, priceIncreased, priceHistoryRecords, sellerReviewCount, sellerReplyTime, sellerMemberSince, sellerMedal, sellerIsVerified, phoneMasked и phoneIsAnonymous (номер частично скрыт сайтом), vehicleCondition, options (комплектация авто по группам), developerName, developerId, developmentId и building (данные о жилом комплексе). Каждая такая запись тарифицируется отдельным событием listing-details.
В наборе данных три представления:
- Overview — компактная таблица с ID, названием, ценой, валютой, категорией, городом, адресом, продавцом, типом продавца, датой публикации и ссылкой.
- Price & location — цена за единицу, скидка, снижение цены, метро рядом, тип сделки и координаты.
- Seller & details — рейтинг продавца, отзывы, закрытые объявления, стаж, сводка и комплектация авто, застройщик и поля страницы объявления (просмотры, срок размещения).
🔁 Только новые объявления: кэш
Укажите одно и то же Cache project name при каждом запуске. Объявления, которые уже сохранялись под этим названием, пропускаются: они не оплачиваются и не учитываются в Max items. Новые объявления получают changeType: "new", а объявления с изменившейся ценой — changeType: "price_change" и поле previousPrice со старой ценой. Разные названия кэша хранят отдельные кэши. Совет: создайте расписание (Apify Schedules) с одним и тем же названием кэша и сортировкой «новые сначала» — получится ежедневная лента свежих объявлений.
🐍 Запуск из Python, JavaScript и через API
Замените <YOUR_API_TOKEN> на токен из Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("confidential_gnat/avito-listings-scraper").call(run_input={"startUrls": [{"url": "https://www.avito.ru/moskva/kvartiry/prodam"}],"maxItems": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('confidential_gnat/avito-listings-scraper').call({startUrls: [{ url: 'https://www.avito.ru/moskva/kvartiry/prodam' }],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — запуск и получение набора данных:
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~avito-listings-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.avito.ru/moskva/kvartiry/prodam"}], "maxItems": 20}'
💡 Для чего нужны данные Авито
- Мониторинг цен на квартиры, автомобили и электронику по городам России
- Анализ рынка недвижимости по районам, цене за квадратный метр и типу продавца
- Поиск выгодных предложений первыми: запуск по расписанию с кэшем
- Лиды: продавцы, дилеры и агентства в нужной категории
- Исследование спроса, предложения и цен на б/у товары
Обычно данные используют инвесторы и агентства недвижимости, автодилеры, перекупщики, аналитики и исследователи российского рынка.
⚠️ Ограничения
- Бесплатный тариф Apify — не более 5 объявлений на поиск, даже если в Max items указано больше. В журнале запуска появится соответствующее сообщение. На платном тарифе ограничения нет.
- Лимит выдачи — Авито показывает не более 1 500 результатов (30 страниц по 50) на один поиск. Если Max items больше, парсер делит поиск на более узкие (подкатегория, частный продавец или компания, затем диапазоны цен по реальному числу результатов) и убирает дубликаты. Поиск делится только настолько, насколько нужно для достижения Max items.
- Объявления без цены — при делении большого поиска по ценам объявления без указанной цены не попадают ни в один диапазон.
- Много объявлений с одной ценой — если больше 1 500 объявлений имеют ровно одну и ту же цену, парсер читает её в трёх сортировках (дешёвые, дорогие, новые), поэтому часть объявлений всё же может быть пропущена.
- Страницы объявлений медленнее — каждая страница загружается несколько секунд, поэтому запуск с Scrape listing pages идёт дольше обычного поиска.
- Контакты — номера телефонов продавцов и сообщения недоступны без входа в аккаунт и не собираются. В данных есть только частично скрытый временный номер (
phoneMasked). - Дата публикации (
postedAt) — это время, по которому сайт сортирует объявления: публикация или последнее поднятие.
❓ Частые вопросы
Законно ли парсить Авито?
Парсер собирает только общедоступные данные с avito.ru: он не входит в аккаунт и не открывает закрытый контент. Сбор общедоступных данных обычно считается законным (см. hiQ Labs v. LinkedIn), но соблюдение правил сайта и применимого законодательства о персональных данных (например, GDPR или российского закона о персональных данных) остаётся на вас — особенно это касается имён продавцов.
Какие данные возвращает парсер?
Для каждого объявления: название, цена в рублях, категория, город, адрес, координаты, описание, имя и тип продавца, рейтинг продавца, фотографии, метро рядом и дата публикации. С Scrape listing pages также параметры объявления (комнаты, площадь, марка, пробег и т. д.), полный путь категории, просмотры, историю цены, данные о застройщике и комплектацию авто.
Сколько объявлений можно собрать с одного поиска?
Max items per search применяется к каждому поиску отдельно. Авито показывает не более 1 500 результатов на поиск, поэтому при большем значении парсер делит поиск по подкатегориям, типу продавца и диапазонам цен и убирает дубликаты. Чем больше значение, тем больше запросов.
Нужен ли прокси для парсинга avito.ru?
Нет. Парсер сам загружает страницы и автоматически повторяет попытку при сбое, поэтому настройки прокси нет.
Как запустить по расписанию?
Создайте расписание (Apify Schedule) для актора и укажите одно и то же Cache project name при каждом запуске — вы будете получать только новые объявления и изменения цены.
Какие форматы выгрузки поддерживаются?
JSON, CSV, Excel, XML и RSS — на вкладке Output или через Apify API.
Почему запуск со страницами объявлений идёт дольше?
Каждая страница объявления загружается отдельно, это занимает несколько секунд и тарифицируется отдельным событием. Оставьте Scrape listing pages выключенным, если вам хватает данных из выдачи.
💬 Поддержка
Если возникли проблемы или вопросы, создайте обращение или напишите на форуме Apify. Другие наши акторы — на странице Actor Flow.
🇬🇧 Avito Listings Scraper - Classifieds from Avito.ru (English version)
Scrape classified listings from Avito (avito.ru), Russia's largest marketplace, and export them as JSON, CSV or Excel, or call the scraper as an API. Collect real estate, cars, electronics, jobs and services with price, title, address, coordinates, seller, photos and posting date. Paste a search URL or type a keyword and a city, press Start and get clean, structured rows.
Target website: avito.ru
✨ Features of this Avito listings scraper
- Listings extraction in every category — real estate, cars, phones and electronics, clothes, jobs, services and more from the same scraper.
- Pagination support — walks through every result page of a search up to your item limit.
- Reliable page loading — pages are loaded for you with automatic retries, so there is nothing to configure.
- Keyword, city, category and price filtering — build a search from a keyword, a city or region, a category path, a price range and a sort order, or paste any Avito search URL.
- Large search splitting — the site shows at most 1,500 results per search, so bigger searches are split automatically (sub-categories first, then private sellers and companies, then price ranges cut by real result counts) to get past that cap. Listings at one price that still exceed the cap are read in several sort orders.
- Cache for new listings only — reuse a cache project name on scheduled runs to get only new listings and price changes.
- No browser required — pages are loaded with lightweight requests, so runs are fast and cost far less than browser-based scrapers.
🚀 How to scrape Avito listings in 5 steps
- Sign up for a free Apify account — includes $5 monthly credit.
- Open the actor page and click Try for free.
- Fill in the Input fields (a search URL, or a keyword, city or category, is required).
- Click Start and wait for the run to complete.
- Download results from the Output tab in JSON, CSV, or Excel format.
You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.
💰 Pricing for the Avito scraper
This actor uses pay-per-event billing: you pay for each listing saved, and, only when Scrape listing pages is on, a small extra charge for each listing page opened.
- Plain search results (the default) are the cheapest output: one charge per listing.
- With Scrape listing pages on, every listing page opened is an extra
listing-detailscharge on top of the listing, in return for the full description, all parameters and view counts. - Listings skipped by the cache are not charged.
🖼️ Avito scraper input screenshot

The numbers match the input fields below:
- Search or listing URLs: the Avito pages to scrape.
- Max items per search: how many listings to save for each URL.
- Scrape listing pages: open each listing for the full record (billed as the extra
listing-detailsevent). - Cache project name: get only new listings and price changes on repeat runs.
The other filters (keyword, city, category, price and sort order) are in the Optional filters group below.
🔧 Avito scraper input configuration
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
Search or listing URLs (startUrls) | array | — | https://www.avito.ru/moskva/kvartiry/prodam | Avito search pages or single listing pages in any category. Filters in the URL are kept. When empty, the search filters below are used. |
Max items per search (maxItems) | integer | — | 5 | Maximum listings saved for each search. Above 1,500 the search is split automatically by sub-category, seller type and price. |
Scrape listing pages (scrapeDetails) | boolean | — | false | Open each listing page for the full description, all parameters (rooms, area, mileage...), seller type and view counts. |
Cache project name (cacheProjectName) | string | — | — | Reuse the same name on each run to get only new listings and price changes. Unchanged listings are skipped and not charged. |
Keyword (keyword) | string | — | — | Search words, for example iphone 15. |
City or region (city) | string | — | — | City or region as written on avito.ru, for example moskva or sankt-peterburg. Empty searches all of Russia. |
Category path (category) | string | — | — | Category path after the city, for example kvartiry/prodam or transport/avtomobili. |
Minimum price (minPrice) | integer | — | — | Only listings priced at or above this amount in rubles. |
Maximum price (maxPrice) | integer | — | — | Only listings priced at or below this amount in rubles. |
Sort by (sortBy) | string | — | relevance | relevance, newest, cheapest or expensive. |
Supported URL types:
- Category search:
https://www.avito.ru/moskva/kvartiry/prodam - Keyword search:
https://www.avito.ru/rossiya?q=iphone - Keyword in a city and category:
https://www.avito.ru/moskva/telefony?q=iphone+15 - Single listing:
https://www.avito.ru/moskva/kvartiry/6-k._kvartira_6937_m_6667_et._8060826600
📦 Avito scraper output data
The actor saves JSON records with these fields: id, url, title, price, priceText, currency, pricePerUnit, category, categoryId, categorySlug, location, address, latitude, longitude, description, sellerName, sellerUrl, sellerType, sellerBadges, sellerRating, sellerReviewsText, sellerClosedAds, summary (for cars: engine, body type, drive, fuel), badges, priceWithoutDiscount, discountPercent, priceDropped, nearbyPlaces (metro stations with distance and walking time), dealType, realtyType, hasLayout, microCategoryId, locationId, developmentName, isVerified, isReserved, hasVideo, postedAt, images, imagesCount, changeType, previousPrice, searchUrl and scrapedAt. With Scrape listing pages on, each record also gets params (the listing's own parameters such as rooms, area, brand or mileage), categoryPath, postedText, expiresAt, views, viewsToday, isActive, priceIncreased, priceHistoryRecords, sellerReviewCount, sellerReplyTime, sellerMemberSince, sellerMedal, sellerIsVerified, phoneMasked, phoneIsAnonymous (the number is partly hidden by the site), vehicleCondition, options (grouped car equipment), developerName, developerId, developmentId and building (housing complex details). Each of these listing page records is billed as the extra listing-details event. The dataset has 3 views:
- Overview — a compact table with the ID, title, price, currency, category, city, address, seller, seller type, posting date and link of each listing.
- Price & location — price per unit, discount, price drop, nearby metro stations, deal type and coordinates.
- Seller & details — seller rating, reviews, closed ads, tenure, car summary and options, developer and listing page fields such as views and expiry.
Output at a glance:
| Title | Price (₽) | Category | City | Seller | Posted (UTC) |
|---|---|---|---|---|---|
| 6-к. квартира, 693,7 м², 66/67 эт. | 1,734,250,000 | Квартиры | Москва | Capital Group | 2026-10-10 15:44 |
| 4-к. квартира, 305,9 м², 11/11 эт. | 590,968,210 | Квартиры | Москва | ЖК Опус | 2026-10-15 15:39 |
| 1-к. квартира, 37,5 м², 2/9 эт. | 21,346,500 | Квартиры | Москва | ПИК | 2026-10-17 17:49 |
| 2-к. квартира, 43 м², 3/5 эт. | 13,600,000 | Квартиры | Москва | ЖК "Северная слобода" | 2026-10-19 15:21 |
| Аукцион: 2-к. квартира, 36,2 м², 2/9 эт. | 9,061,000 | Квартиры | Москва | Департамент недвижимости | 2026-10-19 21:05 |
Sample output (raw JSON):
[{"id": "8158564825","url": "https://www.avito.ru/moskva/kvartiry/2-k._kvartira_43_m_35_et._8158564825","title": "2-к. квартира, 43 м², 3/5 эт.","price": 13600000,"priceText": "13 600 000 ₽","currency": "RUB","pricePerUnit": "316 279 ₽ за м²","category": "Квартиры","categoryId": 24,"categorySlug": "kvartiry","location": "Москва","address": "Ярославская ул., 17","latitude": 55.822463,"longitude": 37.648456,"description": "Продается двухкомнатная квартира в таком виде, как на фото. Заменили все коммуникации, начиная от квартиры до подъезда. Теплый кирпичный пятиэтажный дом, своя парковка, тихое и зелёное место. Рядом с домов все объекты инфраструктуры. Огромный парк. Уникальная локация для жизни. Квартира в трех минутах от метро, но в тихом, историческом месте. Рядом с домом остановка общественного транспорта. Самая Низкая Цена!","sellerName": "ЖК \"Северная слобода\"","sellerUrl": "https://www.avito.ru/brands/sev-sloboda","sellerType": "company","sellerBadges": ["Реквизиты проверены"],"developmentName": null,"isVerified": false,"isReserved": false,"hasVideo": false,"postedAt": "2026-10-19T15:21:23.000Z","images": ["https://b30.img.avito.st/image/1/1.RuO2L7a-6gr4hRABtlpBz5yP6AwEmO4KBP-LAAh04fAJjOg.IDZ7JsCTstZRP8nn4FnOWsUAlS9-lmB4mp13bUMzxbs?cqp=2.6_1L9vhKD2uBLt-qyrAoZheVsuS8u7cVFre6r7a9jrN4_pCIDjlm5anolzs-MLkTK_L9899P2epdVNs=","https://b30.img.avito.st/image/1/1.dOn_D7a-2ACxpSILm3YAxNWv2gZNuNwATd-5CkFU0_pArNo.89TOZPjSPRC32eg5jgcTo2GfIJ2K8rmHs-7TfBSg2lg?cqp=2.6_1L9vhKD2uBLt-qyrAoZheVsuS8u7cVFre6r7a9jrN4_pCIDjlm5anolzs-MLkTK_L9899P2epdVNs="],"imagesCount": 12,"changeType": null,"previousPrice": null,"searchUrl": "https://www.avito.ru/moskva/kvartiry/prodam","scrapedAt": "2026-10-20T17:34:35.104Z"},{"id": "8545440903","url": "https://www.avito.ru/moskva/kvartiry/auktsion_2-k._kvartira_362_m_29_et._8545440903","title": "Аукцион: 2-к. квартира, 36,2 м², 2/9 эт.","price": 9061000,"priceText": "от 9 061 000 ₽","currency": "RUB","pricePerUnit": "250 304 ₽ за м²","category": "Квартиры","categoryId": 24,"categorySlug": "kvartiry","location": "Москва","address": "Ул. Симоновский Вал, 17к1","latitude": 55.721108,"longitude": 37.664905,"description": "Тихий и спокойный район. С точки зрения транспортной доступности, считается одним из лучших в Москве: три станции метро, две станции Мцк, близость Третьего транспортного кольца. В шаговой доступности от дома расположен «Остров мечты» — крупнейший крытый тематический парк развлечений в Европе. ТЦ «Ривьера», ТЦ «Мозаика». Южнопортовый парк с собственной набережной. Гбоу Гимназия № 1274; Гбоу Школа № 2129. Квартира с ремонтом. Документы готовы к сделке. 29.10 и2.","sellerName": "Департамент недвижимости","sellerUrl": "https://www.avito.ru/brands/i368205809","sellerType": "company","sellerBadges": ["Реквизиты проверены"],"developmentName": null,"isVerified": false,"isReserved": false,"hasVideo": false,"postedAt": "2026-10-19T21:05:05.000Z","images": ["https://70.img.avito.st/image/1/1.TO-vqra-4AbhABoNu-cj760K4gAdHeQGHXqBDBHx6_wQCeI.bNxvp6zra38kQxjK6_OSC5TtCH-SY4VB7jwINPHSK1w","https://c60.img.avito.st/image/1/1.rYxfUba-AWUR-_tuCX-j51zxA2Pt5gVl7YFgb-EKCp_g8gM.-zf8H7agaJgPMd4P_IqyUIECN2zhmSssVEUWkrlJsbA"],"imagesCount": 2,"changeType": null,"previousPrice": null,"searchUrl": "https://www.avito.ru/moskva/kvartiry/prodam","scrapedAt": "2026-10-20T17:34:35.104Z"}]
🔁 Scrape only new Avito listings with the cache
Set the same Cache project name on every scheduled run. Listings already saved under that name are skipped, not charged and not counted towards Max items, so each run returns only what is new. Each record gets changeType: "new", or changeType: "price_change" with the previousPrice when a listing you already have changed its price. Different cache names keep separate caches. Tip: create an Apify Schedule that runs the actor daily with the same cache name and a search sorted by newest to build a feed of fresh listings.
🐍 How to scrape Avito with Python, JavaScript or the API
Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("confidential_gnat/avito-listings-scraper").call(run_input={"startUrls": [{"url": "https://www.avito.ru/moskva/kvartiry/prodam"}],"maxItems": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('confidential_gnat/avito-listings-scraper').call({startUrls: [{ url: 'https://www.avito.ru/moskva/kvartiry/prodam' }],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL — start a run and wait for the dataset:
curl -X POST "https://api.apify.com/v2/acts/confidential_gnat~avito-listings-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.avito.ru/moskva/kvartiry/prodam"}], "maxItems": 20}'
💡 What you can use Avito listings data for
- Price monitoring of apartments, cars and electronics across Russian cities
- Real estate market analysis by district, price per square metre and seller type
- Finding fresh bargains early with a scheduled run and the cache
- Lead generation from sellers, dealers and agencies in a category
- Market research on supply, demand and pricing for second-hand goods
Typical users are real estate investors and agencies, car dealers, resellers, market analysts and researchers working with the Russian second-hand and property markets.
⚠️ Limitations of the Avito scraper
- Free Apify plan — limited to 5 listings per search, even if Max items is higher; the run log says so. Paid plans have no such limit.
- Result cap per search — the site shows at most 1,500 results (30 pages of 50) for one search; the actor works around this when Max items is above that by splitting the search into narrower ones (sub-category, private or company seller, then price ranges cut by real counts) and removing duplicates. Searches are only split as far as needed to reach Max items.
- Listings without a price — when a large search is split by price ranges, listings with no price shown are not part of any range.
- Many listings at one price — if more than 1,500 listings share the exact same price, the actor reads that price in three sort orders (cheapest, most expensive, newest), so a few may still be missed.
- Slower listing pages — each listing page takes several seconds to load, so runs with Scrape listing pages take longer than plain searches.
- Contact details — seller phone numbers and messages are not available without logging in and are not collected.
❓ Avito scraper FAQ
Can I scrape Avito legally?
The actor only collects data that is already publicly visible on avito.ru — it never logs in or opens private content. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you remain responsible for complying with the site's Terms of Service and applicable laws such as GDPR or Russian personal data rules, especially for seller names in the results.
What data does the Avito scraper return?
Each listing comes with its title, price in rubles, category, city, address, coordinates, description, seller name and type, photos and posting date. With Scrape listing pages on, you also get the listing's parameters (rooms, area, brand, mileage and so on), the full category path and view counts.
How many listings can I scrape from one Avito search?
Max items per search applies to each search separately. Avito itself shows at most 1,500 results per search, so when you ask for more the actor splits the search by sub-category, seller type (private or company) and price range, cutting price ranges by the real result counts, and removes duplicates. It only splits as far as needed to reach your Max items; larger values take proportionally more requests.
Do I need a proxy to scrape avito.ru?
No. The actor loads the pages itself and retries automatically if one fails to load, so there is no proxy setting to configure.
How do I scrape Avito with Python?
Use the Python example above: start the actor with the Apify client and iterate over the dataset items.
Can I run this Avito scraper on a schedule?
Yes. Create an Apify Schedule for the actor and set the same Cache project name on every run to skip listings you already have and receive only new listings and price changes.
What output formats are supported?
JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.
Why does a run with listing pages take longer?
Each listing page is loaded separately and takes several seconds, and is billed as an extra event. Leave Scrape listing pages off when the search results already have what you need.
🔗 Relevant actors for Avito listings data
| Scraper | Description |
|---|---|
| 🛒 Craigslist Listings Scraper - Housing, For Sale, Jobs, Cars | Scrapes Craigslist classified listings in any city and category. |
| 🇲🇾 Mudah.my Classifieds Scraper - Cars, Property & Marketplace | Scrapes classified ads from Mudah.my, Malaysia's largest marketplace. |
| 🛍️ Carousell Products Scraper | Scrapes Carousell.sg product listings with prices and seller ratings. |
| 🇯🇵 Mercari Japan Scraper - Listings, Prices & Sold Items | Scrapes Mercari Japan listings with JPY prices, condition and sold status. |
| 🏘️ 99acres Property Scraper - India Homes for Sale & Rent | Scrapes property listings from 99acres with price, area and locality. |
🔗 Other actors you may find useful
| Scraper | Description |
|---|---|
| 🥾 AllTrails Scraper — Hiking, Biking & Running Trails | Scrapes hiking, biking and running trails from AllTrails with ratings and elevation. |
| 🍷 Vivino Wine Scraper | Scrapes wine data from Vivino, including name, winery, vintage, region and rating. |
| 📈 Kalshi Markets Scraper - Prediction Market Prices & Odds | Scrapes Kalshi prediction markets with yes/no prices and implied probability. |
| 💼 Dice Jobs Scraper - Search Tech Jobs by Keyword or URL | Scrapes tech job listings from Dice with title, company, location and salary. |
| 📱 Google Play Store Reviews Scraper | Scrapes user reviews from Google Play Store apps with review text and star ratings. |
💬 Support & contact
If you encounter any issues or have questions, please open an issue.
You can also find more of our actors on the Actor Flow page.