Avito APIavito.ru ↗
Retrieve classified ad listings from Avito.ru. Search by category, filter by price, and fetch full item details including seller info and images.
What is the Avito API?
The Avito.ru API provides access to Russia's largest classifieds platform across 3 endpoints, letting you search listings by category, retrieve full item details, and look up seller phone numbers. The search_items endpoint returns item arrays with prices, thumbnails, and descriptions alongside aggregate stats, while get_item_details delivers structured fields including seller ratings, item parameters, and image URLs for any individual listing.
curl -X GET 'https://api.parse.bot/scraper/b54ad12b-11e9-48dd-a911-3dc6465949c4/search_items?page=1&query=iphone&category=telefony&location=moskva&price_max=100000&price_min=1000' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace avito-ru-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Avito.ru Classifieds SDK — browse listings and drill into details."""
from parse_apis.avito_ru_classifieds_api import Avito, Category, Location, ItemNotFound
client = Avito()
# Browse phones in Moscow with a price cap; limit total items fetched.
for item in client.itemsummaries.search(
category=Category.TELEFONY, location=Location.MOSKVA, price_max=50000, limit=5
):
print(item.title, item.price, item.currency)
# Drill into the first result's full details via .details()
listing = client.itemsummaries.search(
category=Category.TRANSPORT, location=Location.SANKT_PETERBURG, limit=1
).first()
if listing:
detail = listing.details()
print(detail.title, detail.price_text, detail.date_posted)
if detail.seller:
print(detail.seller.name, detail.seller.stats)
# Handle a missing item gracefully
try:
result = client.itemsummaries.search(
category=Category.NEDVIZHIMOST, limit=1
).first()
if result:
full = result.details()
print(full.description[:80] if full.description else "no description")
except ItemNotFound as exc:
print(f"Item removed: {exc.url}")
print("exercised: itemsummaries.search / ItemSummary.details / Item fields / error handling")
Browse classified ads on Avito.ru by category with optional filters for price range and client-side text filtering. Returns a list of items and average price statistics. Only city-level locations are supported.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| query | string | Optional text to filter results client-side by matching against item titles and descriptions. |
| categoryrequired | string | Category slug for browsing |
| location | string | City location slug |
| price_max | integer | Maximum price filter in RUB |
| price_min | integer | Minimum price filter in RUB |
{
"type": "object",
"fields": {
"items": "array of item objects with id, title, url, price, currency, description_preview, thumbnail",
"stats": "object with average_price and items_with_numeric_price",
"total_count": "integer count of items returned on this page"
}
}About the Avito API
Search and Browse Listings
The search_items endpoint accepts a required category slug and optional location (city-level only), price_min, price_max, and page parameters. It returns an items array where each object includes id, title, url, price, currency, description_preview, and thumbnail. Alongside the items array, a stats object reports average_price and items_with_numeric_price for the result set, which is useful for quick market-level analysis. A query parameter is also accepted and filters results client-side against item titles and descriptions — this is not a server-side full-text search, so it applies after results are fetched.
Item Detail and Seller Data
The get_item_details endpoint takes a full URL or path (e.g. /moskva/telefony/<item-slug>) and returns the complete listing record: title, price, price_text, currency, date_posted, images (array of URLs), parameters (key-value specification pairs), and a seller object containing name, rating, and stats. The price_text field is populated when a structured numeric price is unavailable — both fields are included in the response so you can fall back gracefully.
Phone Number Retrieval
The get_phone endpoint accepts an item_id and an optional searchHash sourced from the item detail page. It returns a phone string for the listing seller. This endpoint is noted as heavily protected and may not return data for all listings. Obtain item_id from search_items results and searchHash from the get_item_details response before calling this endpoint.
The Avito API is a managed, monitored endpoint for avito.ru — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when avito.ru changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official avito.ru API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track used-car prices in a specific Russian city by querying the automotive category with
price_min/price_maxfilters - Aggregate real estate listing data including seller ratings and item parameters for property market research
- Monitor competitor pricing across a product category using the
stats.average_pricefield fromsearch_items - Build a listing alert system that polls
search_itemsfor newidvalues in a given category - Enrich a CRM with seller contact data by combining
get_item_detailsseller fields withget_phoneresults - Extract item
parameterskey-value pairs fromget_item_detailsto normalize product specifications across listings
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Avito.ru have an official developer API?+
What does the `search_items` endpoint return beyond the listing list?+
items array, the endpoint returns a stats object with average_price (mean price across numeric-priced items in the result set) and items_with_numeric_price (the count of listings used to compute that average). This lets you gauge typical pricing for a category and location without fetching individual detail pages.Does location filtering support district- or neighborhood-level granularity?+
location parameter in search_items accepts city-level slugs only. Sub-city filtering is not currently supported. You can fork this API on Parse and revise it to add a finer-grained location parameter if the source supports it.Is the `get_phone` endpoint reliable for all listings?+
item_id is available from search_items, and the optional searchHash comes from get_item_details — supplying both gives the best chance of a successful response, but a returned phone value is not guaranteed.Does the API expose seller review text or buyer-submitted ratings breakdowns?+
seller object from get_item_details includes name, rating, and stats fields, but individual review text and granular rating breakdowns are not returned. You can fork this API on Parse and revise it to add a reviews endpoint if that data is accessible on the listing page.