Avito Listings Scraper: Prices, Details and New Ads avatar

Avito Listings Scraper: Prices, Details and New Ads

Pricing

from $2.52 / 1,000 listings

Go to Apify Store
Avito Listings Scraper: Prices, Details and New Ads

Avito Listings Scraper: Prices, Details and New Ads

Scrape public Avito listings by search words or links into clean rows with prices, locations, seller type, photos and full details. Add model reviews, price comparison and only-new monitoring. No phone numbers.

Pricing

from $2.52 / 1,000 listings

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Avito Listings Scraper reads public Avito.ru search results and listing pages and saves clean rows with prices, locations, seller type, photos and optional full details.

It suits price researchers, resellers, real estate and car analysts, and the smallest run is one search word with 10 listings in about 8–60 seconds for about $0.04–$0.07 on the FREE tier, with no Avito login.

Avito Listings Scraper: search words or links go in; rows with price, location, seller and details come out as JSON, CSV or Excel

Table of contents

What it does

The Actor takes search words, Avito search links or listing links from Avito.ru. It returns one row for each listing, with the title, price, location, category, publication time, seller type and link. You can add full details, public model reviews, model price statistics and only-new monitoring. It does not return phone numbers or personal email addresses, and it needs no Avito login.

Good fit

  • Track prices of a product or a car in a region.
  • Collect homes for sale with Avito's price estimate and the building's listing history.
  • Get only the new listings of a saved search each day.
  • Read public reviews and price statistics of a product model.
  • Find short-term rentals for exact dates and guests.

👉 Try it now: open the input form

How it works

  1. The Actor opens the public Avito searches or listing pages that you give it.
  2. It removes duplicates, applies your filters and reads the extra data that you turned on.
  3. It saves one Dataset row for each listing and writes a run summary with the stop reason.

👉 Try it now: open the input form

Quick start

Input form: Search words, Region and Maximum listings marked with boxes 1, 2 and 3

  1. Open the input form. Keep the prefilled велосипед in Search words or type your own words (box 1 in the picture).

  2. Keep moskva in Region or paste a region from an Avito link, such as sankt-peterburg (box 2).

  3. Keep 10 in Maximum listings for a first test (box 3).

  4. Click Start.

  5. Open the Output tab and check title, price and location (box 5).

    Output table: Avito listings with title, price and location marked with box 5

Expected result: 10 rows, each with a title, a price, a location and a link to the listing.

👉 Try it now: open the input form

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
Compare prices of a product in a regionquery, region, sortListing rowtitle, price, location, urlCSV or Excel export
Get new listings from a saved searchsearchUrls, onlyNew, stateNameNew listing rowitemId, changeType, price, urlSchedule and Slack or Notion summary
Watch price changessearchUrls, trackChanges, stateNameChanged listing rowchangeType, price, priceText, postedAtSchedule, API or webhook
Value a home for salelistingUrls, includeDetailsDetailed listing rowmarketValuation, realtyReport, buildingListingHistoryJSON export
Study a product modellistingUrls, includeReviews, includeComparablesListing row with model dataproductReviews, modelRating, modelComparablesJSON export or API

