Egy végpont. Beküldesz egy terméknevet, visszakapod, hol kapható a legolcsóbban — több száz webshopból, közös pénznemre hozva, méretre szűrve.
v1 · a mezőnevek stabilak maradnak
Az API ugyanabból a keretből fogyaszt, mint a felület — nincs külön API-csomag és nincs külön számla. Amit a böngészőben megspórolsz, azt az API-n is elhasználhatod, és fordítva.
| Csomag | Havidíj | Kérés / nap | Egy kérés ára | API |
|---|---|---|---|---|
| Free | 0 Ft | 3 | — | nincs |
| Plus | 1 990 Ft | 30 | ≈ 2,2 Ft | igen |
| Pro | 4 990 Ft | 120 | ≈ 1,4 Ft | igen |
| Studio | 14 990 Ft | 600 | ≈ 0,8 Ft | igen |
Az API a Plus csomagtól elérhető — nem csak a Studiótól. Egy ideig a csomagleírásunk mást sugallt, mint amit a rendszer csinál; a rendszernek volt igaza, a leírást javítottuk. Ha API-ért vettél Studiót, írj, és rendezzük.
Az „egy kérés ára" a havidíj és a havi keret hányadosa — nem külön
díjszabás, csak hogy össze tudd hasonlítani a csomagokat. Nincs
túlhasználati díj: a keret elfogyásakor 429 jön, nem
számla.
| Művelet | Fogyasztás |
|---|---|
| Keresés név vagy link alapján | 1 |
| Keresés képpel (felismerés) | 1 |
| Outfit-bontás | felismert darabonként 1 |
A keret helyi idő szerint éjfélkor nullázódik, és a
fel nem használt kérések nem gyűlnek össze. Minden válasz megmondja,
hol tartasz — a törzs quota mezőjében:
"quota": { "used": 12, "limit": 120 }
Kriptóval — Bitcoin, Monero, Ethereum vagy Litecoin. Nincs automatikus
megújítás és nincs kártyaadat: a megvásárolt időszak végén a csomag
magától visszaáll ingyenesre, a kulcsod pedig megmarad, csak
402-t fog adni, amíg nem hosszabbítasz.
Lépj be, nyisd meg a profilodat, és hozz létre egy kulcsot. A kulcsot egyszer mutatjuk meg — utána már mi sem tudjuk visszaolvasni, mert csak a lenyomatát tároljuk. Ha elveszted, vond vissza és csinálj újat.
Az API a Plus csomagtól érhető el.
A kulcs az Authorization fejlécben megy:
Authorization: Bearer amx_live_xxxxxxxxxxxxxxxxxxxx
Elfogadjuk az X-API-Key fejlécet is. A ?key=
paraméter működik, de ne használd élesben: a lekérdezés
bekerül a naplókba és a böngészőelőzményekbe.
GET https://amixbby.hu/api/v1/search?q=Nike+Air+Force+1
| Paraméter | Kötelező | Leírás |
|---|---|---|
q | igen | a termék neve vagy egy webshop linkje |
market | nem | hu · eu · us — alapértelmezés hu |
currency | nem | HUF · EUR · USD · GBP |
gender | nem | men · women |
shoe | nem | EU cipőméret, például 44 vagy 43.5 |
cloth | nem | XS … XXL |
max | nem | felső ár a választott pénznemben |
{
"query": "Nike Air Force 1",
"currency": "HUF",
"partial": false,
"best": {
"source": "sportboltom.hu",
"title": "Nike Air Force 1 '07 Triple White",
"url": "https://www.sportboltom.hu/termek/...",
"image": "https://...",
"price": 26280,
"original_price": 26280,
"original_currency": "HUF",
"shipping": null,
"in_stock": true,
"flags": [],
"match": 0.86
},
"offers": [ ... ],
"stats": { "total": 137, "verified": 126, "flagged": 11 },
"quota": { "used": 12, "limit": 120 }
}
price a választott pénznemre átváltva, szállítással együtt,
ha ismerjük. original_price és original_currency
az, amit a bolt mond. partial: true esetén az időkeret miatt
nem vártuk meg az összes forrást — ilyenkor ugyanaz a kérés másodszorra
teljesebb.
Ne az offers[0]-t mutasd a felhasználódnak.
Ruhánál a legkisebb szám szinte mindig valami más: tartozék,
gyerekméret, havi részlet vagy elfogyott tétel. A best már
ezekre szűrt — azt használd.
| Jelző | Mit jelent |
|---|---|
accessory | tartozéknak tűnik, nem a terméknek |
kids-size | gyerekméret |
size-mismatch | nem a megadott méret |
wrong-gender | a másik nemre való |
other-kind | másik terméktípus (nadrág a pulóver helyett) |
weak-match | a név gyengén egyezik |
too-cheap | a medián harmadánál olcsóbb — valószínűleg más |
suspect-price | a medián ötszörösénél drágább — valószínűleg olvasási hiba |
out-of-stock | elfogyott |
unverified-price | az ár a látható szövegből jött, nem szabványos adatból |
no-direct-link | a hivatkozás találati listára mutat, nem a termékre |
Minden hiba a helyes HTTP-kóddal érkezik, és a törzse mindig
{ "error": "...", "message": "..." }. Nincs 200-as válasz
hibaüzenettel — arra a hívó kódja nem figyelne fel.
| Kód | error | Mit tegyél |
|---|---|---|
| 401 | missing_key | tedd be az Authorization fejlécet |
| 401 | invalid_key | a kulcs érvénytelen vagy visszavont |
| 402 | plan_required | az API a Plus csomagtól érhető el |
| 400 | missing_query | add meg a q paramétert |
| 422 | not_identified | a terméket nem sikerült azonosítani |
| 429 | rate_limited | várj, a message megmondja mennyit |
| 429 | quota_exceeded | elfogyott a napi kereted |
curl -H "Authorization: Bearer $AMIX_KEY" \
"https://amixbby.hu/api/v1/search?q=Adidas+Samba+OG&shoe=44&gender=men"
const r = await fetch(
'https://amixbby.hu/api/v1/search?' + new URLSearchParams({
q: 'Nike Tech Fleece hoodie',
cloth: 'L',
currency: 'HUF',
}),
{ headers: { Authorization: `Bearer ${process.env.AMIX_KEY}` } },
);
const { best, stats } = await r.json();
console.log(`${best.price} Ft — ${best.source}`);
import os, requests
r = requests.get(
"https://amixbby.hu/api/v1/search",
params={"q": "Carhartt WIP Detroit Jacket", "market": "eu"},
headers={"Authorization": f"Bearer {os.environ['AMIX_KEY']}"},
timeout=30,
)
r.raise_for_status()
best = r.json()["best"]
print(best["price"], best["source"], best["url"])