Avito.ru Listings Scraper avatar

Avito.ru Listings Scraper

Pricing

from $2.99 / 1,000 listings

Go to Apify Store
Avito.ru Listings Scraper

Avito.ru Listings Scraper

Extract public Avito listings, prices, seller information, product specifications, and optional reviews.

Pricing

from $2.99 / 1,000 listings

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

6 days ago

Last modified

Categories

Security

Limited permissions

Share

Collect public Avito.ru classified listings from search pages, generated category searches, or direct listing URLs. Each row keeps the public listing identity, title, price, images, seller and location details, category path, and optional automotive or product fields that Avito exposes. The Actor supports multiple source URLs, bounded pagination, local filters and sorting, deduplication, optional detail enrichment, and a public seller phone only when that phone is already visible on the page.

Get started

  1. Open the Actor Store page and select Try for free, or open the Input tab directly.
  2. Add public Avito search or category pages to searchUrls, or supply direct listingUrls. To build a URL from query, location, and category, leave both searchUrls and the compatibility searchUrl empty.
  3. Keep maxResults, maxPages, and maxDetailRequests small for the first run. Disable includeDetails for a fast search-card-only snapshot.
  4. Start the Actor, open the dataset, and export the rows as JSON, CSV, or Excel. Open Run summary (OUTPUT_SUMMARY) to check counts and source blocking.

Input

All fields are optional; the table defaults come from .actor/input_schema.json. Unsupported field names and out-of-range values are rejected before requests start.

FieldTypeRequired?DefaultMeaning
searchUrlstringOptionalhttps://www.avito.ru/moskva/telefonyOne public HTTPS Avito search URL. Compatibility field used only when searchUrls is absent.
searchUrlsstring arrayOptionalNot suppliedUp to ten public HTTPS Avito search or category URLs. Pages from every URL are combined and deduplicated when enabled.
listingUrlsstring arrayOptionalNot suppliedUp to 500 direct HTTPS Avito listing URLs or numeric listing IDs. When supplied, these become the only targets and each is parsed as a detail page.
querystringOptionalNot suppliedKeywords used to build a search URL only when neither searchUrls nor a usable searchUrl is supplied.
locationstringOptionalРоссияCity or region path used when the Actor builds a search URL, for example Москва or Санкт-Петербург.
categorystringOptionalallCategory slug used when the Actor builds a search URL; all leaves the URL at the location root.
priceMinintegerOptionalNot suppliedLower price parameter added to a generated search URL, from 0 to 1,000,000,000 RUB.
priceMaxintegerOptionalNot suppliedUpper price parameter added to a generated search URL, from 0 to 1,000,000,000 RUB.
sortstring enumOptionalrelevanceSource ordering hint added to a generated URL: relevance, newest, cheapest, or expensive.
pageParameterstring enumOptionalpQuery parameter used for pages after the first: p or page.
maxPagesintegerOptional1Maximum public result pages requested per search URL, from 1 to 20.
deduplicatebooleanOptionaltrueRemove repeated listing IDs or URLs found across pages and source URLs.
sortBystring enumOptionalinput_orderLocal order applied after filtering: input_order, price_asc, price_desc, rating_desc, or title_asc.
filtersobjectOptional{}Wrapper for the local filters below. Filters use only public values already present in the row.
filters.includeKeywordsstring arrayOptional[]Keep a row only when every listed term appears in its public text; at most 20 terms.
filters.excludeKeywordsstring arrayOptional[]Drop a row when any listed term appears in its public text; at most 20 terms.
filters.minPricenumberOptionalNot suppliedKeep rows whose normalized price is at or above this amount, from 0 to 1,000,000,000.
filters.maxPricenumberOptionalNot suppliedKeep rows whose normalized price is at or below this amount, from 0 to 1,000,000,000.
filters.minRatingnumberOptionalNot suppliedKeep rows whose public seller or listing rating is at or above this value, from 0 to 5.
filters.locationContainsstringOptionalNot suppliedKeep rows whose public location contains this text, up to 200 characters.
maxResultsintegerOptional100Maximum unique listing rows stored after filters and sorting, from 1 to 500.
includePhonebooleanOptionalfalseRetain sellerPhone only when a phone number is already exposed in public page text. The Actor does not reveal hidden numbers.
includeDetailsbooleanOptionaltrueKeep detail-page fields such as description, address, attributes, seller details, and structured product data, and allow bounded detail requests for search results.
maxDetailRequestsintegerOptional20Maximum listing detail pages requested for search-result enrichment, from 0 to 500. When omitted entirely through the API, the effective limit is min(maxResults, 20). A direct listingUrls target is already a detail page and does not use this budget again.
includeReviewsbooleanOptionaltrueKeep public seller rating, review summary, listing rating, and review count when present.
includeImagesbooleanOptionaltrueKeep public image URLs exposed by cards or detail pages.
maxImagesintegerOptional20Maximum image URLs retained per row, from 0 to 20.
developerOptionsobjectOptional{}Wrapper for the bounded request controls below. These settings do not bypass source access controls.
developerOptions.requestDelayMsintegerOptional250Pause before each live public request, from 0 to 10,000 ms.
developerOptions.maxConcurrencyintegerOptional2Maximum concurrent public detail requests, from 1 to 5.
developerOptions.maxRequestRetriesintegerOptional1Retries with 1/2/4-second backoff for transient transport failures and HTTP 408/500/502/503/504, from 0 to 3. Security checks, access denials, HTTP 429/439, and proxy authentication failures are not retried.
developerOptions.requestTimeoutSecsintegerOptional30Timeout for each live public request, from 5 to 120 seconds.
developerOptions.maxResponseBytesintegerOptional5000000Maximum accepted response or fixture size, from 1,000 to 15,000,000 bytes.
developerOptions.userAgentstringOptionalNot suppliedTransparent request user-agent label, up to 300 characters.
requestTimeoutSecsintegerOptionalNot suppliedLegacy top-level alias for developerOptions.requestTimeoutSecs, 5 to 120.
timeoutMsintegerOptionalNot suppliedLegacy millisecond timeout alias, 1,000 to 120,000; converted to seconds.
requestDelayMsintegerOptionalNot suppliedLegacy top-level alias for developerOptions.requestDelayMs, 0 to 10,000.
maxConcurrencyintegerOptionalNot suppliedLegacy top-level alias for developerOptions.maxConcurrency, 1 to 5.
maxRequestRetriesintegerOptionalNot suppliedLegacy top-level alias for developerOptions.maxRequestRetries, 0 to 3.
maxResponseBytesintegerOptionalNot suppliedLegacy top-level response-size alias, 1,000 to 15,000,000 bytes.
maxBytesintegerOptionalNot suppliedOlder response-size alias, 1,000 to 15,000,000 bytes.
userAgentstringOptionalNot suppliedLegacy top-level alias for developerOptions.userAgent, up to 300 characters.
proxyConfigurationobjectOptionalNot suppliedOptional standard Apify Proxy editor object. Use ordinary proxy transport only when direct public access is blocked.