👉 Try it now: open the input form

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
querySearch wordsstringOne search input is requiredPrefill велосипедAny textSearches these wordsвелосипедUse for one simple search
regionRegionstringNoDefault and prefill moskvaRegion path from an Avito link; rossiya for all of RussiaSets the search regionsankt-peterburgUse rossiya for wide searches
searchUrlsSearch linksarray of stringsOne search input is requiredDefault []Public Avito search linksKeeps the link's category and filtershttps://www.avito.ru/moskva/velosipedyBest when you need Avito's own filters
queriesMore search phrasesarray of stringsOne search input is requiredDefault []Any textRuns several phrases in region["велосипед", "самокат"]Use for large volumes
listingUrlsListing linksarray of stringsOne search input is requiredDefault []Public listing links or numeric IDsReads these listings8075689687Use for exact listings
categoryPathCategory pathstringOne search input is requiredEmptyPath after the region in an Avito linkLimits the search to a categorykvartiry/prodamCopy it from an Avito link
maxItemsMaximum listingsintegerNoDefault and prefill 101–20000Limits saved rows across all inputs500Start small, then raise it
includeDetailsRead full listing detailsbooleanNofalsetrue, falseAdds descriptions, photos, parameters and coordinatestrueSlower and costs more per row
includeReviewsRead model reviewsbooleanNofalsetrue, falseAdds public model reviews for supported productstrueUse with listing links of products
includeComparablesCompare model pricesbooleanNofalsetrue, falsePrice statistics, up to 35 offers (10 if limited)trueCheck modelComparables.region
maxReviewsMaximum reviews per listingintegerNo10001–10000Limits reviews for each listing100Lower it to control cost
minPriceMinimum price (RUB)integerNoEmpty0 or moreKeeps listings at or above this price5000Not above maxPrice
maxPriceMaximum price (RUB)integerNoEmpty0 or moreKeeps listings at or below this price20000Not below minPrice
sortSort orderstringNorelevancerelevance, newest, cheapest, expensiveSets the Avito ordernewestUse newest for monitoring
sellerTypeSeller typestringNoanyany, private, companyFilters by sellerprivateNone
localOnlyPrefer the selected regionbooleanNofalsetrue, falseAsks Avito to prioritize regiontrueAvito can still show nearby listings
onlyNewOnly new listingsbooleanNofalsetrue, falseSkips listing IDs from earlier runstrueKeep the same input or stateName
trackChangesTrack changed listingsbooleanNofalsetrue, falseReturns new and changed listingstrueKeep the same input or stateName
stateNameHistory namestringNoEmptyLetters, digits, -, _; up to 64 charactersNames a shared listing historybikes-moscowUse for scheduled runs
excludeListingIdsSkip listing IDsarray of stringsNoDefault []Numeric IDsSkips these listings["8075689687"]None
skipNegotiablePriceSkip listings without a numeric pricebooleanNofalsetrue, falseDrops rows with no numeric pricetrueUseful for price statistics
flagUnderpricedFlag low prices in search resultsbooleanNofalsetrue, falseCompares each row with its source pagetrueNeeds at least 10 prices
maxPagesPerSearchMaximum pages per searchintegerNo1001–100Stops a search after this many pages5Lower it to control cost
deliveryConnectorSend results toconnectorNoEmptyYour Slack, Notion or other MCP connectorPosts a short summary after the runYour connectorOptional
deliveryTargetNotion page or channelstringNoEmptyNotion page link or Slack channel IDSets where the summary goesC0123456789Optional
checkInCheck-in datestringWith checkOutEmptyYYYY-MM-DDFirst night of a short-term rental2026-12-10Leave query empty
checkOutCheck-out datestringWith checkInEmptyYYYY-MM-DD, after checkInDeparture date2026-12-13Leave query empty
guestsAdult guestsintegerWith childAgesEmpty1–50Sets the number of adults2Leave query empty
childAgesChildren agesarray of integersNoDefault []0–17Adds children to the rental search[4, 9]Also set guests

Empty input: the run stops with INPUT_SEARCH_REQUIRED and saves nothing. Give one of query, queries, searchUrls, listingUrls or categoryPath.

Arrays hold plain strings, one item per line in the form. The form accepts up to 20,000 saved rows per run, see Limits for what was tested. A listing that appears in several searches is saved once and counted once.

Interacting settings

WhenInput AInput BEffective behaviorExampleCost/result effect
You give links and wordssearchUrls or listingUrlsquery, queriesLinks run. The words are ignored.A link and queryOnly the link is read
You give phrases and wordsqueriesqueryqueries runs. query is ignored.Two phrases and queryTwo searches
Your link has a sortsearchUrlssortThe sort in the link wins.Link with s=104None known
You set filters and a linksearchUrlsminPrice, maxPrice, sellerTypeThe filters also apply to the link.Link and maxPriceFewer rows
You set a price rangelistingUrls or any searchminPrice, maxPriceRows outside the range are skipped, even when Avito returned them.Link and maxPriceSkipped rows are not charged
You turn on model dataincludeReviews, includeComparablesincludeDetailsFull details are also read.Reviews ondetail-enriched is charged
You turn on both monitorsonlyNewtrackChangestrackChanges wins: new and changed rows return.Both onMore rows than onlyNew
You search rentals by datecheckIn, checkOut, guestsqueryWith words, the run stops with SOURCE_RENTAL_FILTERS_UNCONFIRMED.Dates and queryNo rows, only small charges

