avto APIavto.net ↗
Search and retrieve car listings from avto.net, Slovenia's leading auto marketplace. Filter by brand, model, year, and price. Get specs, equipment, and seller details.
What is the avto API?
The avto.net API provides access to Slovenia's largest car marketplace through 2 endpoints. The search endpoint returns paginated listings filterable by brand, model, year range, and price range, while the details endpoint delivers a full vehicle profile — characteristics, equipment categories, seller contact information, and ad metadata — for any individual listing URL.
curl -X GET 'https://api.parse.bot/scraper/8f939c6a-62e3-4980-babe-c0c656d276d5/search?page=1&brand=BMW&year_min=2015&year_max=2023&price_max=30000&price_min=5000' \ -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 avto-net-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.
"""Avto.net Car Marketplace — search listings and drill into vehicle details."""
from parse_apis.avto_net_scraper_api import AvtoNet, Ad, AdDetail, AdNotFound
client = AvtoNet()
# Search for BMW cars priced between 5000 and 20000 EUR
for ad in client.ads.search(brand="BMW", price_min=5000, price_max=20000, limit=5):
print(ad.title, ad.price, ad.ad_id)
# Drill into the first result for full vehicle characteristics
ad = client.ads.search(brand="Audi", year_min=2018, limit=1).first()
if ad:
detail = ad.details()
print(detail.full_title, detail.price)
print(detail.characteristics)
print(detail.seller.phones)
# Handle a missing ad gracefully
try:
missing = client.ads.search(brand="Volkswagen", price_max=10000, limit=1).first()
if missing:
info = missing.details()
print(info.equipment)
except AdNotFound as exc:
print(f"Ad removed: {exc.url}")
print("Exercised: ads.search, ad.details, AdNotFound error handling")
Search for car ads on avto.net with optional filters for brand, model, year, and price. Returns paginated results with basic ad information including price, registration year, mileage, fuel type, and engine details. All filters are optional; omitting all returns all listed vehicles.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| brand | string | Car brand to filter by (e.g. Audi, BMW, Volkswagen, Mercedes-Benz, Renault). |
| model | string | Car model to filter by. Must correspond to the selected brand. |
| year_max | integer | Maximum production year filter. |
| year_min | integer | Minimum production year filter. |
| price_max | integer | Maximum price in EUR. |
| price_min | integer | Minimum price in EUR. |
{
"type": "object",
"fields": {
"ads": "array of ad objects each containing ad_id, title, price, url, and basic_details",
"total_pages": "integer, total number of pages available",
"current_page": "integer, the current page number"
},
"sample": {
"data": {
"ads": [
{
"url": "https://www.avto.net/Ads/details.asp?id=22500869&display=BMW%20serija%205:",
"ad_id": "22500869",
"price": "7.280 €",
"title": "BMW serija 5: 530d xDrive",
"basic_details": {
"Gorivo": "diesel motor",
"Prevozenih": "288673 km",
"1.registracija": "2009"
}
}
],
"total_pages": 6,
"current_page": 1
},
"status": "success"
}
}About the avto API
Search Listings
The search endpoint accepts optional filters including brand, model, year_min, year_max, price_min, and price_max (prices in EUR). Results are paginated; the response includes an ads array where each item carries an ad_id, title, price, url, and basic_details object. The pagination object returns current_page and total_pages so you can walk through result sets programmatically.
Vehicle Details
Pass any url from a search result to the details endpoint to retrieve the full ad. The response includes a characteristics object mapping attribute names — year, kilometers, fuel type, engine displacement, and more — to their values. The equipment object groups features by category (e.g. safety, comfort, multimedia) and lists individual items under each. Seller data comes back in a seller object containing an optional name and a phones array of contact numbers. The ad_info object holds the posting_date.
Coverage Scope
avto.net is the dominant automotive classifieds platform in Slovenia. Listings span new and used passenger cars, with prices denominated in EUR. The API surfaces publicly visible ad data; listings that require a user account to view are not covered. Pagination on search allows systematic traversal of large result sets by incrementing the page parameter.
The avto API is a managed, monitored endpoint for avto.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when avto.net 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 avto.net 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?+
- Monitor price trends for specific makes and models on the Slovenian used-car market using
price_min/price_maxfilters over time. - Build a cross-border vehicle price comparison tool by pulling
characteristicsdata (year, km, fuel) fromdetails. - Aggregate seller contact data (
phones,name) from multiple listings for automotive lead generation. - Track new listings for a target
brandandmodelcombination by pollingsearchand comparingad_idvalues. - Populate a vehicle database with structured specs by iterating search results and fetching
characteristicsfromdetails. - Analyze equipment feature distribution across a model range using the
equipmentcategory arrays fromdetails. - Alert users when a listing for a specific model appears below a
price_maxthreshold in a given year range.
| 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 avto.net offer an official developer API?+
What does the `details` endpoint return beyond what `search` provides?+
details endpoint returns the full characteristics object (year, km, fuel type, engine, and other vehicle attributes), the equipment object grouped by category, a seller object with name and phone numbers, and ad_info including the posting date. The search endpoint returns only ad_id, title, price, url, and basic_details per listing.Can I filter search results by fuel type, transmission, or mileage?+
search endpoint currently supports filtering by brand, model, year_min, year_max, price_min, and price_max. Fuel type, transmission, and mileage filters are not currently available as search parameters. You can fork this API on Parse and revise it to add those filter inputs.Are commercial dealer listings and private seller listings both included?+
details response returns whatever seller information is publicly visible on the ad, including name and phones. The API does not expose a dedicated field distinguishing dealer accounts from private sellers. You can fork the API on Parse and revise it to add that classification if the underlying ad data includes it.How should I paginate through a large set of search results?+
search response includes a pagination object with current_page and total_pages. Increment the page parameter in successive requests until current_page equals total_pages. There is no cursor or offset mechanism; page-number pagination is the only supported method.