Example input adapted from the saved detail-off run (.actor/input.json); the run's provider-specific proxy group is omitted:

{
"searchUrls": [
"https://www.avito.ru/moskva/telefony"
],
"maxPages": 1,
"pageParameter": "p",
"deduplicate": true,
"sortBy": "input_order",
"maxResults": 3,
"includePhone": false,
"includeDetails": false,
"includeReviews": false,
"includeImages": true,
"maxImages": 3,
"maxDetailRequests": 0,
"developerOptions": {
"requestDelayMs": 0,
"maxConcurrency": 1,
"maxRequestRetries": 3,
"requestTimeoutSecs": 30,
"maxResponseBytes": 8000000
},
"proxyConfiguration": {
"useApifyProxy": true
}
}

The Actor reads public Avito.ru HTML over HTTPS. If listingUrls is present, those targets are used instead of search URLs. Otherwise, at least one search URL must be available directly or built from query, location, and category. Local filters, the deduplication pass, sortBy, and maxResults are applied after extraction; a detail failure keeps the base search-card row and increments the operational counters in OUTPUT_SUMMARY.

Output

The dataset contains one row per unique public listing. Optional properties are omitted when the source does not expose them; no diagnostic or placeholder rows are written.

FieldTypeAvailabilityMeaning
idintegerAlwaysNumeric Avito listing identifier observed on the page.
titlestringAlwaysListing title shown by Avito.
urlstringAlwaysNormalized public listing URL.
listingUrlstringAlwaysListing URL as captured from the source page.
sourceUrlstringAlwaysSearch or direct listing page that produced this row.
searchUrlstringAlwaysSearch page recorded for the extraction context; a direct listing target records that listing URL.
pageNumberintegerAlwaysOne-based source page number.
positionintegerAlwaysOne-based position of the listing on its source page.
pricenumberAlwaysNormalized numeric listing price.
currencystringAlwaysCurrency reported by the page, normally RUB.
priceFormattedstringAlwaysPrice text shown by Avito.
imagesstring arrayAlwaysBounded public image URLs, capped by maxImages.
categorystringWhen publishedPublic listing category.
categoryHierarchystring arrayWhen publishedPublic category path, when the page exposes one.
sellerNamestringWhen publishedPublic seller name.
sellerTypestringWhen publishedPublic seller account type.
sellerPhonestringWhen publishedPhone text only when publicly visible and includePhone is enabled.
sellerRatingnumberWhen publishedPublic seller rating from 0 to 5.
sellerReviewSummarystringWhen publishedPublic seller review count or summary text.
descriptionstringWhen publishedPublic listing description from the card or detail page.
locationstringWhen publishedPublic city or locality.
addressstringWhen publishedPublic detail-page address, when exposed.
specificParamsstringWhen publishedCompact parameter line shown on the search card.
parametersstringWhen publishedExpanded parameter text from a detail page.
vehicleobjectWhen publishedOpen object of automotive attributes when the listing is a vehicle; keys vary by listing.
attributesobjectWhen publishedOpen object of detail-page key/value attributes; keys vary by listing.
ratingnumberWhen publishedPublic listing or product rating from 0 to 5.
reviewCountintegerWhen publishedPublic listing or product review count.
isFeaturedbooleanAlwaysWhether public page markup marks the listing as featured.
badgesstring arrayWhen publishedBounded public listing badges.
publishedAtstringWhen publishedPublication timestamp or source text.
brandstringWhen publishedPublic brand when detail data exposes it.
modelstringWhen publishedPublic model when detail data exposes it.
conditionstringWhen publishedPublic condition label.
canonicalUrlstringWhen publishedCanonical listing URL when the page exposes one.
scrapedAtstringAlwaysUTC timestamp when the row was saved.