Input examples

Quick test

{
"query": "велосипед",
"region": "moskva",
"maxItems": 10
}

Expected behavior: the Actor reads one search and stops at 10 rows. Expected output: listing rows with title, price, location and url. Limit or cost note: about $0.04–$0.07 on the FREE tier.

Several searches across Russia

{
"queries": ["велосипед", "самокат", "ноутбук"],
"region": "rossiya",
"maxItems": 450
}

Expected behavior: the Actor runs the phrases in order until it has 450 unique rows. Expected output: 450 listing rows. Limit or cost note: about 1–4 minutes and $1.66–$1.96 on the FREE tier.

One product with reviews and price statistics

{
"listingUrls": [
"https://www.avito.ru/moskva/telefony/iphone_17_256_gb_8095557352"
],
"includeDetails": true,
"includeReviews": true,
"includeComparables": true,
"maxReviews": 100
}

Expected behavior: the Actor reads the listing, its model reviews and its price comparison. Expected output: one row with productReviews, modelRating and modelComparables. Limit or cost note: about 10–45 seconds and $0.03–$0.05 on the FREE tier. Avito does not always return price statistics, so modelComparables can be null.

Daily new listings

{
"searchUrls": ["https://www.avito.ru/moskva/velosipedy"],
"maxItems": 100,
"sort": "newest",
"onlyNew": true,
"stateName": "bikes-moscow"
}

Expected behavior: the first run saves up to 100 rows. Later runs save only IDs that were not delivered before. They also go further down the search, so they can return older listings until the search has no unseen IDs left. Expected output: rows with changeType set to new. Limit or cost note: a run with nothing unseen saves 0 rows and pays only the start and source reads. Lower maxItems if you want fewer older rows per run.

Short-term rental for exact dates

{
"query": "",
"categoryPath": "kvartiry/sdam/posutochno",
"region": "moskva",
"maxItems": 3,
"checkIn": "2026-12-10",
"checkOut": "2026-12-13",
"guests": 2
}

Expected behavior: the Actor checks that Avito accepted the dates and guests, then saves the rentals. Expected output: rental rows with title, price, location and url. Limit or cost note: use only with an empty query.

👉 Try it now: open the input form

Output

Output fields

