AvtonetAPI - demokratizacija slovenskega trga rabljenih vozil

avto.net je vodilna spletna stran za prodajo novih in rabljenih vozil v Sloveniji. V svojem katalogu ima preko 20.000 avtov, motorjev, gospodarskih vozil,... Vendar te podatki niso prosto dostopni. Lastniki avto.net-a se trudijo, da bi te podatki ostali le na njihovi platformi. Kot razvijalcu mi to ni bilo prav nič všeč. Zato sem razvil AvtonetAPI, programski vmesnik, preko katerega enostavno (in hitro) dostopate do celotne zbirke podatkov na platformi.

Primer:

Spodnja koda (python) preko API dobi vsa vozila znamke Audi, ki so cenejša od 20.000€ in so bila registrirana po letu 2015

import requests

url = "https://avtonet-api-main-87b07e5.zuplo.app/api/car/filter?brand=Audi&min_year=2015&max_price=20000"

headers = {"Authorization": "Bearer YOUR_KEY_HERE"}

response = requests.get(url, headers=headers)

print(response.text)

Odogovor:

{
	"url":  "https://avto.net/Ads/results.asp?znamka=Audi&model=&cenaMin=&cenaMax=20000&letnikMin=2015&letnikMax=&kmMin=&kmMax=&bencin=&automatic=&ccmMin=&ccmMAX=&kwMin=&kwMax=&motortakt=&motorvalji=&doseg=&nosilnostMIN=&nosilnostMAX=&barva=&barvaint=&door=&sedezevMIN=&sedezevMAX=&airbag=&stran=&lokacija=&broker=&EQ1=1000000000&EQ2=1000000000&EQ3=1000000000&EQ4=100000000&EQ5=1000000000&EQ6=1000000000&EQ7=1110100120&EQ8=101000000&EQ9=1000000020&KAT=1010000000&subSORT=&subTIPSORT=",
	"num_of_all_results":  950,
	"num_of_scraped_results":  48,
	"vehicles":  [
	{
		"vehicle_id":  20526149,
		"vehicle_url":  "https://avto.net/Ads/details.asp?id=20526149&display=Audi%20A6%20Avant",
		"vehicle_name":  "Audi A6 Avant 2.0 TDI S-tronic MATRIX | BOSE | HEADUP | PDC",
		"is_top_offer":  true,
		"image":  "https://images.avto.net/photo/20526149/1071945.jpg",
		"price":  15600,
		"discount_price":  null,
		"verbose_price":  null,
		"ribbon_text":  null,
		"listing_is_hd":  null,
		"listing_has_video":  null,
		"new_vehicle":  null,
		"first_registration":  "2016",
		"mileage":  249642,
		"fuel_type":  "diesel",
		"engine_power":  140,
		"engine":  "1968 ccm, 140 kW / 190 KM",
		"transmission_type":  "avtomatski menjalnik",
		"battery_capacity":  null,
		"comment":  null,
		"seller_type":  "person",
		"seller_logo":  null,
		"company_id":  null,
		"updated_at":  "2025-01-20T21:45:42.771179"
	},
	...

Več primerov najdete v zavihku Primeri uporabe

Features

  • dobivanje podrobnih podatkov o vozilu -> listing page
  • iskanje in filtriranje po avto.net bazi -> filter page

Prihaja kmalu

  • obveščanje o novih vozilih za izbrane filtre

Cena

Aplikacija zaradi računskih potreb in stroškov, žal, ne more biti zastonj. Na voljo je Začetni plan, ki je povsem zastonj prvih 7 dni in vključuje 10 request-ov / na mesec.

Če pa ima kdo kakšno izjemno idejo, o tem, kaj bi lahko ustvaril s temu API, sem pa pripravljen sodelovati in mu odobriti dostop do API. Lahko mi piše na: avtonetapi@gmail.com

O projektu

Ideja o programskemu vmesniku za avto.net sem dobil, ko sem hotel razviti primerjalnik za oglase na platformi. Ideja je bila taka, da bi uporabnik skopiral več povezav za avto.net oglase, jaz pa bi prikazal vse podatke o oglasih na eni strani, kjer bi lahko uporabnik enostavno primerjal več vozil in se odločil za pravega. Ob razvoju ideje sem ugotovil, da avto.net ne ponuja (nič nepričakovanega) nobenega API za dostop do njihove baze. In tako je bila rojena ideja za ta projekt.

Cilji projekta

Pred začetkom projekta sem si zastavil določene cilje:

  • HITROST: API mora biti (relativno) hiter. Zato sem si zadal cilj, da morajo biti vsi request-i odgovorjeni v maksimalno 1 sekundi. Kljub temu, da mi to ni povsem uspelo, sem se precej približal zastavljenemu času. Spodaj so tudi, okvirni časi za različne "endpoint-e"
  • Enostavna uporaba: API mora biti natančno dokumentiran in enostaven za uporabo.
  • Količina podatkov: API sem zgradil tako, da iz spletne strani pobere kar se da. Kljub temu, da sam veliko podatkov ne bom nikoli potreboval, jih bo morda kdo drug.

Okvirni odzivni čas API za različne endpoint-e

Filter stranListing stran
0.5 - 1.5s~0.9s

Stanje projekta in potencial

Zaenkrat mi je uspelo v API vključiti zgolj avtomobile. Kot motorist, si želim sčasom vključiti tudi motorje in kasneje ostala vozila.

Kar se pa tiče potenciala, sem pa poln idej:

  • Stran za analizo trga rabljenih vozil: kašne so trenutne cene, trendi,...
  • Obveščanje o vozilih: peridoično poglej za nove oglase in obvesti uporabnika, če je bil objavlen oglas, ki ustreza danim filtrom
  • Integracija s avtohišami: pospeševanje prodaje, integracija avto.net-a s internimi sistemi
  • ....

P.S.: Če ima kdo voljo (in preveč časa), ter se mu zdi katera izmed zgornjih idej všeč (ali pa ima svojo) bi bil vesel sodelovanja. Pišite mi: avtonetapi@gmail.com