Ugrás a tartalomra

Fejlesztőknek

API dokumentáció

Három ingyenes eszközünk programból is hívható. Kulcsot ingyenes regisztráció után az ügyfélportálon hozhatsz létre.

Alapok

Három ingyenes eszközünk programból is hívható: a Mobil-előnézet (weboldal képe laptopon, tableten és mobilon), a Képoptimalizáló (tömörítés, átméretezés, formátumváltás) és a Cookie banner generátor. Minden végpont JSON-t ad vissza (kivéve a fájlletöltéseket), UTF-8 kódolással, HTTPS-en.

Hitelesítés. A Mobil-előnézet és a Képoptimalizáló API-kulccsal hívható: Authorization: Bearer kulcs vagy X-Api-Key: kulcs fejléccel. A kulcsot az ügyfélportál API oldalán hozhatod létre (ingyenes regisztráció után); a titkos részt csak egyszer mutatjuk meg. Hibás vagy visszavont kulcs: 401. A Cookie banner generátor kulcs nélkül, nyilvánosan hívható.

Aszinkron feldolgozás. A képkészítés és a tömörítés sorban, a háttérben fut: a létrehozó kérés 202-vel azonnal visszaadja az azonosítót, az állapotot pedig lekérdezéssel (néhány másodpercenként) vagy a Képoptimalizálónál eseményfolyammal (SSE) követheted. Az eredmények korlátozott ideig érhetők el, utána törlődnek.

Korlátok. Kulcsonként napi kvóta és percenkénti kéréskorlát van (lent eszközönként, mindig az aktuális értékkel). Túllépéskor 429 jön, a Retry-After fejléc mutatja, hány másodperc múlva próbálkozz újra. Ha a teljes rendszer sora megtelt: 503 és Retry-After: 60.

Böngészőből is hívható (CORS engedélyezve), de a kulcsot ne tedd nyilvános weboldal kódjába: szerveroldalról hívd.

Mobil-előnézet API

Egy weboldal címéből bemutató képet (mockupot) készít: az oldal laptopon, tableten és mobilon, választható háttér előtt, 2400 × 1500 px-es PNG, JPG és WebP képként. A kulcs előtagja kvm_. Az azonos címre és háttérre néhány órán belül kért képet a gyorsítótárból adjuk (cached: true, nem fogy a kvóta).

Korlátok
Napi kvóta kulcsonként (alapértelmezés)200 render / nap
Kérések kulcsonként20 / perc
Kulcs nélkül (weboldalról, IP-nként)10 / óra, 30 / nap
Állapotlekérdezés120 / perc
Várakozó renderek (teljes rendszer)legfeljebb 50
Háttérkép méretelegfeljebb 5 MB
Az elkészült képek megőrzése24 óra

POSThttps://kodvena.hu/api/v1/mockup/renders