FieldMeaningTypeCan be empty?Example / enumSource / notes
itemIdAvito listing IDstringNo8075689687Unique within a run
urlListing linkstringNohttps://www.avito.ru/moskva/...Public page
titleListing titlestringYes, for not_foundВелосипед горный 26''As shown on Avito
pricePrice as a numbernumberYes7500null means no numeric price, not zero
priceTextPrice as shownstringYes7 500 ₽Keeps the unit, such as per day
currencyCurrencystringYesRUB
priceWithoutDiscountPrice before discountnumberYes9900Only when Avito shows it
discountPercentDiscount sizenumberYes24Only when Avito shows it
locationPlace of the listingstringYesМосква, ул. Лескова, 19Ас2
addressAddress as shownstringYesМосква, ул. Лескова, 19Ас2Public text only
latitude, longitudeCoordinatesnumberYes55.894085Often needs details
districtId, metroId, verticalIdAvito location and section IDsnumberYes625Avito's own IDs
categoryCategory namestringYesГорные
categoryIdCategory IDnumberYes34
breadcrumbsCategory patharrayYes["Хобби и отдых", "Велосипеды"]
postedAtPublication timestringYes2026-10-31T17:06:46.000ZISO date in UTC
sellerTypeSeller typestringYesprivate, company
sellerRatingSeller ratingnumberYes5
sellerReviewCountSeller review countnumberYes442
sellerVerifiedVerified seller markbooleanYesfalse
descriptionListing textstringYesTextPhone numbers and emails are removed
descriptionPreviewShort listing textstringYesTextPhone numbers and emails are removed
listingSummaryShort summarystringYesTextBuilt from public fields
imagesPhoto linksarrayYes["https://..."]
imageCountNumber of photosnumberYes5
imageAltPhoto textstringYesВелосипед горный 26'', МоскваOften empty in search rows
parametersListing parametersarrayYes[{"name": "Состояние", "value": "Новое"}]Guaranteed with includeDetails
viewsTotal, viewsTodayView countsnumberYes16248Guaranteed with includeDetails when Avito shows them
isNegotiableNegotiable price markbooleanYesnullOnly when Avito shows it
isDeliveryAvailableDelivery markbooleanYesfalse
hasInstallmentsInstallments markbooleanYesnull
badgesListing badgesarrayYes[]
modelRating, modelReviewCountProduct model ratingnumberYes4.8Supported products
productSpecsProduct model specsarrayYesArraySupported products
productReviewsPublic model reviewsarrayYesArrayincludeReviews; author names are excluded
modelComparablesModel price statisticsobjectYes{"offersCount": 78, "region": "chelyabinsk", "sampleSize": 35, "priceMedian": 68390}includeComparables; Avito chooses the region
vehicleHistoryPublic vehicle historyobjectYesObjectCar listings with details
carMarketPriceAvito car price estimateobjectYesObjectCar listings with details
marketValuationAvito home price estimateobjectYes{"estimatedPrice": 8640000, "comparableCount": 392}Supported homes with details
realtyReportHome reportobjectYesObjectSupported homes with details
buildingListingHistoryListing history of the buildingarrayYesArraySupported homes with details
priceHistoryPrice historyarrayYesArrayOnly when Avito shows it
isUnderpricedLow price markbooleanYestrueflagUnderpriced
priceVsMedianPrice against the page mediannumberYes-0.24flagUnderpriced
priceComparisonMedianMedian used for the comparisonnumberYes12000flagUnderpriced
priceComparisonSampleSizePrices in the comparisonnumberYes25At least 10
priceComparisonScopeWhat was comparedstringYessource-pageOnly the same source page
changeTypeMonitor resultstringYesnew, changedonlyNew or trackChanges
statusRow statusstringNook, not_foundnot_found means a closed or missing listing
enrichmentStatusExtra data statusstringYespartialSome requested data did not arrive
enrichmentErrorWhy data is missingstringYesCodeRead with enrichmentStatus
sourceData sourcestringNoavito.ru
sourceUrlPage that gave the rowstringNoLink
fetchedAtTime of the readstringNo2026-11-07T03:22:15.474ZISO date in UTC

Output entities and surfaces

SituationDataset/API/KVS/live viewResult shapeUser action
Normal itemDataset views Listings, Model details and Listing details; RUN_SUMMARY in the Key-value storeOne row for each listingOpen, export or use itemId as the key
Domain-empty resultEmpty Dataset; RUN_SUMMARY with savedItems 0; status SUCCEEDEDNo rowsCheck words, region, price range and filters
Partial resultDataset row with enrichmentStatus set to partial; RUN_SUMMARY.partial and stopReasonSaved rows with some empty fieldsRead enrichmentError, then run those links again
Closed listingDataset row with status set to not_foundRow with itemId and urlRemove it from your list
Technical failure or retryRun status FAILED; RUN_SUMMARY.stopReason; rows saved so far stayRows saved before the stopRead the code in Troubleshooting, then retry

Output example

{
"itemId": "8075689687",
"url": "https://www.avito.ru/moskva/velosipedy/velosiped_gornyy_26_8075689687",
"title": "Велосипед горный 26''",
"price": 7500,
"priceText": "7 500 ₽",
"priceWithoutDiscount": null,
"discountPercent": null,
"currency": "RUB",
"location": "Москва, ул. Лескова, 19Ас2",
"latitude": 55.894085,
"longitude": 37.616457,
"category": "Горные",
"categoryId": 34,
"breadcrumbs": ["Хобби и отдых", "Велосипеды", "Горные"],
"postedAt": "2026-10-31T17:06:46.000Z",
"sellerType": "company",
"sellerRating": 5,
"sellerReviewCount": 442,
"sellerVerified": false,
"imageCount": 5,
"isDeliveryAvailable": false,
"isNegotiable": null,
"parameters": [
{ "name": "Состояние", "value": "Новое", "attributeId": 110399 }
],
"viewsTotal": 16248,
"viewsToday": 4,
"source": "avito.ru",
"fetchedAt": "2026-11-07T03:22:15.474Z",
"status": "ok"
}

