# Avito Scraper - Listings, Prices, Real Estate & Sellers (`topapi/avito-scraper`) Actor

Scrape Avito.ru listings by search term, category, city or URL: price, address, coordinates, date, photos, seller name, type and rating. Real estate filters: rooms, area, floor. Optional details: full description, parameters, views. Monitor mode. $2.60 per 1,000 listings, no login.

- **URL**: https://apify.com/topapi/avito-scraper.md
- **Developed by:** [Top Api](https://apify.com/topapi) (community)
- **Categories:** E-commerce, Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.60 / 1,000 listings

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Avito Scraper do?

**Avito Scraper** extracts listings from [Avito.ru](https://www.avito.ru), Russia's largest classifieds site, and turns a search term, a category and a city (or any Avito URL) into structured rows: one listing per row with its price, location, address, coordinates, date, photos, badges and seller. Real estate listings also get rooms, area and floor, and an optional details step adds the full description, every parameter and the view counts. It is built for price monitoring, resellers, real estate agencies and analysts, car dealers and market researchers who need Avito data in a spreadsheet, a database or an AI agent.

Also searched as: Avito parser, парсер Авито, Avito API, Avito.ru scraper, Avito real estate scraper.

<a href="https://console.apify.com/actors/I3dSSW3MKYqmsZQKI"><img src="https://api.apify.com/v2/key-value-stores/qNQ9zP0xaj2yxGeMY/records/avito-scraper-source.png" alt="Avito search results (long-term rentals in Moscow) that Avito Scraper turns into rows" style="width:70%"></a>

- **Every Avito category:** goods, electronics, cars, real estate (sale, long-term and daily rent, new buildings), jobs, services. Search by keyword, browse a category, or paste Avito search URLs with any filters set in the browser.
- **Rich listing rows:** price (with old price, discount and Avito's own market-price badge), city, address, coordinates, metro with walking time, posting date, photos, promotion flags, seller name, type, rating, review count and completed-listing count.
- **Real estate filters that Avito itself applies:** rooms, area, floor, house type, renovation, seller (owner / developer / agency) and walking time to the metro, plus rooms, area, floor and price per m² on every flat.
- **Listing details on request:** full description, every parameter, total and today's views, breadcrumbs, exact address, all photos, the seller's registration date, building information and rent terms for real estate, market price and vehicle history for cars, price lists for services and conditions for vacancies.
- **Big searches collected in full:** Avito serves 1,500 listings per search; the actor collects the rest by running the search again in price bands.
- **Monitoring:** scheduled runs deliver only new listings and price changes.
- **No login, cookies or Avito API key.**
- **Export anywhere:** JSON, CSV, Excel, XML; schedules, webhooks, Make, Zapier, n8n, Google Sheets, the Apify API and MCP.

### What data can you get from Avito?

<table>
<tr>
<td>🔗 Listing URL and ID (`id`)</td>
<td>📝 Title and description snippet</td>
<td>💰 Price, price text, old price, discount</td>
</tr>
<tr>
<td>🏷️ Avito market-price badge (`marketPriceBadge`)</td>
<td>📍 City, address, latitude, longitude</td>
<td>🚇 Metro station and walking time</td>
</tr>
<tr>
<td>🕒 Posted or raised date (`postedAt`)</td>
<td>🖼️ Photo URLs and photo count</td>
<td>⭐ Seller name, rating and reviews</td>
</tr>
<tr>
<td>🏢 Seller type: private, company, agency, developer, dealer</td>
<td>📦 Completed listings of the seller</td>
<td>🚚 Avito Delivery and reserved flags</td>
</tr>
<tr>
<td>🏠 Rooms, area, floor, floors in building</td>
<td>📐 Price per m² (`pricePerSquareMeter`)</td>
<td>🏗️ New-build complex name and link</td>
</tr>
<tr>
<td>🚗 Car spec line, market price, vehicle history (details)</td>
<td>📋 Every parameter of the listing (details)</td>
<td>👀 Total views and views today (details)</td>
</tr>
<tr>
<td>🧾 Full description and HTML (details)</td>
<td>🏢 Building info and rent terms (details)</td>
<td>🔁 New / re-priced status (monitor)</td>
</tr>
</table>

On a 200-listing run (laptops in Moscow) price, title, date and photos were filled on 100% of rows, city on 95%, seller name and rating on 91%, and coordinates on 65% (Avito hides the address of some listings). On 100 long-term rentals in Saint Petersburg, area, floor, address, coordinates and metro were filled on 100% of rows.

### How to scrape Avito with Avito Scraper

1. [Sign up for a free Apify account](https://console.apify.com/sign-up). The free plan includes monthly credit to try the actor.
2. Open **Avito Scraper** and go to the **Input** tab.
3. Type a search term (e.g. `iphone 15`), pick a location (e.g. `Москва`) and a category, or paste Avito URLs.
4. Set **Max listings** and switch on **Listing details** if you need the full listing page.
5. Click **Start**.
6. Download the results as JSON, CSV, Excel or XML, or read them through the API.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| **What to scrape** | | |
| `queries` | array | Search terms, one per line, e.g. `iphone 15`, `диван угловой`. Each term runs in every location. |
| `startUrls` | array | Avito search or category URLs (all browser filters kept) or listing URLs. |
| `itemIds` | array | Avito listing ids, e.g. `8279423619`. |
| **Filters** (applied by Avito) | | |
| `location` | array | City or region by name or slug: `Москва`, `Saint Petersburg`, `kazan`, `Татарстан`. Empty = all of Russia. |
| `category` | string | One of 56 Avito categories (default `all`). |
| `categoryPath` | string | Any Avito path, e.g. `telefony/mobilnye_telefony/apple`. |
| `dealType` | string | Real estate: `sale`, `resale`, `new`, `rent`, `daily`, `buy`, `rent_wanted`. |
| `priceMin`, `priceMax` | integer | Price range in roubles. |
| `sort` | string | `relevance` (default), `newest`, `cheapest`, `expensive`. |
| `sellerType` | string | `any`, `private`, `company`. |
| `withDeliveryOnly`, `localOnly` | boolean | Avito Delivery only; prefer the chosen location. |
| `rooms`, `areaMin/Max`, `floorMin/Max`, `houseType`, `renovation`, `landAreaMin/Max`, `realtySellerType`, `metroWalkMinutes` | | Real estate filters. |
| `filters` | object | Any other Avito filter by its parameter id. |
| **Refine results** (checked before a row is charged) | | |
| `includeKeywords`, `excludeKeywords`, `descriptionKeywords` | array | Words that must or must not appear in the title or description. |
| `withPhotoOnly`, `minSellerRating`, `notFirstFloor`, `notLastFloor` | | Quality filters. |
| `postedWithinDays`, `sinceDate` | | Date window on the posting (or raising) date. |
| `flagUnderpriced` | boolean | Adds `underpriced` and `pageMedianPrice`. |
| **Extra data** | | |
| `includeDetails` | boolean | Opens each listing's page. Default `false`. |
| **Monitoring** | | |
| `monitorMode`, `monitorPriceChanges`, `monitorStoreName` | | Deliver only new (and re-priced) listings since the last run. |
| **Output** | | |
| `maxResults` | integer | Total listings (default 100, `0` = no limit). |
| `maxResultsPerSearch`, `maxPagesPerSearch`, `splitByPrice`, `compact` | | Caps, price-band splitting and compact rows. |
| **Advanced** | | |
| `proxyConfiguration`, `residentialCountry`, `maxConcurrency` | | Connection settings; the defaults work. |

<a href="https://console.apify.com/actors/I3dSSW3MKYqmsZQKI"><img src="https://api.apify.com/v2/key-value-stores/qNQ9zP0xaj2yxGeMY/records/avito-scraper-output.png" alt="Avito Scraper output table with rentals, metro, rooms, area, floor and views" style="width:70%"></a>

#### Input JSON

```json
{
    "category": "apartments",
    "dealType": "rent",
    "location": ["Москва"],
    "rooms": ["1", "2"],
    "areaMin": 40,
    "sort": "newest",
    "includeDetails": true,
    "maxResults": 100
}
```

#### Search by keyword or by category - or both

`queries` work like Avito's search box. Leave them empty to browse a whole category in a city (`category` + `location`). A keyword plus a category narrows the search the same way Avito does.

#### Paste the URL when you set many filters

Set any filters on avito.ru (car make and model, brand, condition, delivery...) and paste the address bar into `startUrls`. Every filter in the URL is kept. Listing URLs in the same field become one row each.

#### Real estate: pick the deal type first

For `apartments`, `rooms`, `houses`, `land`, `garages` and `commercial`, set `dealType` (sale, long-term rent, daily rent...) and then the real estate filters. A filter that Avito does not offer in the chosen category is listed in the run summary and skipped.

### ⬆️ Output

One row per listing. An excerpt of a real row (long-term rentals in Moscow, details on; arrays shortened):

```json
{
    "id": "7497852601",
    "url": "https://www.avito.ru/moskva/kvartiry/2-k._apartamenty_118_m_4597_et._7497852601",
    "title": "2-к. апартаменты, 118 м², 45/97 эт.",
    "price": 380000,
    "priceFormatted": "380 000 ₽ в месяц",
    "address": "Москва, 1-й Красногвардейский пр., 15",
    "latitude": 55.750484,
    "longitude": 37.539527,
    "metro": "Деловой центр",
    "postedAt": "2026-10-14T21:26:54.000Z",
    "rooms": 2, "area": 118, "floor": 45, "totalFloors": 97,
    "summaryLine": "Залог 380 000 ₽ · Без комиссии · ЖКУ включены без счетчиков",
    "seller": { "name": "Whitewill", "type": "agency", "typeLabel": "Агентство", "closedListings": 5828 },
    "viewsTotal": 868,
    "viewsToday": 14,
    "parameters": [{ "name": "Площадь кухни", "value": "9 м²" }],
    "buildingInfo": [{ "name": "Тип дома", "value": "монолитный" }],
    "detailsIncluded": true
}
```

#### Fields

| Field | Meaning | Filled (real runs) |
|---|---|---|
| `id`, `url`, `title`, `price`, `priceFormatted`, `postedAt`, `images` | The listing | 100% |
| `location` | City | 95% (laptops, Moscow), 100% (rentals) |
| `address`, `latitude`, `longitude`, `metro`, `geoReferences` | Where it is | 65% (laptops), 100% (rentals) |
| `seller.name`, `seller.rating`, `seller.reviewCount` | Seller | 91% (laptops); agencies often have no rating |
| `seller.type`, `userType` | private / company / agency / developer / dealer | 100% |
| `rooms`, `area`, `floor`, `totalFloors` | Real estate, from Avito's title | 100% on rentals (rooms 79%: studios and free layouts) |
| `pricePerSquareMeter`, `developmentName` | Real estate for sale | price per m² on sale listings; complex name on new builds |
| `summaryLine` | Car spec line, rent terms, item condition | 100% on cars and rentals |
| `marketPriceBadge`, `badges`, `promoted` | Avito badges and promotions | as Avito shows them |
| `description`, `descriptionHtml`, `parameters`, `breadcrumbs` | Details | 100% of rows with details |
| `viewsTotal`, `viewsToday` | Details | 100% (rentals), 73% (cars); services and job pages show 0 on Avito itself |
| `carMarketPrice`, `vehicleHistory` | Details, cars | 73% |
| `buildingInfo`, `rentConditions` | Details, real estate | 100% of rentals; building info on flats for sale |
| `priceList` | Details, services: price list rows (group, title, price) | 3 of 3 services checked |
| `jobInfo` | Details, jobs: experience and candidate conditions | 3 of 3 vacancies checked |
| `seller.registeredSince` | Details | 30-38% (shown for private sellers) |
| `monitorStatus`, `previousPrice` | Monitor mode | new / priceChanged |

### Use cases

- 📈 **Price monitoring:** a reseller tracks iPhone or laptop prices in Moscow every morning with `sort: newest` and monitor mode.
- 🏠 **Real estate analytics:** an agency pulls every 2-room flat for rent in a city with area, floor, metro and price per m².
- 🚗 **Car dealers:** collect cars with Avito's market price and vehicle history from the details step.
- 🛒 **Marketplace research:** compare seller types, promotion share and delivery availability in a category.
- 🧾 **Lead lists:** shops, agencies and dealers with their completed-listing counts and ratings.
- 🤖 **AI agents:** `compact` rows feed an LLM pipeline or an MCP client.

### How much does it cost to scrape Avito?

Avito Scraper is pay-per-event: **$0.0026 per listing** ($2.60 per 1,000) and **$0.0081 per listing with details** on top. There is no start fee. You pay only for listings delivered to the dataset: duplicates, listings removed by your filters and unchanged listings in monitor mode are not charged.

| Listings | Without details | With details |
|---|---|---|
| 10 | $0.026 | $0.107 |
| 100 | $0.26 | $1.07 |
| 1,000 | $2.60 | $10.70 |

The Apify free plan's monthly credit covers about 1,900 listings, or about 460 with details. Set **Max listings** or the run's maximum charge to cap a run's cost.

### Integrations, API, scheduling & MCP

- **Schedules:** run the same input daily or hourly with monitor mode on; each run delivers only what is new.
- **Webhooks:** get a call when a run finishes and pull the dataset.
- **Make, Zapier, n8n, Google Sheets, Slack:** send rows wherever you work.
- **API:** start runs and read datasets from [Python](https://apify.com/TopApi/avito-scraper/api/python) or [JavaScript](https://apify.com/TopApi/avito-scraper/api/javascript) with `apify-client`.
- **MCP:** connect the actor to Claude, ChatGPT or Cursor through the [Apify MCP server](https://apify.com/TopApi/avito-scraper/api/mcp).

### More marketplace scrapers

- 🛒 [Facebook Marketplace Scraper](https://apify.com/TopApi/facebook-marketplace-scraper) - use it when the listings are on Facebook Marketplace.
- 🚗 [Mobile.de Listings Scraper](https://apify.com/TopApi/mobile-de-listings-scraper) - German car listings with price ratings.
- 🚙 [AutoScout24 Listings Scraper](https://apify.com/TopApi/autoscout24-listings-scraper) - European car listings and dealers.
- 🏡 [Zillow Scraper](https://apify.com/TopApi/zillow-scraper) - US homes, Zestimate and price history.
- 🏘️ [Realtor.com Scraper](https://apify.com/TopApi/realtor-listings-scraper) - US listings, sold homes and rentals.

See every actor on our profile: [apify.com/TopApi](https://apify.com/TopApi).

### Limits & empty runs

- **1,500 listings per search:** Avito serves 30 pages of 50. With `splitByPrice` on (default), larger searches are collected in price bands; a 1,600-listing run of Moscow laptops took 6 minutes.
- **Speed:** 20 listings in about 8 seconds, 100 in about 10 seconds, 40 with details in about 1-2 minutes.
- **Phone numbers are not included:** Avito shows them only to signed-in users.
- **Model reviews are not included:** past the first ten, Avito loads them through a separate request of the kind it often answers with human verification.
- **Avito's checks:** when Avito asks for human verification on one connection, the actor does not answer it and does not use that connection again; if every connection is used up, the run ends with the listings it has and says so in its status. Run it again later for the rest.
- **Category pages:** for some top-level categories Avito shows a showcase instead of a list; the actor then reads the listings newest first and notes it in the run summary.
- **Never charged:** duplicates, filtered listings, unchanged listings in monitor mode, listings that no longer exist, and details that could not be loaded.

### ❓ FAQ

#### How much does Avito Scraper cost?

$2.60 per 1,000 listings, plus $8.10 per 1,000 for listings with details. No start fee; see the table above.

#### How many listings can Avito Scraper return?

Up to 100,000 per run. One search returns up to 1,500 listings from Avito; with price-band splitting the actor goes past that.

#### Can I monitor Avito for new listings with Avito Scraper?

Yes. Turn on **Monitor mode**, sort by **Newest first** and schedule the task. Each run delivers only listings it has not delivered before, plus listings whose price changed (`monitorStatus`, `previousPrice`). An empty check reads one page.

#### Can I use Avito Scraper with the Apify API or Python?

Yes. Start a run with `apify-client` for Python or JavaScript and read the dataset; see the API tab.

#### Can I use Avito Scraper through an MCP server?

Yes, through the Apify MCP server; compact output keeps rows small for an AI agent.

#### Does Avito Scraper need an Avito account, cookies or an API key?

No. It reads Avito's public pages. Avito's official API only covers your own listings.

#### Does Avito Scraper return seller phone numbers?

No. Avito shows phone numbers only to signed-in users. Rows say whether the seller has a phone button (`hasPhone`) and, with details, the masked number.

#### Can Avito Scraper filter real estate by rooms, area and floor?

Yes. Set `category`, `dealType` and the real estate filters; Avito applies them, so you pay only for matching listings.

#### Why did my Avito Scraper run return fewer listings than expected?

The search may have fewer listings than **Max listings**, your refine filters may have removed some, or Avito's checks used up every connection; the status message and the `RUN_SUMMARY` record say which.

#### Your feedback

Found a bug or a missing field? Open an issue on the [Issues tab](https://apify.com/TopApi/avito-scraper/issues/open) and we will look at it.

# Actor input Schema

## `queries` (type: `array`):

What you would type in Avito's search box, one per line, e.g. "iphone 15", "диван угловой", "велосипед". Each term runs in every location below.

## `startUrls` (type: `array`):

Avito search or category URLs (every filter you set in the browser is kept), or listing URLs. You can also link a text file of URLs.

## `itemIds` (type: `array`):

Avito listing ids (the number at the end of a listing URL), e.g. "8279423619". Each becomes one row.

## `location` (type: `array`):

City or region, by name or Avito slug, e.g. "Москва", "Saint Petersburg", "kazan", "Татарстан". Empty = the whole of Russia.

## `category` (type: `string`):

Avito category to search in. Works with or without search terms.

## `categoryPath` (type: `string`):

Any Avito category path instead of the list above, as it appears in Avito URLs, e.g. "telefony/mobilnye_telefony/apple".

## `dealType` (type: `string`):

For apartments, rooms, houses, land, garages and commercial real estate.

## `priceMin` (type: `integer`):

Lowest price in roubles, e.g. 10000.

## `priceMax` (type: `integer`):

Highest price in roubles, e.g. 50000.

## `sort` (type: `string`):

Avito's own sort order. "Newest first" pairs with monitor mode.

## `sellerType` (type: `string`):

Private sellers or companies only.

## `withDeliveryOnly` (type: `boolean`):

Only listings that can be shipped with Avito Delivery.

## `localOnly` (type: `boolean`):

Avito's "localPriority" switch: on = listings from the chosen location first; off = Avito's default mix.

## `rooms` (type: `array`):

Apartments and rooms: number of rooms, several allowed.

## `areaMin` (type: `integer`):

Real estate: total area from, m² (house area for houses).

## `areaMax` (type: `integer`):

Real estate: total area up to, m².

## `floorMin` (type: `integer`):

Apartments and rooms: floor from.

## `floorMax` (type: `integer`):

Apartments and rooms: floor up to.

## `houseType` (type: `array`):

Wall material of the building, several allowed.

## `renovation` (type: `array`):

Renovation state, several allowed. Sale listings offer renovated / needs repair; rentals also cosmetic, euro and designer.

## `landAreaMin` (type: `integer`):

Houses and land plots: plot area from, in sotka (100 m²).

## `landAreaMax` (type: `integer`):

Houses and land plots: plot area up to, in sotka.

## `realtySellerType` (type: `array`):

Owners, developers or agencies (Avito's own real estate seller filter).

## `metroWalkMinutes` (type: `string`):

Real estate in metro cities: at most this many minutes on foot to the metro.

## `filters` (type: `object`):

Any Avito filter by its own parameter id: values as a list, ranges as {"from","to"}, e.g. {"121749": \["1069839"], "2952": {"from": 5}}. Easier: set filters on avito.ru and paste the URL.

## `includeKeywords` (type: `array`):

Keep a listing only if its title or description contains at least one of these words, e.g. "оригинал".

## `excludeKeywords` (type: `array`):

Drop a listing if its title or description contains any of these words, e.g. "копия", "на запчасти".

## `descriptionKeywords` (type: `array`):

Keep a listing only if its text contains every one of these words, e.g. "балкон". With details on, the full description is checked.

## `withPhotoOnly` (type: `boolean`):

Drop listings without photos.

## `minSellerRating` (type: `number`):

Keep listings whose seller rating is at least this (0-5), e.g. 4.5. Sellers with no rating are dropped.

## `notFirstFloor` (type: `boolean`):

Apartments and rooms: drop first-floor listings.

## `notLastFloor` (type: `boolean`):

Apartments and rooms: drop top-floor listings.

## `postedWithinDays` (type: `integer`):

Only listings posted or raised in the last N days, e.g. 1. Pairs with "Newest first".

## `sinceDate` (type: `string`):

Only listings posted or raised on or after this date.

## `flagUnderpriced` (type: `boolean`):

Adds "underpriced" (price below 80% of the median on the same results page) and "pageMedianPrice". Avito's own market badge is always in "marketPriceBadge".

## `includeDetails` (type: `boolean`):

Full description, every parameter, views (total and today), breadcrumbs, exact address, all photos, seller registration date, building and rent terms for real estate. $0.0081 per listing.

## `monitorMode` (type: `boolean`):

Deliver only listings not delivered by earlier runs of this monitor (and re-priced ones, see below). Use with "Newest first".

## `monitorPriceChanges` (type: `boolean`):

In monitor mode, also deliver a known listing again when its price changed (with "previousPrice").

## `monitorStoreName` (type: `string`):

Name of the key-value store that remembers delivered listings. Use one name per monitored search, e.g. "moscow-iphone".

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

Total listings to deliver in this run. Avito serves 50 per page and 30 pages per search; past that the run splits the search by price. 0 = no limit.

## `maxResultsPerSearch` (type: `integer`):

Cap for each search term × location (or URL). 0 = no per-search cap.

## `maxPagesPerSearch` (type: `integer`):

Pages of 50 listings to read per search (and per price band when splitting).

## `splitByPrice` (type: `boolean`):

When a search has more listings than Avito serves (1,500 per search), run it again in price bands to collect the rest.

## `compact` (type: `boolean`):

Core fields only (id, URL, title, price, location, coordinates, seller, date) - small rows for AI/MCP pipelines and spreadsheets.

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

Leave as is: the run starts on Apify's datacenter proxy and moves to residential when Avito blocks it. Add your own proxy URLs to use them first.

## `residentialCountry` (type: `string`):

Country of the residential connection used after datacenter IPs are blocked.

## `maxConcurrency` (type: `integer`):

Listing pages opened in parallel (details). Higher is faster; Avito blocks fast bursts.

## Actor input object example

```json
{
  "queries": [
    "iphone 15"
  ],
  "startUrls": [],
  "location": [
    "Москва"
  ],
  "category": "all",
  "dealType": "any",
  "sort": "relevance",
  "sellerType": "any",
  "withDeliveryOnly": false,
  "withPhotoOnly": false,
  "notFirstFloor": false,
  "notLastFloor": false,
  "flagUnderpriced": false,
  "includeDetails": false,
  "monitorMode": false,
  "monitorPriceChanges": true,
  "monitorStoreName": "avito-monitor",
  "maxResults": 20,
  "maxPagesPerSearch": 100,
  "splitByPrice": true,
  "compact": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "residentialCountry": "RU",
  "maxConcurrency": 3
}
```

# Actor output Schema

## `results` (type: `string`):

One item per Avito listing: title, price, location, coordinates, date, photos, seller, badges; real estate rooms/area/floor; with details the full description, parameters and views.

## `summary` (type: `string`):

Per-search pages and counts, listings skipped (duplicates, filtered, unchanged in monitor mode, not found), and the connections used.

# 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 = {
    "queries": [
        "iphone 15"
    ],
    "startUrls": [],
    "location": [
        "Москва"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("topapi/avito-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 = {
    "queries": ["iphone 15"],
    "startUrls": [],
    "location": ["Москва"],
    "maxResults": 20,
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "iphone 15"
  ],
  "startUrls": [],
  "location": [
    "Москва"
  ],
  "maxResults": 20
}' |
apify call topapi/avito-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,topapi/avito-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/I3dSSW3MKYqmsZQKI/builds/EFdmZhL7u4WtcPCFW/openapi.json