Új kép kérése. JSON törzs, vagy saját háttérképnél multipart/form-data. Válasz: 202 a sorba állított renderrel (vagy 200 + cached: true a kész, gyorsítótárazott eredménnyel).
MezőTípusLeírás
url*stringA weboldal nyilvános http(s) címe. Belső hálózati, localhost és nem publikus címet nem fogadunk el.
backgroundobjectA háttér: {"preset":"kodvena"} (alapértelmezés), {"type":"solid","color":"#f4f4f5"} vagy {"type":"gradient","stops":["#00bcfe","#8b5cf6"],"angle":135} (2–4 szín, #rrggbb). Multipartban JSON szövegként. Előbeállítások:kodvena (Kódvéna)ejfel (Éjfél)naplemente (Naplemente)menta (Menta)oszibarack (Őszibarack)erdo (Erdő)papir (Papír)grafit (Grafit)
background_imagefájlSaját háttérkép (PNG, JPG vagy WebP) multipart kérésben; ilyenkor a background mező elhagyható.
freshbooleantrue: nem a gyorsítótárból, hanem újonnan készül (fogy a kvóta).
Példa válasz
{
  "id": "01J…",
  "status": "queued",
  "queue_position": 2,
  "url": "https://example.com",
  "background": { "type": "gradient", "stops": ["#00bcfe", "#3b82f6", "#8b5cf6"], "angle": 135, "preset": "kodvena" },
  "files": null,
  "error": null,
  "expires_at": "2026-10-19T10:00:00+02:00",
  "created_at": "2026-10-18T10:00:00+02:00"
}

GEThttps://kodvena.hu/api/v1/mockup/renders/{id}

A render állapota: queued, processing, done vagy failed. Kész állapotban a files mező a képek aláírt, időkorlátos letöltési címeit adja (png, jpg, webp, preview), mindegyikhez url (megjelenítés), download_url (letöltés) és bytes. Hibánál error.code és error.message. Kulcs nem kell hozzá.
Példa válasz
{
  "id": "01J…",
  "status": "done",
  "final_url": "https://example.com/",
  "title": "Example Domain",
  "files": {
    "png": { "url": "https://kodvena.hu/api/v1/mockup/renders/01J…/files/mockup.png?expires=…&signature=…", "download_url": "…&download=1", "bytes": 1843210 },
    "webp": { "url": "…", "download_url": "…", "bytes": 312004 }
  },
  "finished_at": "2026-10-18T10:00:21+02:00"
}

GEThttps://kodvena.hu/api/v1/mockup/config

Az aktuális beállítások: eszköz-nézetek, kimeneti méret és formátumok, háttérkép korlátai, korlátok.

Teljes példa

# 1. render kérése
curl -X POST https://kodvena.hu/api/v1/mockup/renders \
  -H "Authorization: Bearer kvm_…" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","background":{"preset":"ejfel"}}'

# 2. állapot, amíg "done" vagy "failed" nem lesz (pár másodpercenként)
curl https://kodvena.hu/api/v1/mockup/renders/01J…

# 3. letöltés a files.png.download_url címről
curl -L -o mockup.png "<files.png.download_url>"

# saját háttérképpel
curl -X POST https://kodvena.hu/api/v1/mockup/renders -H "X-Api-Key: kvm_…" \
  -F url=https://example.com -F [email protected]

Képoptimalizáló API

Egy kötegben több képet tömörít, méretez át vagy alakít más formátumra. Bemenet: image/jpeg, image/png, image/webp, image/avif. Ha az eredmény nagyobb lenne az eredetinél, az eredetit kapod vissza (kept_original: true). A kulcs előtagja kvk_.

Korlátok
Napi kvóta kulcsonként (alapértelmezés)1000 kép / nap
Kérések kulcsonként30 / perc
Fájlméretlegfeljebb 10 MB / kép
Egy kötegbenlegfeljebb 20 kép, összesen 60 MB
Kulcs nélkül (weboldalról, IP-nként)100 kép és 300 MB / nap, 20 köteg / óra
Az eredmények megőrzése60 perc

POSThttps://kodvena.hu/api/v1/kepoptimalizalo/batches

Köteg feltöltése multipart/form-data kéréssel. Válasz: 202, benne a köteg állapota és egy token: a további kérésekhez ez kell (X-Batch-Token fejlécben vagy ?token= paraméterben). A tokent csak ebben a válaszban adjuk ki, a válaszban lévő címek már tartalmazzák.
MezőTípusLeírás
files[]*fájl (több)A képek. Darabszám, méret és köteg-méret: lásd a korlátokat.
formatstringKimeneti formátum, alapból keep (az eredeti marad).keepjpegpngwebpavif
modestringlossy (alapértelmezés) vagy lossless.
qualityinteger1–100, alapból 80 (veszteséges módban).
max_width / max_heightinteger16–10000 px; a kép arányosan legfeljebb ekkorára kicsinyül (nagyítás nincs).
strip_metadatabooleanAlapból true: az EXIF és más metaadat (pl. GPS) törlődik.
Példa válasz
{
  "token": "Zm9…40 karakter",
  "id": "01J…",
  "settings": { "format": "webp", "mode": "lossy", "quality": 78, "maxWidth": null, "maxHeight": null, "stripMetadata": true },
  "done": false,
  "progress": 0,
  "counts": { "total": 2, "queued": 2, "processing": 0, "done": 0, "failed": 0 },
  "files": [ { "id": "01J…", "name": "foto.jpg", "status": "queued", "queue_position": 1, "in_bytes": 2480012, "result_url": null } ],
  "events_url": "https://kodvena.hu/api/v1/kepoptimalizalo/batches/01J…/events?token=…",
  "expires_at": "2026-10-18T11:00:00+02:00"
}

GEThttps://kodvena.hu/api/v1/kepoptimalizalo/batches/{id}

A köteg állapota (token kell). done: true, ha minden kép elkészült vagy hibára futott. Képenként: status, méretek, saved_percent, result_url, download_url, download_name; összesítve totals.saved_bytes, és ha van kész kép, zip_url.

GEThttps://kodvena.hu/api/v1/kepoptimalizalo/batches/{id}/events

Eseményfolyam (Server-Sent Events) lekérdezés helyett: event: status minden változáskor (a törzs ugyanaz, mint a GET /batches/{id} válasza), a végén event: end. Egy kapcsolat legfeljebb kb. 30 mp-ig él, utána kapcsolódj újra (a retry mező ezt jelzi).

GEThttps://kodvena.hu/api/v1/kepoptimalizalo/batches/{id}/files/{fileId}/result

Az elkészült kép (token kell); ?download=1 letöltésként adja. Az eredeti: …/original. Ha még nem kész: 409 not_ready.

GEThttps://kodvena.hu/api/v1/kepoptimalizalo/batches/{id}/zip

Az összes kész kép egy ZIP-ben (token kell).

Teljes példa

# 1. feltöltés
curl -X POST https://kodvena.hu/api/v1/kepoptimalizalo/batches -H "X-Api-Key: kvk_…" \
  -F "files[][email protected]" -F "files[][email protected]" \
  -F format=webp -F quality=78 -F max_width=1920

# 2. állapot (a válaszból: id és token)
curl -H "X-Batch-Token: <token>" https://kodvena.hu/api/v1/kepoptimalizalo/batches/<id>

# 3. minden kész kép ZIP-ben
curl -L -o kepek.zip "https://kodvena.hu/api/v1/kepoptimalizalo/batches/<id>/zip?token=<token>"

Hibakezelés

Hibánál a válasz JSON: message (magyar, megjeleníthető szöveg), code (géppel feldolgozható) és mezőhibánál errors (mezőnként). A leggyakoribbak:

HTTPcodeMikor
401—Hiányzó, hibás vagy visszavont API-kulcs.
403forbiddenKépoptimalizáló: hiányzó vagy hibás köteg-token.
404not_foundNincs ilyen azonosító, vagy az eredmény már lejárt és törlődött.
409not_readyA kért kép még nem készült el.
413file_too_large / batch_too_largeA fájl vagy a köteg túl nagy.
415unsupported_typeNem támogatott képformátum.
422invalid_url / invalid_background / invalid_settings / no_files / too_many_filesHibás bemenet (részletek az errors mezőben).
429quota_exceeded / —Elfogyott a napi kvóta, vagy túl sok kérés percenként (Retry-After).
503queue_fullA rendszer sora most tele van, próbáld újra (Retry-After: 60).

Kérdésed van, vagy nagyobb kvóta kellene? Írj nekünk egy ticketet az ügyfélportálon.