This example is trimmed and shows one row from the Quick test input. null or a missing field means Avito did not show that value in this read. Detail fields can appear without includeDetails when the Actor has to read the listing page, but only includeDetails guarantees that it tries to read them.

Send results to Slack or Notion

Pick your connector in the optional deliveryConnector field. After the run saves its data, the Actor posts a short summary (up to 25 rows and a link to the full dataset) there. Put a Notion page link or a Slack channel ID in deliveryTarget: in Notion every run is added on top of that one page, so your workspace does not fill up with new pages. A delivery error never fails the run and costs nothing extra. Connect a service once in Apify Console → MCP connectors.

Use case → fields

Buyer jobInput pathOutput entityKey fieldsNext integration
Compare pricesquery, regionListing rowprice, locationCSV or Excel
New-listing alertssearchUrls, onlyNewNew listing rowitemId, changeTypeSlack or Notion summary
Price change logsearchUrls, trackChangesChanged listing rowchangeType, priceAPI or webhook
Home valuationlistingUrls, includeDetailsDetailed rowmarketValuation, realtyReportJSON export
Model researchlistingUrls, includeReviewsRow with reviewsproductReviews, modelRatingJSON export

👉 Try it now: open the input form

Pricing

Pricing unit

The Actor uses pay-per-event pricing. Platform usage is included: you pay only for these events.

EventWhat it pays forFREEBRONZESILVERGOLD and above
listing-scrapedOne saved listing row$0.0036$0.00324$0.00288$0.00252
source-readOne unit of reading the source$0.0003$0.00027$0.00024$0.00021
detail-enrichedOne listing with full details$0.0021$0.00189$0.00168$0.00147
review-scrapedOne saved model review$0.0005$0.00045$0.0004$0.00035
apify-actor-startOne run start, per GB of memory$0.003$0.003$0.003$0.003

The start fee scales with run memory (per GB). At the default 512 MB it is one event, $0.003.

source-read depends on what Avito returns, so the same input can use a different count in two runs. Measured counts: 0.3–10 per row for search rows, 8–14 per row with includeDetails. A monitoring run with few new rows uses more per row, because it also reads the rows that it skips: 8–23 per row in our tests.

Runs with no results still pay. A valid search with no matches, a filter with no matches and a monitoring run with no new listings save 0 rows and pay the start and source-read. An invalid input stops before it reads the source and pays only the start. A partial or failed run pays for the work done before the stop, and its saved rows stay. detail-enriched is charged only when the Actor read details at your request. The maximum cost per run setting is respected: the run stops with CHARGE_LIMIT, and its status stays SUCCEEDED. The smallest allowed limit is $0.02.

Cost examples

Amounts are for the FREE tier, from real runs. Base charge = start + saved rows + source reads. Rows marked "earlier build" were measured on an earlier build of this Actor and priced at the current rates.

ScenarioInput scopeExpected item/event countBase chargeOptional chargeStop/cap behavior
Quick testOne search, 10 rows10 rows, 15–99 reads$0.044–$0.069NoneStops at maxItems
Several searches3 phrases, 450 rows450 rows, 123–1,137 reads$1.66–$1.96NoneStops at maxItems
Large search, earlier build6 phrases, 5,000 rows5,000 rows, 3,893 reads$19.17NoneNeeds a timeout of 1 hour
Form maximum, earlier build40 phrases, 20,000 rows20,000 rows, 21,496 reads$78.45NoneNeeds a timeout of 2 hours
DetailsOne search, 20 rows20 rows, 274 reads$0.157$0.042 detailsStops at maxItems
Details, largerOne search, 190 rows190 rows, about 1,600 reads$1.16–$1.17$0.399 detailsStops at maxItems
Home with valuationOne listing1 row, 47 reads$0.021$0.0021 detailsStops after the listing
Model with reviewsOne listing, 38 reviews1 row, 17–88 reads$0.012–$0.033$0.021 details and reviewsStops after the reviews
No matchesOne search0 rows, 16–24 reads$0.0078–$0.0102NoneEnds when Avito has no more results
Monitor, nothing newSame listing links0 rows, 0 reads$0.003NoneEnds after the history check
No matches, wide40 phrases0 rows, 567 reads$0.173NoneEnds when all phrases finish
Cost capMaximum cost $0.034 rows, 38 reads$0.03 or lessNoneStops with CHARGE_LIMIT

