# Avito Listings Scraper | Парсер объявлений Авито (`analytics_tupiniquim/avito-listings-scraper`) Actor

Scrape Avito.ru listings from any search — title, price, URL, address, images, description and date. Fast, low-cost, with pagination.

- **URL**: https://apify.com/analytics\_tupiniquim/avito-listings-scraper.md
- **Developed by:** [Guilherme Teixeira](https://apify.com/analytics_tupiniquim) (community)
- **Categories:** Lead generation, E-commerce, Integrations
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 listing scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Avito Listings Scraper ⚡ | Парсер объявлений Авито

Scrape **listings from any Avito.ru search** — no login, no account. Get the title,
price, URL, address, images, description and post date, with automatic pagination
across as many pages as you need.

> 🇬🇧 English · [🇷🇺 Русский](#-русский) · [🇧🇷 Português](#-português)

***

### Why this scraper?

- 💸 **Cheaper than the alternatives** — pay only for the listings you get.
- 🔎 **Any Avito search** — paste a category or search URL with your filters and it scrapes every result page.
- 📄 **Auto-pagination** — set `maxResults` and it walks the pages for you, retrying through Avito's anti-bot.
- 🖼️ **Full listing data** — title, price (number + formatted), address, images, description.
- 🌎 **Bilingual docs** — English, Russian, Portuguese.

### Input

| Field | Type | Description |
|---|---|---|
| `searchUrls` | array | Avito.ru search/category URLs, e.g. `https://www.avito.ru/moskva/telefony`. All filters in the URL are respected. |
| `maxResults` | integer | Max listings to scrape in total (`0` = all until pagination ends). Default `100`. |
| `proxyConfiguration` | object | Proxy. **Residential is required** for Avito's anti-bot (set by default). |

#### Example input

```json
{
    "searchUrls": ["https://www.avito.ru/moskva/telefony"],
    "maxResults": 200,
    "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

### Output

Each listing is one dataset item:

```json
{
    "id": "7883834320",
    "title": "OUKITEL WP55 Pro, 16/512 ГБ, 2 SIM",
    "url": "https://www.avito.ru/moskva/telefony/oukitel_wp55_pro_16512_gb_2_sim_7883834320",
    "price": 11500,
    "priceFormatted": "11 500 ₽",
    "currency": "RUB",
    "address": "Багратионовская, 6–10 мин.",
    "postedAt": "2 дня назад",
    "description": "Новый, гарантия",
    "images": ["https://80.img.avito.st/image/1/…", "…"],
    "imageCount": 8,
    "scrapedAt": "2026-07-29T03:04:00.000Z"
}
```

#### Output fields

| Field | Description |
|---|---|
| `id`, `title`, `url` | Listing id, title and full URL. |
| `price`, `priceFormatted`, `currency` | Price as a number and as shown, currency (RUB). |
| `address` | Location / nearest metro when shown. |
| `postedAt` | Relative post date when shown by Avito. |
| `description` | Short description / key params from the card. |
| `images`, `imageCount` | Listing photos and their count. |

> ℹ️ `address` and `postedAt` are shown by Avito only on some cards and can be empty — this reflects what Avito displays, not a scraping error. Seller and phone require the listing detail page (coming as an enrichment option).

### 💰 Cost

**$4.00 per 1,000 listings — all-inclusive.** One flat price with residential proxy and a
real browser included; no hidden platform fees. That's below the alternatives (which charge
up to $4.99 / 1,000). You pay only for the listings actually returned.

### FAQ

**Does it need an Avito login?** No. It reads public search results only.
**How do I get a search URL?** Search on Avito.ru with your filters, then copy the URL from the address bar.
**Why residential proxy?** Avito blocks datacenter IPs; residential is required to load pages reliably.

***

### 🇷🇺 Русский

Парсер **объявлений из любого поиска на Авито** — без входа и аккаунта. Заголовок, цена,
ссылка, адрес, фото, описание и дата, с авто-пагинацией по всем страницам.

#### Преимущества

- 💸 **Дешевле аналогов** — платите только за полученные объявления.
- 🔎 **Любой поиск Авито** — вставьте URL категории/поиска с фильтрами.
- 📄 **Авто-пагинация** с обходом анти-бота Авито.
- 🖼️ Заголовок, цена (число + формат), адрес, фото, описание.

#### Ввод

| Поле | Описание |
|---|---|
| `searchUrls` | URL поиска/категории Авито (фильтры из URL учитываются). |
| `maxResults` | Макс. объявлений (`0` = все). |
| `proxyConfiguration` | Прокси. **Требуется резидентный.** |

#### 💰 Цена

**$4.00 за 1000 объявлений — всё включено.** Единая цена: резидентный прокси и браузер
включены, без скрытых платёжных сборов. Дешевле аналогов (до $4.99 / 1000). Платите только
за фактически полученные объявления.

***

### 🇧🇷 Português

Extraia **anúncios de qualquer busca do Avito.ru** — sem login, sem conta. Título, preço,
URL, endereço, imagens, descrição e data, com paginação automática por todas as páginas.

#### Por que este scraper?

- 💸 **Mais barato** que as alternativas — pague só pelos anúncios obtidos.
- 🔎 **Qualquer busca do Avito** — cole a URL de categoria/busca com seus filtros.
- 📄 **Paginação automática**, com retry através do anti-bot do Avito.
- 🖼️ Título, preço (número + formatado), endereço, imagens, descrição.

#### Entrada

| Campo | Descrição |
|---|---|
| `searchUrls` | URLs de busca/categoria do Avito (filtros da URL respeitados). |
| `maxResults` | Máx. de anúncios (`0` = todos). |
| `proxyConfiguration` | Proxy. **Residencial é obrigatório** (padrão). |

#### 💰 Custo

**$4,00 por 1.000 anúncios — tudo incluído.** Preço único com proxy residencial e navegador
inclusos, sem taxas de plataforma escondidas. Abaixo das alternativas (que cobram até
$4,99 / 1.000). Você paga só pelos anúncios efetivamente retornados.

# Actor input Schema

## `searchUrls` (type: `array`):

Avito.ru search/category URLs, e.g. https://www.avito.ru/moskva/telefony

## `maxResults` (type: `integer`):

Maximum listings to scrape in total. Set 0 for all (until pagination ends).

## `proxyConfiguration` (type: `object`):

Proxy. Residential (default) required for Avito's anti-bot.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.avito.ru/moskva/telefony"
  ],
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchUrls": [
        "https://www.avito.ru/moskva/telefony"
    ],
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("analytics_tupiniquim/avito-listings-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchUrls": ["https://www.avito.ru/moskva/telefony"],
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("analytics_tupiniquim/avito-listings-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchUrls": [
    "https://www.avito.ru/moskva/telefony"
  ],
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call analytics_tupiniquim/avito-listings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=analytics_tupiniquim/avito-listings-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/z0rx2OaxRaIQtaDlw/builds/rXdZfpeCmQB4e8RXB/openapi.json