vehicle and attributes are open objects, so their keys depend on the listing category and the fields published by Avito; the dataset schema does not fix a key list. images, categoryHierarchy, and badges are arrays of public strings. The saved run used includeDetails: false, so all three rows contain the same 14 search-card fields and omit the detail-only properties.

The example is a real saved row from the 2026-10-25 run. All values are complete.

{
"id": 4168837752,
"title": "iPhone 13, 128 ГБ, SIM + eSIM",
"url": "https://www.avito.ru/moskva/telefony/iphone_13_128_gb_sim_esim_4168837752?context=H4sIAAAAAAAA_wE_AMD_YToyOntzOjEzOiJsb2NhbFByaW9yaXR5IjtiOjA7czoxOiJ4IjtzOjE2OiJKZlhOSXN2WjlCNUJENWM1Ijt9KSOG8z8AAAA",
"listingUrl": "https://www.avito.ru/moskva/telefony/iphone_13_128_gb_sim_esim_4168837752?context=H4sIAAAAAAAA_wE_AMD_YToyOntzOjEzOiJsb2NhbFByaW9yaXR5IjtiOjA7czoxOiJ4IjtzOjE2OiJKZlhOSXN2WjlCNUJENWM1Ijt9KSOG8z8AAAA",
"sourceUrl": "https://www.avito.ru/moskva/telefony",
"searchUrl": "https://www.avito.ru/moskva/telefony",
"pageNumber": 1,
"position": 1,
"price": 24990,
"currency": "RUB",
"priceFormatted": "24 990 ₽",
"images": [
"https://60.img.avito.st/image/1/1.CrbHZLaApl_RxARe32QO47fFpFt106JfdbTHW3Vnp_1yx6JF0cQEXnE.e5yBZ00splEDIBw77Cc-OAoN52pA16XXyjCmzkyeFfo",
"https://c60.img.avito.st/image/1/1.Cd14PraApTRungc1ZgIHoH-fpzDKiaE0yu7EMMo9pJbNnaEubp4HNc4.UoV2Qfqvps3DFpzYpbBIuYDzrVtXuzcNhnDrqHi88mQ",
"https://c90.img.avito.st/image/1/1.MRn8QLaAnfDq4D_xkgRpYeThn_RO95nwTpD89E5DnFJJ45nq6uA_8Uo.FlI7uce-Jg01tHRvo1IPKEpKrNO5gK90ZF9Pk7O1k5o"
],
"isFeatured": false,
"scrapedAt": "2026-10-25T20:53:23.609Z"
}

Run summary