👉 Try it now: open the input form

Limits

  • The Actor reads only public pages. It does not return phone numbers or personal emails, and it does not log in.
  • One search returns up to about 2,000 listings, because Avito stops showing results after about 31 pages. Avito can also start repeating or stop a search after about 500–800 listings. Use several phrases, regions, categories or price ranges for more.
  • The default timeout of 300 seconds fits about 550–1,000 search rows. Set a longer timeout for more. Rows with details take about 1 second each.
  • The current version was tested up to 450 search rows in one run. Larger runs were measured on an earlier build at 512 MB: 5,000 rows took about 28 minutes and 20,000 rows about 93 minutes. Treat these numbers as a guide, and start a large job with a smaller run.
  • The form accepts up to 20,000 rows per run. Set the maximum cost per run high enough: 20,000 rows cost about $78 on the FREE tier.
  • Avito can refuse some reads. The Actor retries and then keeps the rows it has, with SOURCE_BLOCKED in the summary.
  • Avito can widen a narrow search with other regions and loosely related listings. The Actor checks the price range again, but it keeps Avito's choice of words and region.
  • onlyNew remembers the latest 50,000 delivered IDs.
  • flagUnderpriced compares only rows from the same source page and category. It is not a market estimate.
  • modelComparables holds up to 35 offers from a region that Avito chooses, or up to 10 when Avito limits the direct route. sampleSize shows the real number. Avito does not always return it.
  • Results reflect Avito at the time of the read. The Actor does not promise that it finds every listing.

👉 Try it now: open the input form

API, export and integrations

  • API: start a run with the Apify API and the same JSON input. Rows arrive in the default Dataset. Use itemId as the key.
  • Export: download the Dataset as JSON, CSV, Excel, XML or HTML. Table systems read title, price, location and url.
  • Scheduling: run a search on a schedule with onlyNew or trackChanges and one stateName. The next system reads changeType.
  • Webhooks / no-code: send the run-finished event to your system, then read the Dataset by its ID. RUN_SUMMARY.stopReason tells how the run ended.
  • Slack or Notion: set deliveryConnector to get a short summary with a link to the full Dataset.

Use with AI agents (MCP)

MCP server URL with only this Actor: https://mcp.apify.com?tools=cliqtomedia/avito-scraper

Smallest useful input:

{
"query": "велосипед",
"region": "moskva",
"maxItems": 10
}

Key output fields:

  • title: the listing title.
  • price: the price in rubles, or null when no numeric price is shown.
  • location: the place of the listing.
  • url: the public listing link.
  • status: ok, or not_found for a closed listing.

A run of 10 rows takes about 8–60 seconds and costs about $0.04–$0.07 on the FREE tier. The form accepts up to 20,000 rows per run, the current version was tested up to 450, and the default 300-second timeout fits about 550–1,000 rows. No phone numbers are returned.

👉 Try it now: open the input form

Troubleshooting

The run failed with INPUT_SEARCH_REQUIRED

Symptom: the run fails at once and saves no rows. Likely reason: the input has no search words, links or category. Check: look at query, queries, searchUrls, listingUrls and categoryPath. Action: fill at least one of them.

The run failed with another INPUT_ code

Symptom: the run fails at once with INPUT_INVALID, INPUT_URL_INVALID, INPUT_LISTING_URL_INVALID, INPUT_PRICE_RANGE, INPUT_RENTAL_DATES or INPUT_RENTAL_GUESTS. Likely reason: a link is not an Avito link, minPrice is above maxPrice, or a date or guest field is wrong. Check: read the status message of the run. Action: fix the field and start again.

The run saved 0 rows

Symptom: the status is SUCCEEDED and the Dataset is empty. Likely reason: Avito has no listings for this search, or filters removed all of them. Check: open the same search on Avito and read examinedItems and excludedItems in RUN_SUMMARY. Action: use wider words, another region or wider filters.

The run stopped with SOURCE_BLOCKED

Symptom: the run has status SUCCEEDED and fewer rows than maxItems. If no rows were saved, the status is FAILED with this code. Likely reason: Avito refused some searches or listing pages after the retries. A long run can also end early, when a stretch of failed reads uses up its traffic limit. Check: read warnings and completedInputs in RUN_SUMMARY. Action: keep the saved rows and run the rest later.

The run failed with SOURCE_HTTP_403, SOURCE_HTTP_429 or SOURCE_SEARCH_FAILED

Symptom: the status is FAILED and no rows were saved. Likely reason: Avito refused every search at its start, so there is nothing to return. Check: read the status message of the run. Action: run it again later. The run pays only for what it read.

The run ended with SOURCE_DETAILS_PARTIAL

Symptom: the status is SUCCEEDED and some rows have enrichmentStatus set to partial. Likely reason: Avito did not return the details of some listings, or limited the reads of a model. A model row can then have fewer reviews than asked and no modelComparables. Reviews already read stay in the row. Check: read enrichmentError in those rows. Action: run those listings again through listingUrls.

The run stopped with MEMORY_LIMIT

Symptom: the status is SUCCEEDED and the run saved fewer rows than maxItems. Likely reason: the run came close to its memory limit. Check: read warnings in RUN_SUMMARY. Action: split the job into several runs. If you lowered memory to 256 MB, go back to 512 MB.

Rows do not match my words or region

Symptom: some rows are from another city or about something else. Likely reason: Avito widens a narrow search when it has few exact matches. Check: open the same search on Avito. Action: use a category in categoryPath, turn on localOnly or filter by location after the run.

The run stopped with SOURCE_RENTAL_FILTERS_UNCONFIRMED

Symptom: a rental run fails with no rows. Likely reason: dates and guests work only in a rental category without search words. Check: look at query and categoryPath. Action: leave query empty and use kvartiry/sdam/posutochno or a rental search link.

The run stopped with CHARGE_LIMIT

Symptom: the run has status SUCCEEDED and fewer rows than maxItems. Likely reason: it reached your maximum cost per run. Check: read stopReason in RUN_SUMMARY. Action: raise the limit or lower maxItems.

The run ended with SOURCE_PAGE_LIMIT

Symptom: one search gave fewer rows than maxItems. Likely reason: the search reached maxPagesPerSearch. Check: read pageLimitedInputs in RUN_SUMMARY. Action: raise maxPagesPerSearch or split the search into narrower ones.

The run timed out

Symptom: the status is TIMED-OUT. Likely reason: the timeout is too short for maxItems. Check: compare the saved rows with maxItems. Saved rows stay in the Dataset. Action: set a longer timeout. Allow up to about 10 minutes per 1,000 search rows.

Some rows have enrichmentStatus set to partial

Symptom: the row exists, but details or model data are missing. Likely reason: Avito did not return this part. Check: read enrichmentError in the row. Action: run this listing again through listingUrls.

👉 Try it now: open the input form

FAQ

Do I need an Avito account or proxies?

No. You need only an Apify account. The Actor reads public pages and handles access itself.

Does it return phone numbers?

No. Phone numbers and personal emails are not collected, and they are removed from descriptions. Author names of model reviews are also excluded.

Why did I pay for a run with 0 rows?

The Actor still has to read Avito to learn that nothing matches. A run like this pays the start and source-read, about $0.01 on the FREE tier for one search.

Why is price empty?

The listing shows no numeric price. price is null, not zero. Turn on skipNegotiablePrice to drop these rows.

Not from one search. Avito stops showing results after about 31 pages. Add more phrases, regions, categories or price ranges in one run.

How fresh and complete is the data?

Each row shows Avito at the time in fetchedAt. Avito decides what a search shows, so the Actor does not promise every listing.

Is isUnderpriced a market valuation?

No. It compares a price only with rows from the same source page. Avito's own estimates for homes and cars are in marketValuation and carMarketPrice.

👉 Try it now: open the input form

👉 Try it now: open the input form

Support

For a bug, question or feature request, open the Issues tab of this Actor on Apify. Include the run ID, the input mode and the error text or stopReason. Never send tokens, cookies, private data or billing data.

👉 Try it now: open the input form