Run summary is stored separately from the dataset in the run's key-value store under OUTPUT_SUMMARY; a backward-compatible copy is also written under OUTPUT. The run logs contain the issue details behind the counters.

FieldMeaning
statusActor outcome. A clean empty or partial result is still SUCCEEDED.
runStatusCanonical run status; matches status.
dataStatusCompleteness of the saved source data: COMPLETE, PARTIAL, NO_RESULTS, or FAILED.
recordCountSource-backed listing rows saved to the dataset.
listingCountListing rows saved; mirrors recordCount for this Actor.
diagnosticCountOperational issues counted for the run.
diagnosticItemsDiagnostic dataset rows; always 0.
errorCountOperational failures recorded for the run.
recordsEmittedSource-backed listing rows successfully emitted.
requestedUrlCountNumber of public source URLs requested.
requestCountTotal source requests attempted.
retriesRetry attempts performed.
successfulRequestsRequests that returned usable responses.
pagesFetchedSearch result pages fetched successfully.
detailPagesFetchedListing detail pages fetched successfully.
candidateItemsListings found before local filters and the final cap.
filteredCountCandidates removed by configured filters.
duplicateCountCandidates removed as duplicates.
blockedCountRequests classified as blocked.
sourceBlockedWhether a public source access boundary was observed.
proxyEnabledWhether standard Apify Proxy routing was active.
maxResultsListing cap used for the run.
maxPagesPer-URL page cap used for the run.
sortByLocal output sort used for the run.
sourceUrlPrimary public source URL for the run.
completedAtUTC time the summary was written.
StatusData statusMeaning
SUCCEEDEDCOMPLETEEligible listings were saved without an extraction problem.
SUCCEEDEDPARTIALListings were saved, but a later page or detail request failed. Saved rows remain available.
SUCCEEDEDNO_RESULTSThe source completed cleanly and returned no matching listings.
FAILEDFAILEDA fatal error occurred before any usable listing was saved.

Example OUTPUT_SUMMARY from the 2026-10-25 run:

{
"status": "SUCCEEDED",
"runStatus": "SUCCEEDED",
"dataStatus": "COMPLETE",
"recordCount": 3,
"listingCount": 3,
"diagnosticCount": 0,
"diagnosticItems": 0,
"errorCount": 0,
"recordsEmitted": 3,
"requestedUrlCount": 1,
"requestCount": 1,
"retries": 0,
"successfulRequests": 1,
"pagesFetched": 1,
"detailPagesFetched": 0,
"candidateItems": 50,
"filteredCount": 0,
"duplicateCount": 0,
"blockedCount": 0,
"sourceBlocked": false,
"proxyEnabled": true,
"maxResults": 3,
"maxPages": 1,
"sortBy": "input_order",
"sourceUrl": "https://www.avito.ru/moskva/telefony",
"completedAt": "2026-10-25T20:53:23.902Z"
}

Coverage and limitations

The Actor reads public Avito.ru search and listing HTML. It does not log in, call private APIs, solve CAPTCHA or security checks, or bypass access controls. Search cards expose fewer fields than detail pages; properties such as description, address, sellerName, location, category, parameters, vehicle, attributes, badges, publishedAt, and canonicalUrl require source data that a given page may not publish. When includeDetails is false or maxDetailRequests is 0, saved rows remain search-card snapshots.

searchUrl is a compatibility field: it is ignored when searchUrls is supplied. listingUrls replaces search targets entirely, and each direct listing is treated as a detail page. Phone numbers are never revealed or inferred; sellerPhone is retained only if Avito already shows the number in public text and includePhone is enabled. Blocked, empty, or partial responses are counted in OUTPUT_SUMMARY and described in run logs rather than turned into placeholder rows. A failed detail request normally keeps the base listing, so a successful run can still contain fewer detail fields than expected.

Usage and support

Cost depends on search pages, direct or detail pages, response size, retries, concurrency, and retained image URLs. Start with one search URL, maxResults of 3 to 10, maxPages of 1, and includeDetails disabled; enable detail enrichment only after the search-card shape is confirmed. See the Actor's Pricing tab for current account rates.

Use the Actor Issues page to report a problem. Include the run ID, the input used, and the OUTPUT_SUMMARY; do not include tokens, cookies, or private data. This Actor is not affiliated with or endorsed by Avito. Use it only for public data and in accordance with Avito's terms, robots guidance, and applicable law. Public listings can contain personal information; use the output only for lawful purposes.