Flowyer API-referencia
API-verzió: 25ac141b2e28
A Flowyer REST API teljes leírása fejlesztőknek: végpontok, paraméterek, válaszok és kódminták.
A Flowyer API-val saját szoftverből vagy AI-asszisztensből olvashat, hozhat létre és módosíthat rekordokat (ügyeket, ügyfeleket, teendőket, munkaórákat, költségeket és dokumentumokat) egy Flowyer-felhasználó nevében. Minden kérés pontosan az adott felhasználó jogosultságaival fut, a kulcs vagy az engedély hatóköreivel tovább szűkítve. Az API-n keresztül semmit nem lehet törölni.
A végpontok és a mezők leírása angol nyelvű, mert ugyanezt a szöveget olvassák az AI-asszisztensek is.
Alap-URL
Minden végpont az alábbi címek alatt érhető el. Mindig a pontos, www. kezdetű https hostot használja, mert egy átirányítás eldobná az Authorization fejlécet.
Alap-URL
https://www.flowyer.hu/api/agent
https://www.flowyer.com/api/agent
https://www.flowyer.ro/api/agent
https://www.flowyer.de/api/agent
https://www.flowyer.it/api/agent
Hitelesítés
Minden kéréshez Bearer tokent kell küldeni az Authorization fejlécben. Kétféle token létezik; a végpontok mindkettőt ugyanúgy kezelik.
Személyes API-kulcs
A felhasználó a Flowyerben a Beállítások > API-kulcsok oldalon hozza létre, miután az iroda adminisztrátora engedélyezte az API-t. A kulcs flw_ előtaggal kezdődik, csak egyszer jelenik meg, és bármikor azonnali hatállyal visszavonható.
OAuth 2.1 csatlakozó alkalmazásokhoz
A más felhasználóknak szánt integráció kulcs helyett OAuth 2.1 Authorization Code + PKCE (S256) folyamattal kér hozzáférést, a kliens dinamikusan regisztrálható. A hozzáférési token 60 percig érvényes, a frissítő token 60 napig, és minden használatkor új párra cserélődik. A PKCE code_verifier 43 és 128 karakter közötti, és csak az A-Z, a-z, 0-9, valamint a - . _ ~ karaktereket tartalmazhatja (RFC 7636 4.1), vagyis kitöltőjel nélküli base64url: a záró "=" jelet a rendszer elutasítja.
- Szerver-metaadatok
https://www.flowyer.com/.well-known/oauth-authorization-server- Engedélyezés
https://www.flowyer.com/authorize- Token
https://www.flowyer.com/api/agent/oauth/token- Kliens-regisztráció
https://www.flowyer.com/api/agent/oauth/register- Visszavonás
https://www.flowyer.com/api/agent/oauth/revoke
Kérésminták
curl 'https://www.flowyer.hu/api/agent/me' \
-H 'Authorization: Bearer flw_...'
Hatókörök
A GET /me kivételével minden végpont egy hatókört igényel. Ha a kulcs vagy az engedély nem tartalmazza, a válasz 403 scope_missing. A GET /me-hez nem kell hatókör: ezzel ellenőrizheti, mire jogosult a kulcs vagy az engedély.
| Hatókör | Jelentés | Végpontok |
|---|---|---|
matters:read |
Ügyek olvasása | GETÜgyek listázása GETÜgy feloldása név alapján GETÜgy lekérése GETÜgy felelőseinek listázása |
matters:create |
Ügy létrehozása | POSTÜgy létrehozása |
matters:update |
Ügy módosítása | PATCHÜgy frissítése POSTÜgyfelelős hozzáadása |
clients:read |
Ügyfelek olvasása | GETÜgyfelek listázása GETÜgyfél feloldása név alapján GETÜgyfél lekérése |
clients:create |
Ügyfél létrehozása | POSTÜgyfél létrehozása |
clients:update |
Ügyfél módosítása | PATCHÜgyfél módosítása |
tasks:read |
Teendők olvasása | GETFeladatok listázása GETFeladat lekérése |
tasks:create |
Teendő létrehozása | POSTFeladat létrehozása |
tasks:update |
Teendő módosítása | PATCHFeladat módosítása POSTFeladat lezárása |
workhours:read |
Munkaórák olvasása | GETMunkaidő-bejegyzések listázása GETMunkaidő-bejegyzés lekérése |
workhours:create |
Munkaóra rögzítése | POSTMunkaidő-bejegyzés rögzítése |
workhours:update |
Munkaóra módosítása | PATCHMunkaidő-bejegyzés módosítása |
costs:read |
Költségek olvasása | GETKöltségek listázása GETKöltség lekérése |
costs:create |
Költség rögzítése | POSTKöltség rögzítése |
costs:update |
Költség módosítása | PATCHKöltség módosítása |
invoices:read |
Számlák olvasása | GETSzámlák listázása GETSzámla lekérése |
documents:read |
Dokumentumok listázása (csak adatok, letöltés nélkül) | GETAz ügy dokumentumainak listázása GETAz ügy mappáinak listázása |
documents:download |
Dokumentumok letöltése (teljes tartalom) | GETDokumentum letöltése |
documents:create |
Dokumentum feltöltése | POSTÜgymappa létrehozása POSTDokumentumfeltöltés indítása POSTDokumentumfeltöltés befejezése |
documents:update |
Dokumentum átnevezése | PATCHDokumentum átnevezése PATCHÜgymappa átnevezése |
colleagues:read |
Kollégák listázása (csak nevek) | GETMunkatársak listázása |
knowledge:read |
Tudásbázis olvasása | GETTudásbázis-cikkek listázása GETTudásbázis-cikk lekérése GETTudásbázis-kategóriák listázása GETTudásbázis-kategória lekérése |
knowledge:create |
Tudásbázis-bejegyzés létrehozása | POSTTudásbázis-cikk létrehozása POSTTudásbázis-kategória létrehozása |
knowledge:update |
Tudásbázis-bejegyzés módosítása | PATCHTudásbázis-cikk módosítása PATCHTudásbázis-kategória módosítása |
emails:read |
Ügyek e-mailjeinek olvasása | GETÜgy e-mailjeinek listázása GETE-mail lekérése |
litigation:read |
Pertörténet listázása | GETÜgy pertörténetének listázása |
litigation:create |
Pertörténeti bejegyzés létrehozása | POSTPertörténeti bejegyzés létrehozása |
litigation:update |
Pertörténeti bejegyzés módosítása | PATCHPertörténeti bejegyzés módosítása |
mail_register:read |
Postakönyv olvasása | GETPostakönyv listázása GETPostakönyv-bejegyzés lekérése |
mail_register:create |
Postakönyvi tétel létrehozása | POSTPostakönyv-bejegyzés létrehozása |
mail_register:update |
Postakönyvi tétel módosítása | PATCHPostakönyv-bejegyzés módosítása |
comments:read |
Ügy hozzászólások olvasása | GETÜgyhozzászólások listázása |
comments:create |
Hozzászólás írása ügyhöz | POSTÜgyhozzászólás közzététele |
comments:update |
Saját hozzászólás módosítása | PATCHSaját ügyhozzászólás szerkesztése |
trials:read |
Tárgyalások olvasása | GETÜgy tárgyalásainak listázása GETTárgyalás lekérése |
trials:create |
Tárgyalás létrehozása | POSTTárgyalás létrehozása |
trials:update |
Tárgyalás módosítása | PATCHTárgyalás módosítása |
courts:read |
Bíróságok listázása | GETBíróságok listázása |
hr:read |
Szabadságon lévők listázása (csak dátumok) | GETMunkatársak szabadságainak listázása |
calendar:read |
Naptáresemények olvasása | GETNaptáresemények listázása GETNaptáresemény lekérése |
calendar:create |
Naptáresemények létrehozása | POSTNaptáresemény létrehozása |
calendar:update |
Naptáresemények módosítása | PATCHNaptáresemény módosítása |
bookings:read |
Időpontfoglalások megtekintése | GETFoglalások listázása GETFoglalás lekérése |
bookings:create |
Időpontfoglalás létrehozása (e-mailt küld az ügyfélnek) | POSTFoglalás létrehozása |
bookings:update |
Foglalások átütemezése és szerkesztése | PATCHFoglalás módosítása |
bookings:send |
Foglalások visszaigazolása vagy lemondása (e-mailt küld az ügyfélnek) | POSTFoglalás megerősítése POSTFoglalás lemondása |
tickets:read |
Ügyfélszolgálati jegyek olvasása | GETJegyek listázása GETJegy lekérése |
tickets:reply |
Válasz jegyre (e-mailt küld az ügyfélnek) | POSTVálasz a jegyre |
tickets:update |
Jegy státuszának módosítása | PATCHJegy státuszának módosítása |
portal:read |
Ügyfélportál: beszélgetések és üzenetek olvasása | GETÜgyfélportálok listázása GETPortálüzenetek listázása |
portal:reply |
Ügyfélportál: válasz az ügyfélnek (üzenetet és értesítő e-mailt küld) | POSTVálasz az ügyfélportálon |
Hibák
Minden hiba azonos szerkezetű: gépi kód (error), angol üzenet (message), az iroda nyelvén írt üzenet (message_localized) és opcionális részletek (details). 401, 403, 404 és 422 esetén nincs értelme változatlanul újrapróbálni a kérést, két kivétellel: 404 upload_not_finished esetén előbb fejezze be a feltöltést az upload_url címre, majd hívja meg újra a complete műveletet; egy OAuth-hozzáférési token lejártakor (401 expired_key) pedig előbb frissítse a tokent.
| HTTP | error | Jelentés |
|---|---|---|
| 400 | invalid_json use_www_host bad_request |
Hibás kérés: érvénytelen JSON-törzs, rossz host (a www. kezdetűt használja), vagy nem értelmezhető kérés. |
| 401 | missing_key invalid_key revoked_key expired_key user_inactive office_not_found |
A kulcs hiányzik, érvénytelen, visszavont vagy lejárt, a tulajdonosa már nem aktív, vagy a kulcshoz tartozó iroda nem található. |
| 403 | scope_missing module_forbidden forbidden office_api_disabled licence_expired office_archived |
Hiányzó jogosultság a kulcson vagy a felhasználón, vagy az iroda nem engedélyezte az API-t. |
| 404 | not_found matter_not_visible unknown_endpoint upload_not_finished replay_not_visible |
A rekord nem létezik, vagy a felhasználó nem láthatja; ismeretlen végpont; a feltöltött fájl még nem érkezett meg a tárhelyre (upload_not_finished: töltse fel az upload_url címre, majd hívja meg újra a complete műveletet); vagy egy megismételt létrehozás, amelynek rekordja korábban már létrejött, de azóta törölték, vagy nem látható (replay_not_visible: új rekord nem jött létre, ne hozza létre újra). |
| 405 | delete_not_allowed update_not_allowed method_not_allowed |
Törlés az API-n keresztül nem lehetséges; módosítani csak ott lehet, ahol a leírás PATCH műveletet kínál. |
| 409 | client_exists client_exists_generic idempotency_key_reused duplicate_in_progress record_conflict record_locked duplicate_name |
Már létező ügyfélnév; ugyanilyen nevű dokumentum ugyanabban a mappában (duplicate_name); a rekord megváltozott, mióta beolvasta (record_conflict: olvassa be újra, és küldje el a módosítást az új updated_at értékkel); a rekordot kiszámlázták vagy zárolták (record_locked: a változtatást a Flowyerben végezze el); más típusú rekordnál már használt Idempotency-Key; vagy épp feldolgozás alatt lévő azonos kérés. |
| 413 | request_too_large file_too_large |
A kérés törzse túl nagy (request_too_large), vagy a feltöltendő fájl nagyobb a megengedettnél (file_too_large; a details.max mutatja a korlátot bájtban). |
| 422 | validation_failed unknown_client unknown_colleague blocked_file_type upload_token_invalid folder_not_in_matter document_name_too_long |
Hibás vagy hiányzó mező (a details.fields mutatja, melyik); érvénytelen, már felhasznált vagy lejárt feltöltési token (upload_token_invalid: kezdje újra a feltöltést); vagy a mappa nem ehhez az ügyhöz tartozik (folder_not_in_matter). |
| 429 | rate_limited auth_rate_limited |
Túl sok kérés (kulcsonként 300 / perc); a Retry-After fejléc mondja meg, mikor próbálja újra. |
| 500 | server_error |
Váratlan hiba. A kérést a request_id azonosítóval naplóztuk; próbálja újra később, és ha ismétlődik, ezzel az azonosítóval jelezze a Flowyer ügyfélszolgálatának. |
| 503 | office_maintenance office_setup_incomplete temporarily_unavailable |
Az iroda átmenetileg nem érhető el (karbantartás vagy folyamatban lévő beállítás); a Retry-After fejléc mondja meg, mikor próbálja újra. |
Válaszminták · 403
{
"error": "scope_missing",
"message": "This API key does not have the \"clients:create\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"clients:create\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "clients:create"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Lapozás
A rekordlisták a limit és az offset paraméterrel lapozhatók (alapértelmezés 25, legfeljebb 100 elem oldalanként). A pagination.total a teljes találatszám; a következő oldal offset értéke az előző offset és limit összege. A GET /colleagues, a GET /clients/resolve és a GET /matters/resolve nem lapozható: csak limit paramétert fogad el (saját alapértelmezéssel és felső korláttal, lásd az adott végpontot), és pagination objektum helyett a data részben ad total és truncated értéket, ezért offset paramétert ne küldjön nekik.
Válaszminták · 200
{
"data": [
{
"id": 1234,
"...": "..."
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 134
}
}
Ismételhető létrehozás
Minden létrehozás elfogad egy Idempotency-Key fejlécet (vagy idempotency_key mezőt). Ugyanazzal az értékkel megismételt kérés az elsőre létrehozott rekordot adja vissza (200, idempotent_replay), újat nem hoz létre. Eltérő kulcsok mindig külön rekordot hoznak létre. Kulcs nélkül is védett: egy azonos tartalmú létrehozás 120 másodpercen belül az első rekordot adja vissza.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/clients' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{"name": "Kovács Kft."}'
Módosítás és ütközés
A módosítás PATCH kérés a rekord saját útvonalán: csak az elküldött mezők változnak, az explicit null pedig akkor törli a mező értékét, ha a mező leírása ezt megengedi; egyes mezőknél a null megtartja a tárolt értéket, ezért olvassa el a mező leírását. Az expected_updated_at mezőben küldje vissza a legutóbb olvasott updated_at értéket. Ha a rekordot közben más módosította, a válasz 409 record_conflict; ilyenkor olvassa be újra a rekordot.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/matters/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{"expected_updated_at": "2026-10-30T09:15:00+01:00", "description": null}'
Dátumok és időzóna
A dátumok ÉÉÉÉ-HH-NN formátumúak, az időpontok ISO 8601 szerintiek, az iroda időzónájának eltolásával. Az iroda időzónáját a GET /me válasz office.timezone mezője adja meg.
Korlátok
Kulcsonként és tokenenként legfeljebb 300 kérés küldhető percenként; túllépéskor a válasz 429, a Retry-After fejléc pedig megmondja, mikor próbálja újra. Egy JSON-kérés törzse legfeljebb 64 KB, egy feltöltött dokumentum legfeljebb 100 MB lehet.
Verziók
Az OpenAPI-leírás verziója minden változáskor módosul, és ETag fejlécként is megérkezik, így a gépi kliensek If-None-Match fejléccel ellenőrizhetik, változott-e.
Azonosítás
Ki vagyok én
/api/agent/me
Visszaadja azt a felhasználót és irodát, amelynek a nevében ez az API-kulcs eljár, a kulcs hatóköreit (hogy mit tehet) és a sebességkorlátokat. Hívja meg először, hogy megtudja, mely műveletek érhetők el; nem igényel hatókört.
Ennek a végpontnak nincs bemenete.
Válaszok
200
OK.
dataköteleződata mezői
useruser mezői
idnamelanguageofficeoffice mezői
idnametimezoneAz az IANA zóna, amelyben az API az időbélyegeket olvassa és írja, például Europe/Budapest.
currency_idAz iroda pénzneme (Flowyer pénznemazonosító): a costs.create ebben könyvel, ha a currency_id elmarad.
currencyAz iroda pénznemének ISO kódja, például HUF, EUR, RON.
keykey mezői
idnameAz a név, amelyet a felhasználó adott ennek a kulcsnak, vagy a csatlakoztatott alkalmazás OAuth token esetén.
kind"key" = statikus API-kulcs, "oauth" = OAuth 2.1 hozzáférési token.
"key" "oauth" prefixEgy statikus kulcs első karakterei, csak azonosítás céljából; OAuth esetén null.
expires_atlast_used_atscopesEnnek a hitelesítő adatnak a hatókörei, például "matters:read". Az olyan művelet, amelynek hiányzik a hatóköre, 403-at ad válaszul.
available_scopesMinden hatókör, amelyet a kulcs tulajdonosa engedélyezhetne a Flowyerben.
limitslimits mezői
requests_per_minutelist_max_limitchannelHogyan érkezett meg a kérés a Flowyerhez.
"rest" "mcp"
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
Ismeretlen lekérdezési paraméter (ez a művelet egyet sem fogad); a details.fields megnevezi.
details.fields megnevezi.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/me' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/me", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/me",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"user": {
"id": 1234,
"name": "string",
"language": "string"
},
"office": {
"id": 1234,
"name": "string",
"timezone": "string",
"currency_id": 1234,
"currency": "string"
},
"key": {
"id": 1234,
"name": "string",
"kind": "key",
"prefix": "string",
"expires_at": "2026-10-30T09:15:00+01:00",
"last_used_at": "2026-10-30T09:15:00+01:00"
},
"scopes": [
"string"
],
"available_scopes": [
"string"
],
"limits": {
"requests_per_minute": 0,
"list_max_limit": 0
},
"channel": "rest"
}
}
{
"error": "invalid_key",
"message": "The API key is not valid.",
"message_localized": "Az API-kulcs érvénytelen.",
"locale": "hu",
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Munkatársak
Munkatársak listázása
/api/agent/colleagues
Listázza az iroda aktív munkatársait (id, név) az assigned_to_user_id / responsible_user_id számára. A q megadásával (egy név, ahogyan hallotta; az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri) az exact/similar/none állapotot adja vissza, mint a feloldó eszközök: csak az "exact" használható biztonságosan közvetlenül.
Lekérdezési paraméterek
qA keresendő munkatárs neve, ahogyan hallotta vagy diktálták, tetszőleges szósorrendben. Hagyja el az összes aktív munkatárs listázásához.
"Nagy Péter"limitA visszaadandó munkatársak maximális száma (alapértelmezés 200).
200Válaszok
200
OK.
dataköteleződata mezői
statusCsak q esetén: exact = egy biztos találat (az azonosítója biztonságosan használható), similar = közelítő vagy több találat (előbb egyeztessen a felhasználóval), none = nincs találat (kérdezze meg a felhasználót). q nélkül null.
"exact" "similar" "none" colleaguesAktív munkatársak, q esetén a legjobb találat elöl, egyébként név szerint.
colleagues mezői
idFelhasználóazonosító: adja meg assigned_to_user_id / responsible_user_id értékként.
nameA megjelenített név, ahogyan a Flowyer mutatja (a titulussal együtt, ha van).
titleNévelőtag, például "Dr.", vagy null.
totalHány munkatárs felelt meg (q nélkül az összes aktív munkatárs), mielőtt a lista a limit értékre lett vágva.
truncatedtrue, ha több munkatárs felelt meg, mint amennyi visszatért: szűkítse a q értékét, vagy emelje a limit értékét.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/colleagues?q=Nagy%20P%C3%A9ter' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/colleagues?q=Nagy%20P%C3%A9ter", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/colleagues?q=Nagy%20P%C3%A9ter",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"status": "exact",
"colleagues": [
{
"id": 1234,
"name": "string",
"title": "string"
}
],
"total": 1,
"truncated": true
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"colleagues:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"colleagues:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "colleagues:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyek
Ügyek listázása
/api/agent/matters
Listázza azokat az ügyeket (eseteket), amelyeket a felhasználó láthat, a legújabbtól kezdve. Használja arra, hogy ügyszám, tárgy vagy ügyfél alapján megtaláljon egy ügyet, mielőtt máshol hivatkozna rá. Az archivált ügyek rejtve maradnak, kivéve ha az include_archived értéke igaz.
Lekérdezési paraméterek
qSzabad szöveges keresés a tárgyban és az ügyfélnevekben (az ékezetek és a kis- vagy nagybetűk figyelmen kívül hagyásával), valamint az iroda egyéb ügyszámaiban; vagy egy ügyszám, akár pontosan úgy, ahogyan a case_number mezőben visszaadásra kerül (az iroda számozási sémája szerint), akár év/sorszám formában, például "2026/0025".
"2026/0025"client_idCsak ennek az ügyfélnek az ügyei.
512responsible_user_idCsak azok az ügyek, amelyekért ez a felhasználó (az azonosítók a colleagues.list forrásból származnak) felelős: fő felelősként, további felelősként, vagy egy felelős munkacsoport tagjaként (a webes kollégaszűrőnek megfelelően).
updated_sinceCsak az ezen időpontban vagy azt követően módosított ügyek (ISO 8601).
"2026-10-01T00:00:00+02:00"include_archivedAz archivált ügyek is szerepeljenek.
falselimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters?q=2026%2F0025&client_id=512&updated_since=2026-10-01T00%3A00%3A00%2B02%3A00' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters?q=2026%2F0025&client_id=512&updated_since=2026-10-01T00%3A00%3A00%2B02%3A00", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters?q=2026%2F0025&client_id=512&updated_since=2026-10-01T00%3A00%3A00%2B02%3A00",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"matters:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"matters:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "matters:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügy feloldása név alapján
/api/agent/matters/resolve
Megtalál egy ügyet kimondott vagy elgépelt tárgy vagy ügyfélnév alapján (az ékezetek, a kis- és nagybetűk, valamint a kisebb elgépelések megengedettek). Visszaadja az exact/similar/none állapotot és a jelölteket. Csak az "exact" használható közvetlenül biztonsággal; egyébként erősítse meg a felhasználóval. A sok hasonló találat soha nem "exact": szűkítsen a client_id vagy egy teljesebb név megadásával.
Lekérdezési paraméterek
namekötelezőA keresendő ügytárgy vagy ügyfélnév, úgy, ahogyan hallotta vagy diktálták.
"ingatlan adásvétel"client_idCsak ennek az ügyfélnek az ügyei (akkor használja, miután a clients.resolve pontos ügyfelet adott vissza).
limitA visszaadandó jelöltek maximális száma (alapértelmezés: 5).
5Válaszok
200
OK.
dataköteleződata mezői
statusexact = egy biztos találat (az azonosítója biztonsággal használható). similar = egy vagy több közelítő találat, előbb erősítse meg a felhasználóval. none = nincs találat, kérdezze meg a felhasználót.
"exact" "similar" "none" mattersJelölt ügyek, a legjobb találat elöl.
matters mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserattotalHány ügy illeszkedett, mielőtt a listát a limit értékre vágták volna.
truncatedIgaz, ha több ügy illeszkedett, mint amennyit a rendszer visszaadott, vagy túl sok hasonló találat volt ahhoz, hogy mindet ellenőrizni lehessen; szűkítsen a client_id vagy egy teljesebb név megadásával, vagy emelje meg a limit értéket, ahelyett, hogy egy hiányos listából választana.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/resolve?name=ingatlan%20ad%C3%A1sv%C3%A9tel' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/resolve?name=ingatlan%20ad%C3%A1sv%C3%A9tel", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/resolve?name=ingatlan%20ad%C3%A1sv%C3%A9tel",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"status": "exact",
"matters": [
{
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"total": 1,
"truncated": true
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"matters:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"matters:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "matters:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügy lekérése
/api/agent/matters/{id}
Visszaad egy ügyet (esetet) az ügyfeleivel és a részleteivel együtt. 404-et ad válaszul, ha az ügy nem létezik, vagy a felhasználó nem láthatja.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Válaszok
200
OK.
dataköteleződata mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratdescriptionlitigiousarchived_atAz ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"description": "string",
"litigious": true,
"archived_at": "2026-10-30"
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügy létrehozása
/api/agent/matters
Megnyit egy ügyet (esetet) az év következő ügyszámával. Legalább egy létező ügyfél szükséges hozzá (előbb keresse meg vagy hozza létre). A felelős ügyvéd alapértelmezés szerint a kulcs felhasználója, egyébként értesítést kap. A felek, a kapcsolattartók és a díjak a Flowyerben állíthatók be.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
subjectkötelezőAz ügy rövid címe, ahogyan a listákban megjelenik. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Kovács Kft. v. Nagy Bt. - contract dispute"case_type_idkötelezőÜgytípus (jogterület) azonosítója a globális Flowyer ügytípuslistából: válassza ki azt, amelynek a neve megfelel a felhasználó szavainak, vagy kérje meg a felhasználót, hogy név alapján válasszon. Ismeretlen azonosító esetén a válasz 422, a details.known_case_types tartalommal (azonosító + lokalizált név); egy meglévő ügy a típusát a matters.get case_type_id / case_type mezőben jeleníti meg.
client_idskötelezőAz ügyfelek (megbízók) azonosítói. Legalább egy, legfeljebb 20.
[
512
]responsible_user_idFelelős ügyvéd: egy felhasználói azonosító a colleagues.list forrásból (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.
started_onKezdő dátum, YYYY-MM-DD. Alapértelmezés: a mai nap.
"2026-10-29"descriptionHosszabb leírás, egyszerű szöveg.
main_case_numberAz iroda saját fő hivatkozási száma az ügyhöz. Kötelező, ha az iroda számozási sémája használja (egyébként az API 422-t ad válaszul).
restrictedtrue = az ügyet csak a felelős ügyvédek láthatják (kínai fal).
falseidempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratdescriptionlitigiousarchived_atAz ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
createdtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratdescriptionlitigiousarchived_atAz ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
createdfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"case_type_id": 1234,
"client_ids": [
512
],
"started_on": "2026-10-29"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"case_type_id": 1234,
"client_ids": [
512
],
"started_on": "2026-10-29"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"case_type_id": 1234,
"client_ids": [
512,
],
"started_on": "2026-10-29",
},
timeout=30,
)
print(response.status_code, response.json())
{
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"case_type_id": 1234,
"client_ids": [
512
],
"started_on": "2026-10-29"
}
Válaszminták
{
"data": {
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"description": "string",
"litigious": true,
"archived_at": "2026-10-30"
},
"created": true
}
{
"data": {
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"description": "string",
"litigious": true,
"archived_at": "2026-10-30"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"subject": [
"A(z) subject mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügy frissítése
/api/agent/matters/{id}
Módosítja egy ügy tárgyát, leírását, kezdő dátumát, peres jellegét vagy felelős ügyvédjét. Az ügyszám, a kínai fal, az archiválási állapot, a díjak és az ügyfélkapcsolatok itt nem szerkeszthetők. Adja át az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
subjectAz ügy rövid címe. Egyszerű szöveg, új értékként legfeljebb 255 karakter; a "<" és a ">" sem vihető be, de egy tárolt tárgy, amely ennél hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja a jelenlegi tárgyat.
descriptionHosszabb leírás, egyszerű szöveg, új értékként legfeljebb 10000 karakter; egy ennél hosszabb tárolt leírás változatlanul visszaküldhető.
started_onKezdő dátum, YYYY-MM-DD. A null megtartja a jelenlegi értéket (a kezdő dátum nem törölhető).
litigiousHogy az ügy peres-e.
responsible_user_idÚj felelős ügyvéd: egy aktív kolléga felhasználói azonosítója a colleagues.list forrásból. Értesítést kap, ha nem Ön az. A jelenlegi érték küldése - vagy a null / 0, amelyként egy felelős nélküli ügy visszaolvasódik - semmit nem változtat.
Válaszok
200
Frissítve.
dataköteleződata mezői
idAz ügy azonosítója. Máshol matter_id néven használja.
1234case_numberAz ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.
"2026/0025"subject"Kovács Kft. v. Nagy Bt. - contract dispute"status"active" "archived" case_type_idcase_typeAz ügytípus lokalizált neve.
responsible_user_idresponsibleA felelős ügyvéd megjelenítendő neve.
clientsAz ügy ügyfelei (megbízói).
clients mezői
idnamestarted_onrestrictedIgaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).
created_atupdated_atcreated_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratdescriptionlitigiousarchived_atAz ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
updatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/matters/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/matters/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}
Válaszminták
{
"data": {
"id": 1234,
"case_number": "2026/0025",
"subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
"status": "active",
"case_type_id": 1234,
"case_type": "string",
"responsible_user_id": 1234,
"responsible": "string",
"clients": [
{
"id": 1234,
"name": "string"
}
],
"started_on": "2026-10-30",
"restricted": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"description": "string",
"litigious": true,
"archived_at": "2026-10-30"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügy felelőseinek listázása
/api/agent/matters/{id}/responsibles
Listázza egy ügy TOVÁBBI felelőseit (az elsődleges felelős a matters.get hívásban van): mindegyik egy munkatárs (type "user", user_id beállítva) vagy egy munkacsoport (type "workgroup", workgroup_id beállítva), akik mindegyike látja az ügyet. 404 választ ad, ha az ügy nem látható.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
type"user" = egyetlen munkatárs; "workgroup" = egy munkacsoport minden tagja.
"user" "workgroup" user_idMunkatárs-felhasználóazonosító egy "user" bejegyzéshez (adja meg user_id értékként a matters.responsibles.add hívásnak); munkacsoport esetén null.
workgroup_idMunkacsoport-azonosító egy "workgroup" bejegyzéshez; egyetlen munkatárs esetén null. A munkacsoport-felelősöket a Flowyerben kezelik.
nameA munkatárs vagy munkacsoport megjelenített neve.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/responsibles?limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/responsibles?limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/responsibles?limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"type": "user",
"user_id": 1234,
"workgroup_id": 1234,
"name": "string"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfelelős hozzáadása
/api/agent/matters/{id}/responsibles
Hozzáad egy munkatársat (user_id a colleagues.list-ből) egy ügy további felelőseként. Ez HOZZÁFÉRÉST AD ennek a munkatársnak az ügyhöz, ezért csak olyat adjon hozzá, akinek látnia kell; értesítést kapnak. Idempotens: egy meglévő felelős ismételt hozzáadása nem változtat semmin.
Útvonal-paraméterek
idkötelezőAz ügy, amelyért a munkatárs felelős lesz (láthatónak kell lennie).
1234Kérés törzse application/json
user_idkötelezőA hozzáadandó munkatárs: egy felhasználóazonosító a colleagues.list-ből. A hozzáadásuk hozzáférést ad nekik az ügyhöz.
42Válaszok
200
OK.
dataköteleződata mezői
user_idA munkatárs, aki mostantól felelős az ügyért.
nameA munkatárs megjelenített neve.
already_responsibletrue, ha a munkatárs már felelőse volt az ügynek (semmi nem változott).
notifiedtrue, ha a munkatárs értesítést kapott a hozzáadásáról. Soha nem true, ha a munkatárs Ön, vagy ha már felelős volt.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/responsibles' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"user_id": 42
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/responsibles", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"user_id": 42
}),
});
const result = await response.json();
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/responsibles",
headers={
"Authorization": "Bearer flw_...",
},
json={
"user_id": 42,
},
timeout=30,
)
print(response.status_code, response.json())
{
"user_id": 42
}
Válaszminták
{
"data": {
"user_id": 1234,
"name": "string",
"already_responsible": true,
"notified": true
}
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"user_id": [
"A(z) user id mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfelek
Ügyfelek listázása
/api/agent/clients
Listázza az iroda ügyfeleit (természetes személyek és cégek) betűrendben; a q a névben (ékezetektől és kis-/nagybetűtől függetlenül), az e-mail címben és az adószámban keres. Ügyfél létrehozása előtt ellenőrizze a nevet a clients.resolve segítségével (az elgépeléseket is tűri). Az archivált ügyfelek rejtve maradnak, kivéve, ha az include_archived értéke true.
Lekérdezési paraméterek
qKeresés a névben (ékezetektől és kis-/nagybetűtől függetlenül), az e-mail címben és az adószámban.
"Kovács"is_persontrue = csak természetes személyek, false = csak cégek.
include_archivedfalselimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/clients?q=Kov%C3%A1cs&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/clients?q=Kov%C3%A1cs&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/clients?q=Kov%C3%A1cs&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"clients:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"clients:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "clients:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfél feloldása név alapján
/api/agent/clients/resolve
Megtalál egy ügyfelet kimondott vagy elgépelt név alapján (az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri). Az exact/similar/none állapotot és a lehetséges ügyfeleket adja vissza. Csak az "exact" használható biztonságosan közvetlenül; "similar" vagy "none" esetén kérdezze meg a felhasználót. A sok hasonló névvel rendelkező név soha nem "exact": kérjen teljesebb nevet.
Lekérdezési paraméterek
namekötelezőA keresendő ügyfél neve, ahogyan hallotta vagy diktálták.
"Józsi ingatlan"limitA visszaadandó jelöltek maximális száma (alapértelmezés: 5).
5Válaszok
200
OK.
dataköteleződata mezői
statusexact = egy biztos találat (az azonosítója biztonsággal használható). similar = egy vagy több közelítő találat, előbb erősítse meg a felhasználóval. none = nincs találat, kérdezze meg a felhasználót.
"exact" "similar" "none" matchesLehetséges ügyfelek, a legjobb találat elöl.
matches mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserattotalHány ügyfél felelt meg, mielőtt a lista a limit értékre lett vágva.
truncatedtrue, ha több ügyfél felelt meg, mint amennyi visszatért, vagy túl sok hasonló név volt ahhoz, hogy mindegyiket ellenőrizni lehessen; kérjen a felhasználótól teljesebb nevet, vagy emelje a limit értékét, ahelyett hogy egy hiányos listából választana.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/clients/resolve?name=J%C3%B3zsi%20ingatlan' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/clients/resolve?name=J%C3%B3zsi%20ingatlan", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/clients/resolve?name=J%C3%B3zsi%20ingatlan",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"status": "exact",
"matches": [
{
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"total": 1,
"truncated": true
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"clients:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"clients:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "clients:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfél lekérése
/api/agent/clients/{id}
Egy ügyfelet ad vissza a címmel és a nyilvántartási adatokkal. Igazolványszámok és díjbeállítások soha nem kerülnek visszaadásra.
Útvonal-paraméterek
idkötelezőÜgyfélazonosító.
512Válaszok
200
OK.
dataköteleződata mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserataddressaddress mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreettax_numberCsak cégek esetén; természetes személynél null.
company_registration_numberCsak cégek esetén; természetes személynél null.
representative_nameCsak cégek esetén; természetes személynél null.
representative_positionCsak cégek esetén; természetes személynél null.
main_activityFő tevékenységi kör. Csak cégek esetén; természetes személynél null.
nationality_countrynote
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/clients/512' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/clients/512", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/clients/512",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"address": {
"zip": "string",
"city": "string",
"street": "string"
},
"mailing_address": {
"zip": "string",
"city": "string",
"street": "string"
},
"tax_number": "string",
"company_registration_number": "string",
"representative_name": "string",
"representative_position": "string",
"main_activity": "string",
"nationality_country": "string",
"note": "string"
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"client_id": 512
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfél létrehozása
/api/agent/clients
Létrehoz egy ügyfelet (személy vagy cég), amelynek létrehozójaként a kulcshoz tartozó felhasználó kerül rögzítésre. Először ellenőrizze a nevet a clients.resolve segítségével (a hiányzó ékezeteket és az elgépeléseket is tűri): a 409 csak a pontosan azonos nevű aktív ügyfelet szűri ki, kivéve, ha az allow_duplicate_name értéke true. Igazolványszámok és díjak nem állíthatók be.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
namekötelezőA személy teljes neve vagy a cég neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Kovács Kft."is_persontrue természetes személy, false (alapértelmezett) cég esetén.
falseemail"info@kovacskft.hu"phone"+36 1 234 5678"addressSzékhely / lakcím.
address mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreettax_numberCég adószáma (csak cégek esetén).
"12345678-2-41"company_registration_numberCégjegyzékszám (csak cégek esetén).
"01-09-123456"representative_nameCsak cégek esetén.
representative_positionCsak cégek esetén.
main_activityFő tevékenységi kör (csak cégek esetén).
nationality_countrynoteallow_duplicate_nameLétrehozás akkor is, ha már létezik azonos nevű aktív ügyfél.
falseidempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserataddressaddress mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreettax_numberCsak cégek esetén; természetes személynél null.
company_registration_numberCsak cégek esetén; természetes személynél null.
representative_nameCsak cégek esetén; természetes személynél null.
representative_positionCsak cégek esetén; természetes személynél null.
main_activityFő tevékenységi kör. Csak cégek esetén; természetes személynél null.
nationality_countrynotecreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserataddressaddress mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreettax_numberCsak cégek esetén; természetes személynél null.
company_registration_numberCsak cégek esetén; természetes személynél null.
representative_nameCsak cégek esetén; természetes személynél null.
representative_positionCsak cégek esetén; természetes személynél null.
main_activityFő tevékenységi kör. Csak cégek esetén; természetes személynél null.
nationality_countrynotecreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Már létezik azonos nevű aktív ügyfél (client_exists, vagy a clients:read scope hiányában client_exists_generic, amikor a meglévő ügyfél nem nevezhető meg; a felülbíráláshoz adja meg az allow_duplicate_name értéket), az Idempotency-Key egy másik erőforrástípushoz lett használva (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása épp folyamatban van (duplicate_in_progress).
client_exists, vagy a clients:read scope hiányában client_exists_generic, amikor a meglévő ügyfél nem nevezhető meg; a felülbíráláshoz adja meg az allow_duplicate_name értéket), az Idempotency-Key egy másik erőforrástípushoz lett használva (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása épp folyamatban van (duplicate_in_progress).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/clients' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"name": "Kovács Kft.",
"email": "info@kovacskft.hu",
"phone": "+36 1 234 5678",
"tax_number": "12345678-2-41",
"company_registration_number": "01-09-123456"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/clients", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"name": "Kovács Kft.",
"email": "info@kovacskft.hu",
"phone": "+36 1 234 5678",
"tax_number": "12345678-2-41",
"company_registration_number": "01-09-123456"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/clients",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"name": "Kovács Kft.",
"email": "info@kovacskft.hu",
"phone": "+36 1 234 5678",
"tax_number": "12345678-2-41",
"company_registration_number": "01-09-123456",
},
timeout=30,
)
print(response.status_code, response.json())
{
"name": "Kovács Kft.",
"email": "info@kovacskft.hu",
"phone": "+36 1 234 5678",
"tax_number": "12345678-2-41",
"company_registration_number": "01-09-123456"
}
Válaszminták
{
"data": {
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"address": {
"zip": "string",
"city": "string",
"street": "string"
},
"mailing_address": {
"zip": "string",
"city": "string",
"street": "string"
},
"tax_number": "string",
"company_registration_number": "string",
"representative_name": "string",
"representative_position": "string",
"main_activity": "string",
"nationality_country": "string",
"note": "string"
},
"created": true
}
{
"data": {
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"address": {
"zip": "string",
"city": "string",
"street": "string"
},
"mailing_address": {
"zip": "string",
"city": "string",
"street": "string"
},
"tax_number": "string",
"company_registration_number": "string",
"representative_name": "string",
"representative_position": "string",
"main_activity": "string",
"nationality_country": "string",
"note": "string"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"name": [
"A(z) name mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfél módosítása
/api/agent/clients/{id}
Módosítja egy ügyfél kapcsolattartási mezőit (név, e-mail, telefon, cím, megjegyzés, állampolgárság, valamint a cég képviselője/tevékenysége). Az igazolványszámok, adószámok, díjak és a személy/cég típus itt nem szerkeszthetők. Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
nameTeljes név vagy cégnév. Egyszerű szöveg, ÚJ értékként legfeljebb 255 karakter; a "<" és a ">" sem vihető be, de egy tárolt név, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális nevet.
emailphoneaddressSzékhely / lakcím.
address mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreetrepresentative_nameCsak cégek esetén.
representative_positionCsak cégek esetén.
main_activityFő tevékenységi kör (csak cégek esetén).
nationality_countrynoteSzabad szöveges megjegyzés, ÚJ értékként legfeljebb 4000 karakter; egy hosszabb tárolt megjegyzés változatlanul visszaküldhető. A null törli a megjegyzést.
Válaszok
200
Frissítve.
dataköteleződata mezői
idÜgyfélazonosító. Használja client_id értékként máshol.
512name"Kovács Kft."is_persontrue természetes személy, false cég esetén.
emailphonearchivedrecorded_by_user_idrecorded_bycreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserataddressaddress mezői
zipcitystreetmailing_addressmailing_address mezői
zipcitystreettax_numberCsak cégek esetén; természetes személynél null.
company_registration_numberCsak cégek esetén; természetes személynél null.
representative_nameCsak cégek esetén; természetes személynél null.
representative_positionCsak cégek esetén; természetes személynél null.
main_activityFő tevékenységi kör. Csak cégek esetén; természetes személynél null.
nationality_countrynoteupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/clients/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/clients/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/clients/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}
Válaszminták
{
"data": {
"id": 512,
"name": "Kovács Kft.",
"is_person": true,
"email": "info@example.hu",
"phone": "string",
"archived": true,
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"address": {
"zip": "string",
"city": "string",
"street": "string"
},
"mailing_address": {
"zip": "string",
"city": "string",
"street": "string"
},
"tax_number": "string",
"company_registration_number": "string",
"representative_name": "string",
"representative_position": "string",
"main_activity": "string",
"nationality_country": "string",
"note": "string"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Feladatok
Feladatok listázása
/api/agent/tasks
Listázza a felhasználó számára látható feladatokat (határidős teendők), a legközelebbi határidővel kezdve. Alapértelmezés szerint a nyitott feladatokat; szűrhet felelősre, ügyre, ügyfélre vagy határidőtartományra.
Lekérdezési paraméterek
statusopen (alapértelmezett), closed vagy all.
"open" "closed" "all" "open"assigned_to_user_idCsak az ehhez a felhasználóhoz rendelt feladatok (egy felhasználóazonosító a colleagues.list-ből).
matter_idCsak az ehhez az ügyhöz tartozó feladatok.
client_idCsak az ehhez az ügyfélhez tartozó ügy nélküli feladatok.
deadline_fromHatáridő ezen a napon vagy azután.
"2026-11-01"deadline_toHatáridő ezen a napon vagy azelőtt.
"2026-11-30"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/tasks?deadline_from=2026-11-01&deadline_to=2026-11-30&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/tasks?deadline_from=2026-11-01&deadline_to=2026-11-30&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/tasks?deadline_from=2026-11-01&deadline_to=2026-11-30&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"tasks:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"tasks:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "tasks:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Feladat lekérése
/api/agent/tasks/{id}
Egy feladatot ad vissza. 404 választ ad, ha a feladat nem létezik, vagy a felhasználó nem láthatja.
Útvonal-paraméterek
idkötelezőFeladatazonosító.
9876Válaszok
200
OK.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/tasks/9876' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/tasks/9876", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/tasks/9876",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"task_id": 9876
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Feladat létrehozása
/api/agent/tasks
Létrehoz egy feladatot (határidős teendő), vagy egy ügyön (matter_id, látható és nem archivált), vagy ügy nélkül, opcionálisan egy ügyfélhez (client_id). A felelős alapértelmezés szerint a kulcshoz tartozó felhasználó, és értesítést kap, ha az valaki más.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
subjectkötelezőMit kell elvégezni. Egyszerű szöveg.
"Submit the statement of defence"deadlinekötelezőHatáridő, YYYY-MM-DD.
"2026-11-15"matter_idAz ügy, amelyhez a feladat tartozik. Hagyja el egy ügy nélküli feladathoz.
1234client_idEgy ügy nélküli feladat ügyfele. A matter_id-vel együtt nem engedélyezett (egy ügy feladata az ügy ügyfelét veszi át).
assigned_to_user_idA feladatért felelős munkatárs: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.
priority1 = alacsony, 2 = közepes (alapértelmezett), 3 = magas.
2descriptionHosszabb részletek, egyszerű szöveg.
flag_idEgy irodai feladatjelző (címke) azonosítója.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/tasks' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"subject": "Submit the statement of defence",
"deadline": "2026-11-15",
"matter_id": 1234
}'
const response = await fetch("https://www.flowyer.hu/api/agent/tasks", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"subject": "Submit the statement of defence",
"deadline": "2026-11-15",
"matter_id": 1234
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/tasks",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"subject": "Submit the statement of defence",
"deadline": "2026-11-15",
"matter_id": 1234,
},
timeout=30,
)
print(response.status_code, response.json())
{
"subject": "Submit the statement of defence",
"deadline": "2026-11-15",
"matter_id": 1234
}
Válaszminták
{
"data": {
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"subject": [
"A(z) subject mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Feladat módosítása
/api/agent/tasks/{id}
Módosít egy feladatot: tárgy, határidő, leírás, prioritás, jelző, felelős vagy az ügy, amelyhez tartozik. Egy ügyre áthelyezve újraszármaztatja a bírósági kapcsolatot, és elhagyja a közvetlen ügyfelet; a client_id csak egy ügy nélküli feladathoz való. Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
subjectMit kell elvégezni. Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; egy hosszabb tárolt tárgy változatlanul visszaküldhető. A null megtartja az aktuális tárgyat.
deadlineHatáridő, YYYY-MM-DD. A null megtartja az aktuális határidőt (a határidő nem törölhető).
matter_idÁthelyezi a feladatot erre az ügyre (láthatónak és nem archiváltnak kell lennie), vagy null a leválasztásához. A feladat aktuális ügyének küldése nem változtat semmin.
client_idEgy ügy nélküli feladat ügyfele. Csak akkor engedélyezett, ha a feladatnak nincs ügye.
assigned_to_user_idÚj felelős: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből. Értesítést kap, ha nem Ön az. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli feladat visszaolvas, nem változtat semmin.
priority1 = alacsony, 2 = közepes, 3 = magas. Hagyja el az aktuális prioritás megtartásához (akkor is, ha a feladat priority null értékkel olvas vissza); a null elutasításra kerül.
descriptionHosszabb részletek, egyszerű szöveg, ÚJ értékként legfeljebb 10000 karakter; egy hosszabb tárolt leírás változatlanul visszaküldhető.
flag_idEgy irodai feladatjelző (címke) azonosítója, vagy null a törléséhez.
Válaszok
200
Frissítve.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/tasks/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/tasks/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/tasks/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"subject": "string"
}
Válaszminták
{
"data": {
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Feladat lezárása
/api/agent/tasks/{id}/close
Lezár egy feladatot. Ha perc van megadva, egy munkaidő-bejegyzést is rögzít (ehhez workhours:create és egy ügy szükséges: a feladat sajátja, vagy a matter_id egy ügy nélküli feladaton); a számlázható perceket az iroda óraplafonja korlátozza. Egy második lezárás 409 választ ad, így egy újrapróbálkozás soha nem rögzít második bejegyzést.
Útvonal-paraméterek
idkötelezőFeladatazonosító.
9876Kérés törzse application/json
minutes_spentEltöltött idő percben. Bármilyen idő rögzítéséhez a workhours:create scope és egy ügy szükséges.
minutes_invoiceableSzámlázható percek; az iroda óraplafonja korlátozza.
minutes_normativeNormatív percek; nyersen tárolva, soha nem korlátozva.
matter_idEnnek az ügynek a hozzárendelése egy ÜGY NÉLKÜLI feladathoz a lezáráskor (és így lehetővé téve az idő rögzítését). Nem engedélyezett, ha a feladatnak már van ügye.
client_idKözvetlen ügyfél (Megbízó) egy ügy nélkül lezárt, ügy nélküli feladathoz.
Válaszok
200
OK.
dataköteleződata mezői
id9876subject"Submit the statement of defence"descriptiondeadlineHatáridő, YYYY-MM-DD.
"2026-11-15"priority1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).
2status"open" "closed" closed_atA feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
matterAz ügy, amelyhez a feladat tartozik, ha van ilyen.
matter mezői
idcase_numberclientAz ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.
client mezői
idnameassigned_to_user_idassigned_tocreated_by_user_idcreated_byflag_idcreated_atupdated_atcreated_via_apicreated_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratbooked_workhourA lezárásból rögzített munkaidő-bejegyzés, vagy null, ha nem adtak meg időt.
booked_workhour mezői
idminutesminutes_invoiceableminutes_normative
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/tasks/9876/close' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{}'
const response = await fetch("https://www.flowyer.hu/api/agent/tasks/9876/close", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
const result = await response.json();
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/tasks/9876/close",
headers={
"Authorization": "Bearer flw_...",
},
json={},
timeout=30,
)
print(response.status_code, response.json())
{}
Válaszminták
{
"data": {
"id": 9876,
"subject": "Submit the statement of defence",
"description": "string",
"deadline": "2026-11-15",
"priority": 2,
"status": "open",
"closed_at": "2026-10-30",
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"assigned_to_user_id": 1234,
"assigned_to": "string",
"created_by_user_id": 1234,
"created_by": "string",
"flag_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"booked_workhour": {
"id": 1234,
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Munkaidő
Munkaidő-bejegyzések listázása
/api/agent/workhours
Listázza a felhasználó számára látható ügyek élő (még ki nem számlázott) munkaidő-bejegyzéseit, a legújabbtól kezdve. Szűrhet ügyre, felelős munkatársra vagy dátumtartományra. Az összesítésből kizárt bejegyzések is szerepelnek, excluded: true jelöléssel; hagyja ki őket a számlázható végösszegekből.
Lekérdezési paraméterek
matter_idCsak az ehhez az ügyhöz tartozó bejegyzések.
1234responsible_user_idCsak az ehhez a munkatárshoz rögzített bejegyzések (egy felhasználóazonosító a colleagues.list-ből).
date_fromCsak az ezen a dátumon vagy azután keletkezett bejegyzések (YYYY-MM-DD).
date_toCsak az ezen a dátumon vagy azelőtt keletkezett bejegyzések (YYYY-MM-DD).
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idMunkaidő-bejegyzés azonosítója.
matter_idAz ügy, amelyhez a bejegyzés rögzítve van.
dateactivityMi történt (egyszerű szöveg).
minutesEltöltött percek.
minutes_invoiceableSzámlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.
minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van.
responsiblerecorded_by_user_idKi rögzítette a bejegyzést.
lockedtrue, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).
excludedtrue, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/workhours?matter_id=1234&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/workhours?matter_id=1234&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/workhours?matter_id=1234&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0,
"responsible_user_id": 1234,
"responsible": "string",
"recorded_by_user_id": 1234,
"locked": true,
"excluded": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"workhours:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"workhours:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "workhours:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Munkaidő-bejegyzés lekérése
/api/agent/workhours/{id}
Egy élő munkaidő-bejegyzést ad vissza azonosító alapján, ha az ügye látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőMunkaidő-bejegyzés azonosítója.
Válaszok
200
OK.
dataköteleződata mezői
idMunkaidő-bejegyzés azonosítója.
matter_idAz ügy, amelyhez a bejegyzés rögzítve van.
dateactivityMi történt (egyszerű szöveg).
minutesEltöltött percek.
minutes_invoiceableSzámlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.
minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van.
responsiblerecorded_by_user_idKi rögzítette a bejegyzést.
lockedtrue, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).
excludedtrue, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/workhours/1234' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/workhours/1234", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/workhours/1234",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0,
"responsible_user_id": 1234,
"responsible": "string",
"recorded_by_user_id": 1234,
"locked": true,
"excluded": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "workhour",
"record_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Munkaidő-bejegyzés rögzítése
/api/agent/workhours
Rögzít egy munkaidő-bejegyzést egy ügyön: dátum, tevékenység, eltöltött percek és számlázható percek. Az elhagyott számlázható percek azt jelentik, hogy nem számlázható: számlázható munkához küldje a minutes_invoiceable értéket. Ezeket az iroda óraplafonja korlátozza. A felelős munkatárs alapértelmezés szerint a kulcshoz tartozó felhasználó, egyébként értesítést kap.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
matter_idkötelezőAz ügy, amelyhez az idő rögzítve van (láthatónak kell lennie).
1234datekötelezőA munka dátuma, YYYY-MM-DD.
"2026-10-30"subjectMi történt; az olvasó oldal activity néven adja vissza, és itt bármelyik név elfogadott (a kettő egyike kötelező). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Drafting the statement of claim"activityUgyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje.
^[^<>]*$minutesA ténylegesen eltöltött percek.
90minutes_invoiceableA kért számlázható percek. Elhagyva vagy null = nem számlázható (a bejegyzés semmit nem számláz; nem a minutes értékből származtatódnak): számlázható munkához adja meg őket kifejezetten, általában a minutes értékkel megegyezően. Az iroda óraplafonja csökkentheti a tárolt értéket. Csak addig számítanak bele a számlázásba, amíg a bejegyzés nincs kizárva az összesítésből.
60minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idMunkaidő-bejegyzés azonosítója.
matter_idAz ügy, amelyhez a bejegyzés rögzítve van.
dateactivityMi történt (egyszerű szöveg).
minutesEltöltött percek.
minutes_invoiceableSzámlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.
minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van.
responsiblerecorded_by_user_idKi rögzítette a bejegyzést.
lockedtrue, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).
excludedtrue, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
createdtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idMunkaidő-bejegyzés azonosítója.
matter_idAz ügy, amelyhez a bejegyzés rögzítve van.
dateactivityMi történt (egyszerű szöveg).
minutesEltöltött percek.
minutes_invoiceableSzámlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.
minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van.
responsiblerecorded_by_user_idKi rögzítette a bejegyzést.
lockedtrue, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).
excludedtrue, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
createdfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/workhours' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Drafting the statement of claim",
"minutes": 90,
"minutes_invoiceable": 60
}'
const response = await fetch("https://www.flowyer.hu/api/agent/workhours", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Drafting the statement of claim",
"minutes": 90,
"minutes_invoiceable": 60
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/workhours",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Drafting the statement of claim",
"minutes": 90,
"minutes_invoiceable": 60,
},
timeout=30,
)
print(response.status_code, response.json())
{
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Drafting the statement of claim",
"minutes": 90,
"minutes_invoiceable": 60
}
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0,
"responsible_user_id": 1234,
"responsible": "string",
"recorded_by_user_id": 1234,
"locked": true,
"excluded": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0,
"responsible_user_id": 1234,
"responsible": "string",
"recorded_by_user_id": 1234,
"locked": true,
"excluded": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"matter_id": [
"A(z) matter id mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Munkaidő-bejegyzés módosítása
/api/agent/workhours/{id}
Módosít egy élő munkaidő-bejegyzést: dátum, tevékenység (subject vagy activity), percek, számlázható percek (egy megváltoztatott számot az óraplafon korlátoz, egy visszaküldött megmarad) és a felelős munkatárs. Egy zárolt vagy kiszámlázott bejegyzés nem módosítható (409). Adja meg az expected_updated_at értéket; ütközés esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
dateA munka dátuma, YYYY-MM-DD. A null megtartja az aktuális dátumot.
subjectMi történt, az az érték, amelyet az olvasó oldal activity néven ad vissza (bármelyik név elfogadott; az egyikük alatti null jelentése "not given", csak két eltérő szöveget utasít el). Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; a "<" és a ">" sem vihető be, de egy tárolt szöveg, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális szöveget.
activityUgyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje (a másik alatti null rendben van).
minutesA ténylegesen eltöltött percek; a null törli őket.
minutes_invoiceableA kért számlázható percek. A tárolttól eltérő számot az óraplafon megmaradt részéhez igazítja; az olvasás által visszaadott érték újraküldése a rögzített formában tartja meg (nem kerül újra levágásra). A null törli őket. Csak addig számítanak bele a számlázásba, amíg a bejegyzés nincs kizárva az összesítésből (az excluded értéke false).
minutes_normativeNormatív percek (soha nem korlátozva); a null törli őket.
responsible_user_idÚj felelős munkatárs: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből; értesítést kap, ha nem Ön az. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli bejegyzés visszaolvas, nem változtat semmin.
Válaszok
200
Frissítve.
dataköteleződata mezői
idMunkaidő-bejegyzés azonosítója.
matter_idAz ügy, amelyhez a bejegyzés rögzítve van.
dateactivityMi történt (egyszerű szöveg).
minutesEltöltött percek.
minutes_invoiceableSzámlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.
minutes_normativeNormatív percek (tájékoztató jellegű; soha nem korlátozva).
responsible_user_idA munkatárs, akihez az idő rögzítve van.
responsiblerecorded_by_user_idKi rögzítette a bejegyzést.
lockedtrue, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).
excludedtrue, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
updatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/workhours/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/workhours/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/workhours/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"minutes": 0,
"minutes_invoiceable": 0,
"minutes_normative": 0,
"responsible_user_id": 1234,
"responsible": "string",
"recorded_by_user_id": 1234,
"locked": true,
"excluded": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Költségek
Költségek listázása
/api/agent/costs
Listázza a felhasználó számára látható ügyek élő költségeit, a legújabbtól kezdve (a kiszámlázott költség már nincs itt). Szűrhet ügyre, felelős munkatársra vagy dátumtartományra. Az összegek nettók. Az excluded: true jelölésű sorok kimaradnak az összesítésből, a locked: true jelölésű sorokat pedig a Flowyer kezeli.
Lekérdezési paraméterek
matter_idCsak az ehhez az ügyhöz tartozó költségek.
1234responsible_user_idCsak az ehhez a munkatárshoz rögzített költségek (egy felhasználóazonosító a colleagues.list-ből).
date_fromCsak az ezen a dátumon vagy azután keletkezett költségek (YYYY-MM-DD).
date_toCsak az ezen a dátumon vagy azelőtt keletkezett költségek (YYYY-MM-DD).
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idKöltségazonosító.
matter_idAz ügy, amelyhez a költség tartozik.
dateactivityA költség leírása (egyszerű szöveg).
costNettó költségösszeg (áfa nélkül).
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.
currency_idPénznemazonosító (a Flowyer pénznemlistája).
currencyPénznem ISO-kódja, pl. HUF, EUR.
responsible_user_idresponsibleexcludedtrue, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.
lockedtrue, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).
approved_for_billingtrue, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/costs?matter_id=1234&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/costs?matter_id=1234&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/costs?matter_id=1234&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"cost": 0,
"cost_invoiceable": 0,
"currency_id": 1234,
"currency": "string",
"responsible_user_id": 1234,
"responsible": "string",
"excluded": true,
"locked": true,
"approved_for_billing": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"costs:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"costs:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "costs:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Költség lekérése
/api/agent/costs/{id}
Egy élő költséget ad vissza azonosító alapján, ha az ügye látható a felhasználó számára. Az összegek nettók.
Útvonal-paraméterek
idkötelezőKöltségazonosító.
Válaszok
200
OK.
dataköteleződata mezői
idKöltségazonosító.
matter_idAz ügy, amelyhez a költség tartozik.
dateactivityA költség leírása (egyszerű szöveg).
costNettó költségösszeg (áfa nélkül).
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.
currency_idPénznemazonosító (a Flowyer pénznemlistája).
currencyPénznem ISO-kódja, pl. HUF, EUR.
responsible_user_idresponsibleexcludedtrue, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.
lockedtrue, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).
approved_for_billingtrue, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/costs/1234' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/costs/1234", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/costs/1234",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"cost": 0,
"cost_invoiceable": 0,
"currency_id": 1234,
"currency": "string",
"responsible_user_id": 1234,
"responsible": "string",
"excluded": true,
"locked": true,
"approved_for_billing": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "cost",
"record_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Költség rögzítése
/api/agent/costs
Rögzít egy költséget (kiadást) egy ügyön: dátum, szöveg (subject, visszaolvasva activity néven), nettó összeg, az ügyfélnek kiszámlázott nettó összeg és pénznem (alapértelmezés: az iroda pénzneme). Az összegek nettók (áfa nélkül). A felelős munkatárs alapértelmezés szerint a kulcshoz tartozó felhasználó, egyébként értesítést kap.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
matter_idkötelezőAz ügy, amelyhez a költség tartozik (láthatónak kell lennie).
1234datekötelezőA költség dátuma, YYYY-MM-DD.
"2026-10-30"subjectA költség leírása; az olvasó oldal activity néven adja vissza, és itt bármelyik név elfogadott (a kettő egyike kötelező). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Court filing fee"activityUgyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje.
^[^<>]*$costkötelezőNettó költségösszeg (áfa nélkül), egész szám a pénznem fő egységében (a váltópénz nem kerül tárolásra).
15000cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg, egész szám (hagyja el, ha nem kerül kiszámlázásra). Csak addig számít bele a számlázásba, amíg a költség nincs kizárva az összesítésből.
15000currency_idPénznemazonosító a Flowyer pénznemlistájából (nem ISO-kód). Hagyja el az iroda pénznemének használatához (GET /me office.currency_id / office.currency); ismeretlen azonosító esetén a válasz 422, az elfogadott azonosítókkal és kódokkal a details.allowed mezőben.
responsible_user_idFelelős munkatárs: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idKöltségazonosító.
matter_idAz ügy, amelyhez a költség tartozik.
dateactivityA költség leírása (egyszerű szöveg).
costNettó költségösszeg (áfa nélkül).
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.
currency_idPénznemazonosító (a Flowyer pénznemlistája).
currencyPénznem ISO-kódja, pl. HUF, EUR.
responsible_user_idresponsibleexcludedtrue, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.
lockedtrue, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).
approved_for_billingtrue, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
createdtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idKöltségazonosító.
matter_idAz ügy, amelyhez a költség tartozik.
dateactivityA költség leírása (egyszerű szöveg).
costNettó költségösszeg (áfa nélkül).
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.
currency_idPénznemazonosító (a Flowyer pénznemlistája).
currencyPénznem ISO-kódja, pl. HUF, EUR.
responsible_user_idresponsibleexcludedtrue, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.
lockedtrue, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).
approved_for_billingtrue, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
createdfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/costs' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Court filing fee",
"cost": 15000,
"cost_invoiceable": 15000
}'
const response = await fetch("https://www.flowyer.hu/api/agent/costs", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Court filing fee",
"cost": 15000,
"cost_invoiceable": 15000
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/costs",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Court filing fee",
"cost": 15000,
"cost_invoiceable": 15000,
},
timeout=30,
)
print(response.status_code, response.json())
{
"matter_id": 1234,
"date": "2026-10-30",
"subject": "Court filing fee",
"cost": 15000,
"cost_invoiceable": 15000
}
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"cost": 0,
"cost_invoiceable": 0,
"currency_id": 1234,
"currency": "string",
"responsible_user_id": 1234,
"responsible": "string",
"excluded": true,
"locked": true,
"approved_for_billing": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"cost": 0,
"cost_invoiceable": 0,
"currency_id": 1234,
"currency": "string",
"responsible_user_id": 1234,
"responsible": "string",
"excluded": true,
"locked": true,
"approved_for_billing": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"matter_id": [
"A(z) matter id mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Költség módosítása
/api/agent/costs/{id}
Módosít egy élő költséget: szöveg (subject, visszaolvasva activity néven), dátum, nettó összegek, pénznem és a felelős munkatárs. A locked: true jelölésű költség nem módosítható (409 record_locked, details.reason). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
dateA költség dátuma, YYYY-MM-DD. A null megtartja az aktuális dátumot.
subjectA költség leírása, az az érték, amelyet az olvasó oldal activity néven ad vissza (bármelyik név elfogadott; az egyikük alatti null jelentése "not given", csak két eltérő szöveget utasít el). Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; a "<" és a ">" sem vihető be, de egy tárolt szöveg, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális szöveget.
activityUgyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje (a másik alatti null rendben van).
costNettó költségösszeg (áfa nélkül), egész szám a pénznem fő egységében (a váltópénz nem kerül tárolásra). A null törli az összeget.
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg, egész szám; a null törli. Csak addig számít bele a számlázásba, amíg a költség nincs kizárva az összesítésből (az excluded értéke false).
currency_idPénznemazonosító a Flowyer pénznemlistájából (nem ISO-kód; az iroda pénzneme a GET /me office.currency_id). Ismeretlen azonosító esetén a válasz 422, az elfogadott azonosítókkal és kódokkal a details.allowed mezőben. A null, vagy a 0, amelyet egy be nem állított régi költség visszaolvas, megtartja az aktuális pénznemet.
responsible_user_idÚj felelős munkatárs: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli költség visszaolvas, nem változtat semmin.
Válaszok
200
Frissítve.
dataköteleződata mezői
idKöltségazonosító.
matter_idAz ügy, amelyhez a költség tartozik.
dateactivityA költség leírása (egyszerű szöveg).
costNettó költségösszeg (áfa nélkül).
cost_invoiceableAz ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.
currency_idPénznemazonosító (a Flowyer pénznemlistája).
currencyPénznem ISO-kódja, pl. HUF, EUR.
responsible_user_idresponsibleexcludedtrue, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.
lockedtrue, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).
approved_for_billingtrue, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.
created_atupdated_atMódosításkor küldje vissza ezt expected_updated_at értékként.
updatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/costs/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/costs/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/costs/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-10-30"
}
Válaszminták
{
"data": {
"id": 1234,
"matter_id": 1234,
"date": "2026-10-30",
"activity": "string",
"cost": 0,
"cost_invoiceable": 0,
"currency_id": 1234,
"currency": "string",
"responsible_user_id": 1234,
"responsible": "string",
"excluded": true,
"locked": true,
"approved_for_billing": true,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Számlák
Számlák listázása
/api/agent/invoices
Listázza a számlákat (kiállított és beérkezett), a legújabb kiállítási dátumtól kezdve. A direction=outgoing az iroda kiállított számláinak listája, és kihagyja a díjbekérőket (a direction=proforma azokat listázza). Csak olvasható: számlák nem hozhatók létre és nem módosíthatók az API-n keresztül. A felhasználó számára nem látható ügyek számlái rejtve maradnak.
Lekérdezési paraméterek
directionAz iroda saját három listája: outgoing = az iroda által kiállított számlák, a díjbekérők nélkül (egy dokumentumtípus nélküli régi sor számlának számít, mint az iroda irányítópultján); proforma = az iroda által kiállított fizetési kérések (díjbekérő); incoming = beérkezett.
"incoming" "outgoing" "proforma" paid_status"unpaid" "paid" "partially_paid" "cancelled" client_idmatter_idissued_fromKiállítási dátum ezen a napon vagy azután.
"2026-01-01"issued_toKiállítási dátum ezen a napon vagy azelőtt.
"2026-12-31"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id301invoice_number"FLW-2026-0042"directionoutgoing = az iroda által kiállított, incoming = az iroda által beérkezett.
"incoming" "outgoing" document_typeA "proforma" fizetési kérés, nem kiállított számla: nem bevétel, és nem szabad a kiállított számlákkal együtt számolni. Az invoices.list direction=outgoing kihagyja a díjbekérőket, a direction=proforma listázza őket. Egy régi soron null, amely számlának számít.
"invoice" "proforma" "receipt" source"manual" "szamlazz_outgoing" "szamlazz_imported" paid_status"unpaid" "paid" "partially_paid" "cancelled" issued_datedue_datepaid_datecompletion_datenet_amountgross_amountcurrency"HUF"payment_method_idpayment_methodA fizetési mód lokalizált neve (pl. banki átutalás); angol, ha az iroda nyelvéhez nincs fordítása, null, ha a módnak egyáltalán nincs neve. A módot a payment_method_id alapján azonosítsa.
supplierEgy beérkezett számla kibocsátója.
clientclient mezői
idnamematter_idcreated_atupdated_atpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/invoices?issued_from=2026-01-01&issued_to=2026-12-31&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/invoices?issued_from=2026-01-01&issued_to=2026-12-31&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/invoices?issued_from=2026-01-01&issued_to=2026-12-31&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 301,
"invoice_number": "FLW-2026-0042",
"direction": "incoming",
"document_type": "invoice",
"source": "manual",
"paid_status": "unpaid",
"issued_date": "2026-10-30",
"due_date": "2026-10-30",
"paid_date": "2026-10-30",
"completion_date": "2026-10-30",
"net_amount": 0,
"gross_amount": 0,
"currency": "HUF",
"payment_method_id": 1234,
"payment_method": "string",
"supplier": "string",
"client": {
"id": 1234,
"name": "string"
},
"matter_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"invoices:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"invoices:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "invoices:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Számla lekérése
/api/agent/invoices/{id}
Egy számlát ad vissza. Csak olvasható. 404 választ ad, ha nem létezik, vagy olyan ügyhöz tartozik, amelyet a felhasználó nem láthat.
Útvonal-paraméterek
idkötelezőSzámlaazonosító.
301Válaszok
200
OK.
dataköteleződata mezői
id301invoice_number"FLW-2026-0042"directionoutgoing = az iroda által kiállított, incoming = az iroda által beérkezett.
"incoming" "outgoing" document_typeA "proforma" fizetési kérés, nem kiállított számla: nem bevétel, és nem szabad a kiállított számlákkal együtt számolni. Az invoices.list direction=outgoing kihagyja a díjbekérőket, a direction=proforma listázza őket. Egy régi soron null, amely számlának számít.
"invoice" "proforma" "receipt" source"manual" "szamlazz_outgoing" "szamlazz_imported" paid_status"unpaid" "paid" "partially_paid" "cancelled" issued_datedue_datepaid_datecompletion_datenet_amountgross_amountcurrency"HUF"payment_method_idpayment_methodA fizetési mód lokalizált neve (pl. banki átutalás); angol, ha az iroda nyelvéhez nincs fordítása, null, ha a módnak egyáltalán nincs neve. A módot a payment_method_id alapján azonosítsa.
supplierEgy beérkezett számla kibocsátója.
clientclient mezői
idnamematter_idcreated_atupdated_atnotesreceived_datesent_dateproforma_invoice_id
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/invoices/301' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/invoices/301", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/invoices/301",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 301,
"invoice_number": "FLW-2026-0042",
"direction": "incoming",
"document_type": "invoice",
"source": "manual",
"paid_status": "unpaid",
"issued_date": "2026-10-30",
"due_date": "2026-10-30",
"paid_date": "2026-10-30",
"completion_date": "2026-10-30",
"net_amount": 0,
"gross_amount": 0,
"currency": "HUF",
"payment_method_id": 1234,
"payment_method": "string",
"supplier": "string",
"client": {
"id": 1234,
"name": "string"
},
"matter_id": 1234,
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"notes": "string",
"received_date": "2026-10-30",
"sent_date": "2026-10-30",
"proforma_invoice_id": 1234
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"invoice_id": 301
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Dokumentumok
Az ügy dokumentumainak listázása
/api/agent/matters/{id}/documents
Listázza egy ügy alá iktatott dokumentumok aktuális verzióit: a neveket, a méreteket, a mappákat és azt, hogy ki töltötte fel őket. Csak metaadatok; a tartalomhoz aláírt hivatkozásért használja a documents.download hívást (documents:download hatókör). Előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a név nélkül importáltak.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
qSzűrés fájlnév alapján.
"contract"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idnameA fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.
"Contract_v2.docx"sizeBájt.
versionA fájl aktuális verziószáma.
folderAz a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.
folder mezői
idnamepathA mappa elérési útja az ügyön belül, "/" jellel elválasztva.
folder_deletedIgaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.
created_by_user_idcreated_bycreated_atupdated_atpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/documents?q=contract&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/documents?q=contract&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/documents?q=contract&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"name": "Contract_v2.docx",
"size": 0,
"version": 0,
"folder": {
"id": 1234,
"name": "string",
"path": "string"
},
"folder_deleted": true,
"created_by_user_id": 1234,
"created_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Az ügy mappáinak listázása
/api/agent/matters/{id}/folders
Listázza egy ügy minden mappáját, az üreseket is beleértve: azonosító, név, parent_id és a "/" jellel elválasztott elérési út, az elérési út szerint rendezve. Egy mappaazonosítót folder_id néven adjon át a documents.upload.init hívásnak. 404-et ad válaszul, ha az ügy nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
qCsak azok a mappák, amelyek elérési útja tartalmazza ezt a szöveget (a kis- és nagybetűk, valamint az ékezetek figyelmen kívül hagyásával), például egy mappanév.
"Beadványok"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idMappaazonosító: adja át folder_id néven a documents.upload.init hívásnak.
nameA mappa neve úgy, ahogyan a Flowyer megjeleníti.
parent_idA szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.
pathA mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok" (ugyanaz az elérési út, amelyet a documents.list egy fájl mappájához megjelenít).
updated_atAdja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/folders?q=Beadv%C3%A1nyok&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/folders?q=Beadv%C3%A1nyok&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/folders?q=Beadv%C3%A1nyok&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"name": "string",
"parent_id": 1234,
"path": "string",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügymappa létrehozása
/api/agent/matters/{id}/folders
Létrehoz egy mappát egy ügyben, a gyökérben vagy a parent_id alatt (az UGYANAZON ügy egy mappája). A név egyszerű szöveg (a "<" és a ">" nem engedélyezett). Iktasson bele egy dokumentumot úgy, hogy a visszaadott azonosítót folder_id értékként átadja a documents.upload.init hívásnak. 404 választ ad, ha az ügy nem látható.
Útvonal-paraméterek
idkötelezőAz ügy, amelyhez a mappa tartozik (láthatónak kell lennie).
1234Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
namekötelezőMappanév, legfeljebb 255 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Beadványok"parent_idSzülőmappa azonosítója (a documents.folders-ből) az UGYANAZON ügyön belül; hagyja el az ügy gyökerében lévő mappához.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idMappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.
nameA mappa neve úgy, ahogyan a Flowyer megjeleníti.
parent_idA szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.
pathA mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".
updated_atAdja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.
createdtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idMappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.
nameA mappa neve úgy, ahogyan a Flowyer megjeleníti.
parent_idA szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.
pathA mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".
updated_atAdja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.
createdfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/folders' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"name": "Beadványok"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/folders", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"name": "Beadványok"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/folders",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"name": "Beadványok",
},
timeout=30,
)
print(response.status_code, response.json())
{
"name": "Beadványok"
}
Válaszminták
{
"data": {
"id": 1234,
"name": "string",
"parent_id": 1234,
"path": "string",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 1234,
"name": "string",
"parent_id": 1234,
"path": "string",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"name": [
"A(z) name mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Dokumentumfeltöltés indítása
/api/agent/matters/{id}/documents/uploads
Elindít egy dokumentumfeltöltést: visszaad egy aláírt upload_url címet és egy upload_token értéket. Töltse fel oda a bájtokat PUT módszerrel, majd hívja meg a documents.upload.complete műveletet. A PUT egy egyszerű HTTPS kérés, amely ezen az API-n és az MCP eszközökön kívül esik: a saját HTTP klienssel nem rendelkező asszisztensnek meg kell kérnie a felhasználót, hogy a fájlt a Flowyerben töltse fel.
Útvonal-paraméterek
idkötelezőAz ügy, amelyhez a dokumentum tartozik (láthatónak kell lennie).
Kérés törzse application/json
filenamekötelezőFájlnév kiterjesztéssel, például "Contract.pdf". Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A végrehajtható és a webes fájltípusok elutasításra kerülnek (422 blocked_file_type).
^[^<>]*$"Contract.pdf"content_typekötelezőA PUT során küldött MIME típus, például "application/pdf". Az aláírás része, és pontosan egyeznie kell.
"application/pdf"sizekötelezőFájlméret bájtban, legfeljebb 104857600 (a feltöltési korlát); nagyobb méret esetén a válasz 413 file_too_large.
248000folder_idMappa az ügyön belül: egy mappaazonosító a documents.folders hívásból (az üres mappákat is felsorolja). Az ügy gyökeréhez hagyja ki.
Válaszok
200
OK.
dataköteleződata mezői
upload_urlAláírt URL. Töltse fel ide a fájl bájtjait PUT módszerrel a megadott tartalomtípussal ÉS az alábbi if_generation_match fejléccel: egy egyszerű HTTPS kérés, amelyet a saját HTTP kliense küld (sem API, sem MCP eszköz nem küldi).
upload_tokenAdja át ezt a documents.upload.complete hívásnak, miután a PUT sikeres volt.
content_typePontosan ezt a Content-Type értéket küldje a PUT során.
if_generation_matchKüldje ezt az értéket a "x-goog-if-generation-match" fejlécként a PUT során (mindig "0"). Ez egyszer használatossá teszi a feltöltést: a PUT csak addig kerül elfogadásra, amíg az objektum még nem létezik, így az aláírt URL nem írhat felül egy már iktatott dokumentumot.
object_keyBelső tárolási név (tájékoztatásul).
expires_inA feltöltési URL és a token lejáratáig hátralévő másodpercek száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
413
A kérés törzse túl nagy (request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).
request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/documents/uploads' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"filename": "Contract.pdf",
"content_type": "application/pdf",
"size": 248000
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/documents/uploads", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"filename": "Contract.pdf",
"content_type": "application/pdf",
"size": 248000
}),
});
const result = await response.json();
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/documents/uploads",
headers={
"Authorization": "Bearer flw_...",
},
json={
"filename": "Contract.pdf",
"content_type": "application/pdf",
"size": 248000,
},
timeout=30,
)
print(response.status_code, response.json())
{
"filename": "Contract.pdf",
"content_type": "application/pdf",
"size": 248000
}
Válaszminták
{
"data": {
"upload_url": "string",
"upload_token": "string",
"content_type": "string",
"if_generation_match": "string",
"object_key": "string",
"expires_in": 0
}
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"filename": [
"A(z) filename mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Dokumentumfeltöltés befejezése
/api/agent/matters/{id}/documents
Befejez egy dokumentumfeltöltést: miután a bájtok PUT módszerrel az upload_url címre kerültek, rögzíti a fájlt az ügyön új verzióként. Adja át az upload_token értéket a documents.upload.init hívásból. A fájl metaadatai a tokenből származnak, nem ebből a kérésből. Egy időközben törölt mappa esetén a dokumentum a gyökérbe kerül iktatásra.
Útvonal-paraméterek
idkötelezőAz ügy, amelyhez a dokumentum tartozik (ugyanaz, mint az init hívásnál).
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
upload_tokenkötelezőA documents.upload.init által visszaadott token.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idnameA fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.
"Contract_v2.docx"sizeBájt.
versionA fájl aktuális verziószáma.
folderAz a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.
folder mezői
idnamepathA mappa elérési útja az ügyön belül, "/" jellel elválasztva.
folder_deletedIgaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.
created_by_user_idcreated_bycreated_atupdated_atcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre. Ez a válasz akkor is, ha ezt az upload_token értéket már befejezték.
dataköteleződata mezői
idnameA fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.
"Contract_v2.docx"sizeBájt.
versionA fájl aktuális verziószáma.
folderAz a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.
folder mezői
idnamepathA mappa elérési útja az ügyön belül, "/" jellel elválasztva.
folder_deletedIgaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.
created_by_user_idcreated_bycreated_atupdated_atcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. upload_not_finished: a fájl még nem érkezett meg a tárolóba; fejezze be a PUT műveletet az upload_url címre, majd hívja meg újra a complete műveletet. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
upload_not_finished: a fájl még nem érkezett meg a tárolóba; fejezze be a PUT műveletet az upload_url címre, majd hívja meg újra a complete műveletet. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).
request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/documents' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"upload_token": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/documents", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"upload_token": "string"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/documents",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"upload_token": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"upload_token": "string"
}
Válaszminták
{
"data": {
"id": 1234,
"name": "Contract_v2.docx",
"size": 0,
"version": 0,
"folder": {
"id": 1234,
"name": "string",
"path": "string"
},
"folder_deleted": true,
"created_by_user_id": 1234,
"created_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 1234,
"name": "Contract_v2.docx",
"size": 0,
"version": 0,
"folder": {
"id": 1234,
"name": "string",
"path": "string"
},
"folder_deleted": true,
"created_by_user_id": 1234,
"created_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"upload_token": [
"A(z) upload token mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Dokumentum letöltése
/api/agent/documents/{id}/download
Egy rövid élettartamú aláírt URL-t ad vissza egy dokumentum letöltéséhez azonosító alapján, ha az ügye látható. GET kéréssel töltse le a bájtokat az URL-ről; néhány percen belül lejár.
Útvonal-paraméterek
idkötelezőDokumentumazonosító (a documents.list-ből).
Válaszok
200
OK.
dataköteleződata mezői
download_urlAláírt URL. GET kéréssel töltse le róla a fájl bájtjait.
filenameA letöltéshez tartozó fájlnév.
sizeBájt.
expires_inMásodpercek az URL lejártáig.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/documents/1234/download' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/documents/1234/download", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/documents/1234/download",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"download_url": "string",
"filename": "string",
"size": 0,
"expires_in": 0
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "document",
"record_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Dokumentum átnevezése
/api/agent/documents/{id}
Átnevez egy dokumentumot (csak a megjelenített nevét; a fájl tartalma változatlan marad). Az új névnek egyedinek kell lennie az ügy ugyanazon mappájában. Adja meg az expected_updated_at értéket a legutóbbi olvasásból; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
namekötelezőÚj fájlnév, a kiterjesztést BELEÉRTVE legfeljebb 255 karakter. Az aktuális kiterjesztés megmarad, ha nem ad meg egyet, és beleszámít a 255-be (így egy kiterjesztés nélküli név a "Beadvany.pdf" esetén legfeljebb 251 karakter lehet). Egyszerű szöveg; a "<" és a ">" nem engedélyezett, így egy olyan dokumentum, amelynek tárolt neve ilyet tartalmaz, csak a Flowyerben nevezhető át.
^[^<>]*$"Contract_signed.pdf"Válaszok
200
Frissítve.
dataköteleződata mezői
idnameA fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.
"Contract_v2.docx"sizeBájt.
versionA fájl aktuális verziószáma.
folderAz a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.
folder mezői
idnamepathA mappa elérési útja az ügyön belül, "/" jellel elválasztva.
folder_deletedIgaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.
created_by_user_idcreated_bycreated_atupdated_atupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy ugyanabban a mappában egy másik dokumentumnak már ez a neve (duplicate_name; válasszon másik nevet, ne próbálja újra ugyanazt).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy ugyanabban a mappában egy másik dokumentumnak már ez a neve (duplicate_name; válasszon másik nevet, ne próbálja újra ugyanazt).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/documents/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Contract_signed.pdf"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/documents/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Contract_signed.pdf"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/documents/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Contract_signed.pdf",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Contract_signed.pdf"
}
Válaszminták
{
"data": {
"id": 1234,
"name": "Contract_v2.docx",
"size": 0,
"version": 0,
"folder": {
"id": 1234,
"name": "string",
"path": "string"
},
"folder_deleted": true,
"created_by_user_id": 1234,
"created_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügymappa átnevezése
/api/agent/folders/{id}
Átnevez egy mappát (csak a nevét; a fájljai és almappái a helyükön maradnak). A név egyszerű szöveg (a "<" és a ">" nem engedélyezett). Adja meg az expected_updated_at értéket a legutóbbi olvasásából (a documents.folders felsorolja); ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
namekötelezőÚj mappanév, legfeljebb 255 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Beadványok"Válaszok
200
Frissítve.
dataköteleződata mezői
idMappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.
nameA mappa neve úgy, ahogyan a Flowyer megjeleníti.
parent_idA szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.
pathA mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".
updated_atAdja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.
updatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/folders/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Beadványok"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/folders/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Beadványok"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/folders/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Beadványok",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "Beadványok"
}
Válaszminták
{
"data": {
"id": 1234,
"name": "string",
"parent_id": 1234,
"path": "string",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis
Tudásbázis-cikkek listázása
/api/agent/knowledge/articles
Listázza a felhasználó számára látható tudásbáziscikkeket (a szerző sajátjait, a globális cikkeket és a felhasználó szerepkörével megosztott cikkeket). Alapértelmezés szerint minden státusz; szűrjön státuszra, vagy adja meg a q értéket a címek, kivonatok, tartalom és címkék teljes szövegű kereséséhez.
Lekérdezési paraméterek
qTeljes szövegű keresési kifejezés (címek, kivonatok, tartalom és címkenevek). A logikai operátorok eltávolításra kerülnek.
"felmondási idő"statusCsak az ilyen státuszú cikkek. Hagyja el az összes státusz listázásához.
"draft" "published" "archived" limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id9876slugA szerver által generált URL-slug.
"felmondasi-ido"title"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (formázott HTML, a tárolt formában).
contentA cikk törzse a tárolt formában (formázott HTML).
status"draft" "published" "archived" is_featuredJelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).
category_idcategory_nameauthor_idA szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.
author_nameeditor_idAz utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.
editor_nameviews_countdownloads_countshared_rolesA szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).
tagsA cikken lévő címkenevek.
published_atAmikor a cikket először közzétették, vagy null.
created_atupdated_atpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/knowledge/articles?q=felmond%C3%A1si%20id%C5%91&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/articles?q=felmond%C3%A1si%20id%C5%91&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/knowledge/articles?q=felmond%C3%A1si%20id%C5%91&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 9876,
"slug": "felmondasi-ido",
"title": "Felmondási idő a munka törvénykönyvében",
"excerpt": "string",
"content": "string",
"status": "draft",
"is_featured": true,
"category_id": 1234,
"category_name": "string",
"author_id": 1234,
"author_name": "string",
"editor_id": 1234,
"editor_name": "string",
"views_count": 0,
"downloads_count": 0,
"shared_roles": [
0
],
"tags": [
"string"
],
"published_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"knowledge:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"knowledge:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "knowledge:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-cikk lekérése
/api/agent/knowledge/articles/{id}
Egy tudásbáziscikket ad vissza, beleértve a teljes tartalmát, címkéit és megosztott szerepköreit. 404 választ ad, ha a cikk nem létezik, vagy a felhasználó nem láthatja.
Útvonal-paraméterek
idkötelezőCikkazonosító.
9876Válaszok
200
OK.
dataköteleződata mezői
id9876slugA szerver által generált URL-slug.
"felmondasi-ido"title"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (formázott HTML, a tárolt formában).
contentA cikk törzse a tárolt formában (formázott HTML).
status"draft" "published" "archived" is_featuredJelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).
category_idcategory_nameauthor_idA szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.
author_nameeditor_idAz utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.
editor_nameviews_countdownloads_countshared_rolesA szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).
tagsA cikken lévő címkenevek.
published_atAmikor a cikket először közzétették, vagy null.
created_atupdated_at
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/knowledge/articles/9876' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/articles/9876", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/knowledge/articles/9876",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 9876,
"slug": "felmondasi-ido",
"title": "Felmondási idő a munka törvénykönyvében",
"excerpt": "string",
"content": "string",
"status": "draft",
"is_featured": true,
"category_id": 1234,
"category_name": "string",
"author_id": 1234,
"author_name": "string",
"editor_id": 1234,
"editor_name": "string",
"views_count": 0,
"downloads_count": 0,
"shared_roles": [
0
],
"tags": [
"string"
],
"published_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"article_id": 9876
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-cikk létrehozása
/api/agent/knowledge/articles
Létrehoz egy tudásbáziscikket, amelynek szerzője a kulcshoz tartozó felhasználó. A slug a címből generálódik. A kategóriának léteznie kell és aktívnak kell lennie. Ossza meg szerepkörökkel a shared_roles segítségével (egyébként csak a szerző látja). A content és az excerpt HTML, és a szerveroldalon megtisztításra kerül.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
titlekötelezőA cikk címe. Egyszerű szöveg.
"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (HTML engedélyezett, a szerveroldalon megtisztítva), legfeljebb 200 karakter.
contentkötelezőA cikk törzse. Formázott HTML, a szerveroldalon a tudásbázis profiljával megtisztítva.
category_idkötelezőEgy létező, aktív tudásbázis-kategória azonosítója.
12statusköteleződraft, published vagy archived. A published beállítja a published_at értéket.
"draft" "published" "archived" tagsCímkenevek; az új címkék szükség szerint létrejönnek.
shared_rolesA szerepkör-azonosítók, amelyekkel a cikket megosztja. Az üres azt jelenti, hogy csak a szerző láthatja.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id9876slugA szerver által generált URL-slug.
"felmondasi-ido"title"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (formázott HTML, a tárolt formában).
contentA cikk törzse a tárolt formában (formázott HTML).
status"draft" "published" "archived" is_featuredJelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).
category_idcategory_nameauthor_idA szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.
author_nameeditor_idAz utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.
editor_nameviews_countdownloads_countshared_rolesA szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).
tagsA cikken lévő címkenevek.
published_atAmikor a cikket először közzétették, vagy null.
created_atupdated_atcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id9876slugA szerver által generált URL-slug.
"felmondasi-ido"title"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (formázott HTML, a tárolt formában).
contentA cikk törzse a tárolt formában (formázott HTML).
status"draft" "published" "archived" is_featuredJelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).
category_idcategory_nameauthor_idA szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.
author_nameeditor_idAz utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.
editor_nameviews_countdownloads_countshared_rolesA szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).
tagsA cikken lévő címkenevek.
published_atAmikor a cikket először közzétették, vagy null.
created_atupdated_atcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/knowledge/articles' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"title": "Felmondási idő a munka törvénykönyvében",
"content": "string",
"category_id": 12,
"status": "draft"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/articles", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"title": "Felmondási idő a munka törvénykönyvében",
"content": "string",
"category_id": 12,
"status": "draft"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/knowledge/articles",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"title": "Felmondási idő a munka törvénykönyvében",
"content": "string",
"category_id": 12,
"status": "draft",
},
timeout=30,
)
print(response.status_code, response.json())
{
"title": "Felmondási idő a munka törvénykönyvében",
"content": "string",
"category_id": 12,
"status": "draft"
}
Válaszminták
{
"data": {
"id": 9876,
"slug": "felmondasi-ido",
"title": "Felmondási idő a munka törvénykönyvében",
"excerpt": "string",
"content": "string",
"status": "draft",
"is_featured": true,
"category_id": 1234,
"category_name": "string",
"author_id": 1234,
"author_name": "string",
"editor_id": 1234,
"editor_name": "string",
"views_count": 0,
"downloads_count": 0,
"shared_roles": [
0
],
"tags": [
"string"
],
"published_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 9876,
"slug": "felmondasi-ido",
"title": "Felmondási idő a munka törvénykönyvében",
"excerpt": "string",
"content": "string",
"status": "draft",
"is_featured": true,
"category_id": 1234,
"category_name": "string",
"author_id": 1234,
"author_name": "string",
"editor_id": 1234,
"editor_name": "string",
"views_count": 0,
"downloads_count": 0,
"shared_roles": [
0
],
"tags": [
"string"
],
"published_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"title": [
"A(z) title mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-cikk módosítása
/api/agent/knowledge/articles/{id}
Módosít egy tudásbáziscikket: cím (a slug újraszármaztatásra kerül), kivonat, tartalom, kategória, státusz, címkék vagy megosztott szerepkörök. Csak a szerző szerkesztheti (globális cikk esetén bárki). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409. A content és az excerpt a szerveroldalon megtisztításra kerül.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
titleA cikk címe (egyszerű szöveg). A null megtartja az aktuális címet; új cím esetén a slug újraszármaztatásra kerül.
excerptRövid összefoglaló (HTML engedélyezett, megtisztítva), ÚJ értékként legfeljebb 200 karakter. Az üres/null törli; hagyja el a megtartásához.
contentA cikk törzse (formázott HTML, megtisztítva). A null megtartja az aktuális tartalmat; nem törölhető.
category_idÁthelyezi a cikket ebbe a létező, aktív kategóriába. A null megtartja az aktuálisat.
statusdraft, published vagy archived. A published-re váltás első alkalommal beállítja a published_at értéket; ez soha nem törlődik. A null megtartja az aktuális státuszt.
"draft" "published" "archived" tagsLecseréli a teljes címkehalmazt (az új címkék létrejönnek). Az üres tömb törli az összes címkét; hagyja el a megtartásukhoz.
shared_rolesLecseréli a teljes megosztottszerepkör-halmazt. Az üres tömb megszünteti az összes megosztást (csak a szerző látja); hagyja el a megtartásához.
Válaszok
200
Frissítve.
dataköteleződata mezői
id9876slugA szerver által generált URL-slug.
"felmondasi-ido"title"Felmondási idő a munka törvénykönyvében"excerptRövid összefoglaló (formázott HTML, a tárolt formában).
contentA cikk törzse a tárolt formában (formázott HTML).
status"draft" "published" "archived" is_featuredJelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).
category_idcategory_nameauthor_idA szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.
author_nameeditor_idAz utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.
editor_nameviews_countdownloads_countshared_rolesA szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).
tagsA cikken lévő címkenevek.
published_atAmikor a cikket először közzétették, vagy null.
created_atupdated_atupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/knowledge/articles/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/articles/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/knowledge/articles/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}
Válaszminták
{
"data": {
"id": 9876,
"slug": "felmondasi-ido",
"title": "Felmondási idő a munka törvénykönyvében",
"excerpt": "string",
"content": "string",
"status": "draft",
"is_featured": true,
"category_id": 1234,
"category_name": "string",
"author_id": 1234,
"author_name": "string",
"editor_id": 1234,
"editor_name": "string",
"views_count": 0,
"downloads_count": 0,
"shared_roles": [
0
],
"tags": [
"string"
],
"published_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-kategóriák listázása
/api/agent/knowledge/categories
Listázza a felhasználó számára látható tudásbázis-kategóriákat: a beépített alapértelmezett kategóriákat, a felhasználó sajátjait és a felhasználó szerepkörével megosztottakat. A Flowyerben használt sorrendben (rendezési pozíció, majd név).
Lekérdezési paraméterek
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id42slugURL-slug, a névből generálva.
"munkajog"name"Munkajog"descriptionEgyszerű szöveges leírás, vagy null.
iconA kategória mellett megjelenő ikonazonosító, vagy null.
order_columnRendezési pozíció a testvérkategóriák között.
0is_activeparent_idA szülőkategória azonosítója, vagy null egy gyökérkategória esetén.
author_idA létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.
author_nameA létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.
articles_countA kategóriában lévő, a hívó által látható közzétett cikkek száma.
shared_rolesA szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).
created_atupdated_atpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/knowledge/categories?limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/categories?limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/knowledge/categories?limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 42,
"slug": "munkajog",
"name": "Munkajog",
"description": "string",
"icon": "string",
"order_column": 0,
"is_active": true,
"parent_id": 1234,
"author_id": 1234,
"author_name": "string",
"articles_count": 0,
"shared_roles": [
1
],
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"knowledge:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"knowledge:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "knowledge:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-kategória lekérése
/api/agent/knowledge/categories/{id}
Egy tudásbázis-kategóriát ad vissza. 404 választ ad, ha a kategória nem létezik, vagy nem látható az API-kulcsot birtokló felhasználó számára.
Útvonal-paraméterek
idkötelezőKategóriaazonosító.
42Válaszok
200
OK.
dataköteleződata mezői
id42slugURL-slug, a névből generálva.
"munkajog"name"Munkajog"descriptionEgyszerű szöveges leírás, vagy null.
iconA kategória mellett megjelenő ikonazonosító, vagy null.
order_columnRendezési pozíció a testvérkategóriák között.
0is_activeparent_idA szülőkategória azonosítója, vagy null egy gyökérkategória esetén.
author_idA létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.
author_nameA létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.
articles_countA kategóriában lévő, a hívó által látható közzétett cikkek száma.
shared_rolesA szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).
created_atupdated_at
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/knowledge/categories/42' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/categories/42", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/knowledge/categories/42",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 42,
"slug": "munkajog",
"name": "Munkajog",
"description": "string",
"icon": "string",
"order_column": 0,
"is_active": true,
"parent_id": 1234,
"author_id": 1234,
"author_name": "string",
"articles_count": 0,
"shared_roles": [
1
],
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"category_id": 42
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-kategória létrehozása
/api/agent/knowledge/categories
Létrehoz egy tudásbázis-kategóriát. Az URL-slug a névből generálódik. Ossza meg szerepkörökkel a shared_roles segítségével, vagy hagyja el, hogy csak Ön (a szerző) láthassa. A parent_id, ha meg van adva, egy létező aktív kategória kell legyen.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
namekötelezőA kategória neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Munkajog"descriptionOpcionális leírás, egyszerű szöveg.
parent_idA szülőkategória azonosítója (léteznie kell és aktívnak kell lennie). Hagyja el egy gyökérkategóriához.
iconOpcionális ikonazonosító. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$is_activeJelzi, hogy a kategória aktív-e. Alapértelmezés true.
trueorder_columnRendezési pozíció a testvérkategóriák között. Alapértelmezés 0.
0shared_rolesA szerepkör-azonosítók, amelyekkel a kategóriát megosztja. Hagyja el, hogy csak Ön (a szerző) láthassa.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id42slugURL-slug, a névből generálva.
"munkajog"name"Munkajog"descriptionEgyszerű szöveges leírás, vagy null.
iconA kategória mellett megjelenő ikonazonosító, vagy null.
order_columnRendezési pozíció a testvérkategóriák között.
0is_activeparent_idA szülőkategória azonosítója, vagy null egy gyökérkategória esetén.
author_idA létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.
author_nameA létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.
articles_countA kategóriában lévő, a hívó által látható közzétett cikkek száma.
shared_rolesA szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).
created_atupdated_atcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id42slugURL-slug, a névből generálva.
"munkajog"name"Munkajog"descriptionEgyszerű szöveges leírás, vagy null.
iconA kategória mellett megjelenő ikonazonosító, vagy null.
order_columnRendezési pozíció a testvérkategóriák között.
0is_activeparent_idA szülőkategória azonosítója, vagy null egy gyökérkategória esetén.
author_idA létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.
author_nameA létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.
articles_countA kategóriában lévő, a hívó által látható közzétett cikkek száma.
shared_rolesA szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).
created_atupdated_atcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/knowledge/categories' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"name": "Munkajog",
"order_column": 0
}'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/categories", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"name": "Munkajog",
"order_column": 0
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/knowledge/categories",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"name": "Munkajog",
"order_column": 0,
},
timeout=30,
)
print(response.status_code, response.json())
{
"name": "Munkajog",
"order_column": 0
}
Válaszminták
{
"data": {
"id": 42,
"slug": "munkajog",
"name": "Munkajog",
"description": "string",
"icon": "string",
"order_column": 0,
"is_active": true,
"parent_id": 1234,
"author_id": 1234,
"author_name": "string",
"articles_count": 0,
"shared_roles": [
1
],
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": true
}
{
"data": {
"id": 42,
"slug": "munkajog",
"name": "Munkajog",
"description": "string",
"icon": "string",
"order_column": 0,
"is_active": true,
"parent_id": 1234,
"author_id": 1234,
"author_name": "string",
"articles_count": 0,
"shared_roles": [
1
],
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"name": [
"A(z) name mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tudásbázis-kategória módosítása
/api/agent/knowledge/categories/{id}
Módosít egy tudásbázis-kategóriát: név (a slug követi), leírás, ikon, szülő, aktív jelző, rendezési pozíció vagy a szerepkörök, amelyekkel meg van osztva. Csak a szerző módosíthatja (egy beépített alapértelmezett kategóriát bárki szerkeszthet). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
nameA kategória neve. ÚJ értékként legfeljebb 255 karakter; a "<" és a ">" nem vihető be, de egy tárolt név, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális nevet.
descriptionEgyszerű szöveges leírás. A null törli.
parent_idÁthelyezi a kategóriát e szülő alá (léteznie kell, aktívnak kell lennie, és nem hozhat létre kört), vagy null, hogy gyökérkategóriává tegye.
iconIkonazonosító. ÚJ értékként legfeljebb 100 karakter; a "<" és a ">" nem vihető be. A null törli.
is_activeAktív jelző. Hagyja el vagy null az aktuális érték megtartásához.
order_columnRendezési pozíció a testvérkategóriák között. Hagyja el vagy null az aktuális érték megtartásához.
shared_rolesLecseréli a szerepkör-azonosítók halmazát, amelyekkel a kategória meg van osztva. Az üres tömb megszünteti az összes megosztást (csak a szerző látja). Hagyja el a megosztás változatlanul hagyásához.
Válaszok
200
Frissítve.
dataköteleződata mezői
id42slugURL-slug, a névből generálva.
"munkajog"name"Munkajog"descriptionEgyszerű szöveges leírás, vagy null.
iconA kategória mellett megjelenő ikonazonosító, vagy null.
order_columnRendezési pozíció a testvérkategóriák között.
0is_activeparent_idA szülőkategória azonosítója, vagy null egy gyökérkategória esetén.
author_idA létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.
author_nameA létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.
articles_countA kategóriában lévő, a hívó által látható közzétett cikkek száma.
shared_rolesA szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).
created_atupdated_atupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/knowledge/categories/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/knowledge/categories/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/knowledge/categories/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"name": "string"
}
Válaszminták
{
"data": {
"id": 42,
"slug": "munkajog",
"name": "Munkajog",
"description": "string",
"icon": "string",
"order_column": 0,
"is_active": true,
"parent_id": 1234,
"author_id": 1234,
"author_name": "string",
"articles_count": 0,
"shared_roles": [
1
],
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
E-mailek
Ügy e-mailjeinek listázása
/api/agent/matters/{id}/emails
Listázza egy ügyre mentett e-maileket: a feladó neve és címe, a tárgy, a méret és az a munkatárs, aki mindegyiket elmentette, a legújabban elküldöttől kezdve. Csak fejléc és metaadatok, soha nem a törzs vagy a nyers HTML. Egyetlen üzenet sima szöveges törzséhez használja az emails.get hívást.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
qSzűrés tárgy, feladónév vagy feladócím szerint (ékezet- és kis-/nagybetű-független). Nem a törzs.
"invoice"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idE-mail azonosító (az emails.get hívással használható).
1234from_nameA külső fél megjelenített neve. A tároló nem tart fenn irány- vagy fogadómezőket, így ez mindig a külső fél, soha nem munkatárs, és az API nem tudja megmondani, hogy a levél bejövő vagy kimenő volt-e.
from_addressA külső fél SMTP címe.
subjectsent_atAmikor az üzenetet elküldték. A tárolt érték időzónája a beérkezési úttól függően ingadozik (az IMAP worker UTC-t tárol, az Outlook bővítmény iroda-zóna szerinti faliórás időt), ezért ez legjobb igyekezet szerinti, és az eszerinti listarendezés a források között az iroda UTC-eltolásával tévedhet. A created_at a megbízható időbélyeg.
sizeA tárolt .eml/.msg fájl mérete bájtban.
extension"msg" (Outlook bővítmény) vagy "eml" (IMAP / alapértelmezett); néhány régi soron null.
saved_by_user_idAnnak a munkatársnak a felhasználóazonosítója, aki az e-mailt a Flowyerbe mentette.
saved_byAz adott munkatárs megjelenített neve.
created_atAmikor az e-mailt a Flowyerbe mentették (iroda-zóna szerinti faliórás idő). A megbízható időbélyeg a stabil lapozáshoz.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/emails?q=invoice&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/emails?q=invoice&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/emails?q=invoice&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"from_name": "string",
"from_address": "string",
"subject": "string",
"sent_at": "2026-10-30T09:15:00+01:00",
"size": 0,
"extension": "string",
"saved_by_user_id": 1234,
"saved_by": "string",
"created_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
E-mail lekérése
/api/agent/emails/{id}
Visszaad egy ügyhöz mentett e-mailt a sima szöveges törzsével (feladó, tárgy, méret és hogy ki mentette el). A nyers HTML törzs soha nem kerül visszaadásra. 404 választ ad, ha az e-mail nem létezik, vagy az ügye nem látható az API-kulcsot birtokló felhasználó számára.
Útvonal-paraméterek
idkötelezőE-mail azonosító.
1234Válaszok
200
OK.
dataköteleződata mezői
id1234matterAz ügy, amely alá az e-mail iktatva van, vagy null egy ügy nélküli e-mail esetén (bármely ügyön kívül mentve).
matter mezői
idcase_numberfrom_nameA külső fél megjelenített neve (soha nem munkatárs; a tároló nem rendelkezik iránymezővel).
from_addressA külső fél SMTP címe.
subjectbodyAz üzenet törzse sima szövegként. A nyers HTML törzs szándékosan soha nem kerül visszaadásra (nem megbízható, harmadik féltől származó HTML). Legjobb igyekezet szerinti sima szöveg: ha az eredeti HTML <style>/<script> elemeket tartalmazott, azok belső szövege megmaradhat benne.
sent_atAmikor az üzenetet elküldték. Az időzóna a beérkezési úttól függően ingadozik (az IMAP UTC-t tárol, az Outlook bővítmény iroda-zóna szerinti faliórás időt); a created_at a megbízható időbélyeg.
sizeA tárolt .eml/.msg fájl mérete bájtban.
extension"msg" vagy "eml"; néhány régi soron null.
saved_by_user_idAnnak a munkatársnak a felhasználóazonosítója, aki az e-mailt a Flowyerbe mentette.
saved_byAz adott munkatárs megjelenített neve.
created_atAmikor az e-mailt a Flowyerbe mentették (iroda-zóna szerinti faliórás idő).
updated_at
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/emails/1234' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/emails/1234", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/emails/1234",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 1234,
"matter": {
"id": 1234,
"case_number": "string"
},
"from_name": "string",
"from_address": "string",
"subject": "string",
"body": "string",
"sent_at": "2026-10-30T09:15:00+01:00",
"size": 0,
"extension": "string",
"saved_by_user_id": 1234,
"saved_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00"
}
}
{
"error": "email_not_visible",
"message": "The email :id does not exist, or is on a matter that is not visible to the user who owns this API key.",
"message_localized": "A(z) :id azonosítójú e-mail nem létezik, vagy olyan ügyhöz tartozik, amely nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"email_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Pertörténet
Ügy pertörténetének listázása
/api/agent/matters/{id}/litigation
Listázza egy ügy pertörténeti bejegyzéseit, a legújabb eseménytől kezdve: egy dátummal ellátott jegyzet címmel, HTML leírással és helyszínnel. 404 választ ad, ha az ügy nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id4521titleA bejegyzés címe. Egyszerű szöveg.
"Első tárgyalás elhalasztva"descriptionA bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.
locationHol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.
event_dateA bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
user_idSzerző (a felhasználó, aki a bejegyzést létrehozta).
created_byA szerző megjelenített neve.
last_editor_idA felhasználó, aki utoljára szerkesztette a bejegyzést.
last_editorAz utolsó szerkesztő megjelenített neve.
created_atupdated_atAdja át ezt a litigation.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/litigation?limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/litigation?limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/litigation?limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 4521,
"title": "Első tárgyalás elhalasztva",
"description": "string",
"location": "string",
"event_date": "2026-10-30",
"user_id": 1234,
"created_by": "string",
"last_editor_id": 1234,
"last_editor": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Pertörténeti bejegyzés létrehozása
/api/agent/matters/{id}/litigation
Hozzáad egy pertörténeti bejegyzést egy ügyhöz: egy cím (egyszerű szöveg, a "<"/">" nem engedélyezett), egy opcionális HTML leírás (a szerveroldalon megtisztítva), egy opcionális helyszín és egy eseménydátum (alapértelmezés szerint a mai nap). 404 választ ad, ha az ügy nem látható.
Útvonal-paraméterek
idkötelezőAz ügy, amelyhez a bejegyzés tartozik (láthatónak kell lennie).
1234Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
titlekötelezőA bejegyzés címe, legfeljebb 2000 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Első tárgyalás elhalasztva"descriptionA bejegyzés részletei. Formázott HTML, a szerveroldalon a tudásbázis profiljával megtisztítva.
locationHol történt (egyszerű szöveg, legfeljebb 255 karakter); a "<" és a ">" nem engedélyezett.
^[^<>]*$"Fővárosi Törvényszék, 215. tárgyaló"event_dateA bejegyzés napja, YYYY-MM-DD. Alapértelmezés szerint a mai nap (az iroda időzónája).
"2026-11-15"idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id4521titleA bejegyzés címe. Egyszerű szöveg.
"Első tárgyalás elhalasztva"descriptionA bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.
locationHol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.
event_dateA bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
user_idSzerző (a felhasználó, aki a bejegyzést létrehozta).
created_byA szerző megjelenített neve.
last_editor_idA felhasználó, aki utoljára szerkesztette a bejegyzést.
last_editorAz utolsó szerkesztő megjelenített neve.
created_atupdated_atAdja át ezt a litigation.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id4521titleA bejegyzés címe. Egyszerű szöveg.
"Első tárgyalás elhalasztva"descriptionA bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.
locationHol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.
event_dateA bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
user_idSzerző (a felhasználó, aki a bejegyzést létrehozta).
created_byA szerző megjelenített neve.
last_editor_idA felhasználó, aki utoljára szerkesztette a bejegyzést.
last_editorAz utolsó szerkesztő megjelenített neve.
created_atupdated_atAdja át ezt a litigation.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/litigation' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"title": "Első tárgyalás elhalasztva",
"location": "Fővárosi Törvényszék, 215. tárgyaló",
"event_date": "2026-11-15"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/litigation", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"title": "Első tárgyalás elhalasztva",
"location": "Fővárosi Törvényszék, 215. tárgyaló",
"event_date": "2026-11-15"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/litigation",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"title": "Első tárgyalás elhalasztva",
"location": "Fővárosi Törvényszék, 215. tárgyaló",
"event_date": "2026-11-15",
},
timeout=30,
)
print(response.status_code, response.json())
{
"title": "Első tárgyalás elhalasztva",
"location": "Fővárosi Törvényszék, 215. tárgyaló",
"event_date": "2026-11-15"
}
Válaszminták
{
"data": {
"id": 4521,
"title": "Első tárgyalás elhalasztva",
"description": "string",
"location": "string",
"event_date": "2026-10-30",
"user_id": 1234,
"created_by": "string",
"last_editor_id": 1234,
"last_editor": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 4521,
"title": "Első tárgyalás elhalasztva",
"description": "string",
"location": "string",
"event_date": "2026-10-30",
"user_id": 1234,
"created_by": "string",
"last_editor_id": 1234,
"last_editor": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"title": [
"A(z) title mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Pertörténeti bejegyzés módosítása
/api/agent/litigation/{id}
Módosít egy pertörténeti bejegyzést: cím, leírás, helyszín vagy eseménydátum. Csak az elküldött mezők kerülnek kiírásra; a leírás a szerveroldalon megtisztításra kerül. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
titleÚj cím, legfeljebb 2000 karakter (egyszerű szöveg; a "<"/">" nem engedélyezett). Hagyja el az aktuális megtartásához.
^[^<>]*$"Ítélethirdetés elhalasztva"descriptionÚj részletek (formázott HTML, megtisztítva). Hagyja el az aktuális megtartásához; a null/üres törli.
locationÚj helyszín (egyszerű szöveg, legfeljebb 255 karakter; a "<"/">" nem engedélyezett). Hagyja el a megtartásához; a null/üres törli.
^[^<>]*$event_dateÚj eseménynap, YYYY-MM-DD. Hagyja el a megtartásához; a null törli.
Válaszok
200
Frissítve.
dataköteleződata mezői
id4521titleA bejegyzés címe. Egyszerű szöveg.
"Első tárgyalás elhalasztva"descriptionA bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.
locationHol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.
event_dateA bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.
user_idSzerző (a felhasználó, aki a bejegyzést létrehozta).
created_byA szerző megjelenített neve.
last_editor_idA felhasználó, aki utoljára szerkesztette a bejegyzést.
last_editorAz utolsó szerkesztő megjelenített neve.
created_atupdated_atAdja át ezt a litigation.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/litigation/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "Ítélethirdetés elhalasztva"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/litigation/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "Ítélethirdetés elhalasztva"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/litigation/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "Ítélethirdetés elhalasztva",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "Ítélethirdetés elhalasztva"
}
Válaszminták
{
"data": {
"id": 4521,
"title": "Első tárgyalás elhalasztva",
"description": "string",
"location": "string",
"event_date": "2026-10-30",
"user_id": 1234,
"created_by": "string",
"last_editor_id": 1234,
"last_editor": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Postakönyv
Postakönyv listázása
/api/agent/mail-register
Listázza a felhasználó számára látható ügyekhez iktatott Postakönyv-bejegyzéseket, a legújabbtól kezdve. Szűrhet ügyre, irányra, szabad szövegre (tárgy/feladó/címzett/nyomkövetési szám) és dátumtartományra. Az archivált ügyek levelei rejtve maradnak, kivéve, ha az include_archived értéke true.
Lekérdezési paraméterek
matter_idCsak ennek az ügynek a bejegyzései (láthatónak kell lennie a felhasználó számára).
1234directionCsak a bejövő (beérkezett) vagy kimenő (elküldött) bejegyzések.
"incoming" "outgoing" qSzabad szöveges keresés a tárgyban, a feladóban, a címzettben, a fogadóban és a nyomkövetési számban (a kis-/nagybetű figyelmen kívül hagyva).
"Kúria"date_fromCsak azok a bejegyzések, amelyek dátuma ezen a napon vagy azután van (YYYY-MM-DD).
"2026-01-01"date_toCsak azok a bejegyzések, amelyek dátuma ezen a napon vagy azelőtt van (YYYY-MM-DD).
"2026-12-31"updated_sinceCsak az ezen időpontban vagy azt követően módosított bejegyzések (ISO 8601).
"2026-10-01T00:00:00+02:00"include_archivedAz archivált ügyek bejegyzései is szerepeljenek.
falselimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idPostakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).
4321matterAz ügy, amelyhez a bejegyzés iktatva van.
matter mezői
idcase_numberdirectionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
subjectsenderFeladó: a küldő (szabad szöveg).
toCímzett: a címzett (szabad szöveg).
recipientBejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.
recipient_user_idCsak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.
electronictrue, ha a tételt elektronikusként rögzítették (type_of_mail).
delivery_method_idA kézbesítési mód azonosítója (mail_delivery_methods).
delivery_methodLokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.
tracking_noAzonosító: nyomkövetési szám.
folder_pathrecorded_by_user_idA munkatárs, aki a bejegyzést rögzítette.
recorded_bycreated_atupdated_atAdja át ezt a mail_register.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/mail-register?matter_id=1234&q=K%C3%BAria&date_from=2026-01-01' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/mail-register?matter_id=1234&q=K%C3%BAria&date_from=2026-01-01", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/mail-register?matter_id=1234&q=K%C3%BAria&date_from=2026-01-01",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"direction": "incoming",
"date": "2026-10-30",
"subject": "string",
"sender": "string",
"to": "string",
"recipient": "string",
"recipient_user_id": 1234,
"electronic": true,
"delivery_method_id": 1234,
"delivery_method": "string",
"tracking_no": "string",
"folder_path": "string",
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"mail_register:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"mail_register:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "mail_register:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Postakönyv-bejegyzés lekérése
/api/agent/mail-register/{id}
Visszaad egy Postakönyv-bejegyzést azonosító alapján, az updated_at értékével együtt (azzal a tokennel, amelyet a mail_register.update elfogad). 404 választ ad, ha a bejegyzés nem létezik, vagy az ügye nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőPostakönyv-bejegyzés azonosítója.
4321Válaszok
200
OK.
dataköteleződata mezői
idPostakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).
4321matterAz ügy, amelyhez a bejegyzés iktatva van.
matter mezői
idcase_numberdirectionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
subjectsenderFeladó: a küldő (szabad szöveg).
toCímzett: a címzett (szabad szöveg).
recipientBejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.
recipient_user_idCsak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.
electronictrue, ha a tételt elektronikusként rögzítették (type_of_mail).
delivery_method_idA kézbesítési mód azonosítója (mail_delivery_methods).
delivery_methodLokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.
tracking_noAzonosító: nyomkövetési szám.
folder_pathrecorded_by_user_idA munkatárs, aki a bejegyzést rögzítette.
recorded_bycreated_atupdated_atAdja át ezt a mail_register.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/mail-register/4321' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/mail-register/4321", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/mail-register/4321",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"direction": "incoming",
"date": "2026-10-30",
"subject": "string",
"sender": "string",
"to": "string",
"recipient": "string",
"recipient_user_id": 1234,
"electronic": true,
"delivery_method_id": 1234,
"delivery_method": "string",
"tracking_no": "string",
"folder_path": "string",
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "mail",
"record_id": 4321
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Postakönyv-bejegyzés létrehozása
/api/agent/mail-register
Iktat egy új Postakönyv-bejegyzést egy ügyön. Használja a recipient_user_id értéket egy munkatárs által átvett bejövő levélhez, vagy a recipient értéket (szabad szöveg) egy kimenőhöz. A delivery_method_id-nek ismert módnak kell lennie. 404 választ ad, ha az ügy nem látható.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
matter_idkötelezőAz ügy, amelyhez a bejegyzés tartozik (láthatónak kell lennie).
1234directionkötelezőincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datekötelezőPostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
"2026-11-03"subjectkötelezőA levelezés tárgya. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Fellebbezés a Kúriához"senderFeladó: a küldő (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$toCímzett: a címzett (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$recipientKimenő levél: a szabad szöveges címzett/átvevő. A recipient_user_id-vel együtt nem engedélyezett. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$recipient_user_idBejövő levél: a munkatárs, aki átvette (egy felhasználóazonosító a colleagues.list-ből), numerikus fogadóként tárolva. A recipient-tel együtt nem engedélyezett.
electronicHogy a tétel elektronikus-e (type_of_mail); független a kézbesítési módtól. Alapértelmezés false.
falsedelivery_method_idKézbesítési mód azonosítója (mail_delivery_methods): például 1 Posta, 4 Cégkapu, 7 Perkapu. 422, ha ismeretlen.
tracking_noAzonosító: nyomkövetési szám. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$folder_path^[^<>]*$idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
idPostakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).
4321matterAz ügy, amelyhez a bejegyzés iktatva van.
matter mezői
idcase_numberdirectionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
subjectsenderFeladó: a küldő (szabad szöveg).
toCímzett: a címzett (szabad szöveg).
recipientBejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.
recipient_user_idCsak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.
electronictrue, ha a tételt elektronikusként rögzítették (type_of_mail).
delivery_method_idA kézbesítési mód azonosítója (mail_delivery_methods).
delivery_methodLokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.
tracking_noAzonosító: nyomkövetési szám.
folder_pathrecorded_by_user_idA munkatárs, aki a bejegyzést rögzítette.
recorded_bycreated_atupdated_atAdja át ezt a mail_register.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
idPostakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).
4321matterAz ügy, amelyhez a bejegyzés iktatva van.
matter mezői
idcase_numberdirectionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
subjectsenderFeladó: a küldő (szabad szöveg).
toCímzett: a címzett (szabad szöveg).
recipientBejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.
recipient_user_idCsak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.
electronictrue, ha a tételt elektronikusként rögzítették (type_of_mail).
delivery_method_idA kézbesítési mód azonosítója (mail_delivery_methods).
delivery_methodLokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.
tracking_noAzonosító: nyomkövetési szám.
folder_pathrecorded_by_user_idA munkatárs, aki a bejegyzést rögzítette.
recorded_bycreated_atupdated_atAdja át ezt a mail_register.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/mail-register' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"matter_id": 1234,
"direction": "incoming",
"date": "2026-11-03",
"subject": "Fellebbezés a Kúriához"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/mail-register", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"matter_id": 1234,
"direction": "incoming",
"date": "2026-11-03",
"subject": "Fellebbezés a Kúriához"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/mail-register",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"matter_id": 1234,
"direction": "incoming",
"date": "2026-11-03",
"subject": "Fellebbezés a Kúriához",
},
timeout=30,
)
print(response.status_code, response.json())
{
"matter_id": 1234,
"direction": "incoming",
"date": "2026-11-03",
"subject": "Fellebbezés a Kúriához"
}
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"direction": "incoming",
"date": "2026-10-30",
"subject": "string",
"sender": "string",
"to": "string",
"recipient": "string",
"recipient_user_id": 1234,
"electronic": true,
"delivery_method_id": 1234,
"delivery_method": "string",
"tracking_no": "string",
"folder_path": "string",
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"direction": "incoming",
"date": "2026-10-30",
"subject": "string",
"sender": "string",
"to": "string",
"recipient": "string",
"recipient_user_id": 1234,
"electronic": true,
"delivery_method_id": 1234,
"delivery_method": "string",
"tracking_no": "string",
"folder_path": "string",
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"matter_id": [
"A(z) matter id mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Postakönyv-bejegyzés módosítása
/api/agent/mail-register/{id}
Módosít egy Postakönyv-bejegyzést; csak az elküldött mezők változnak. A bejegyzés az ügyén marad. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad, ha a bejegyzés nem látható.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
directionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD.
subjectTárgy. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$senderFeladó: a küldő (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$toCímzett: a címzett (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$recipientKimenő levél: a szabad szöveges címzett. A recipient_user_id-vel együtt nem engedélyezett. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$recipient_user_idBejövő levél: az átvevő munkatárs (egy felhasználóazonosító), numerikus fogadóként tárolva. A recipient-tel együtt nem engedélyezett.
electronicHogy a tétel elektronikus-e (type_of_mail).
delivery_method_idKézbesítési mód azonosítója (mail_delivery_methods); 422, ha ismeretlen.
tracking_noAzonosító: nyomkövetési szám. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$folder_path^[^<>]*$Válaszok
200
Frissítve.
dataköteleződata mezői
idPostakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).
4321matterAz ügy, amelyhez a bejegyzés iktatva van.
matter mezői
idcase_numberdirectionincoming = beérkezett, outgoing = elküldött.
"incoming" "outgoing" datePostai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).
subjectsenderFeladó: a küldő (szabad szöveg).
toCímzett: a címzett (szabad szöveg).
recipientBejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.
recipient_user_idCsak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.
electronictrue, ha a tételt elektronikusként rögzítették (type_of_mail).
delivery_method_idA kézbesítési mód azonosítója (mail_delivery_methods).
delivery_methodLokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.
tracking_noAzonosító: nyomkövetési szám.
folder_pathrecorded_by_user_idA munkatárs, aki a bejegyzést rögzítette.
recorded_bycreated_atupdated_atAdja át ezt a mail_register.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/mail-register/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"direction": "incoming"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/mail-register/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"direction": "incoming"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/mail-register/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"direction": "incoming",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"direction": "incoming"
}
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"direction": "incoming",
"date": "2026-10-30",
"subject": "string",
"sender": "string",
"to": "string",
"recipient": "string",
"recipient_user_id": 1234,
"electronic": true,
"delivery_method_id": 1234,
"delivery_method": "string",
"tracking_no": "string",
"folder_path": "string",
"recorded_by_user_id": 1234,
"recorded_by": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Hozzászólások
Ügyhozzászólások listázása
/api/agent/matters/{id}/comments
Listázza egy ügy hozzászólásait, a legrégebbitől kezdve: id, szerző, törzs (formázott HTML) és egy válasz parent_id értéke. Lapos, nem beágyazott - építse újra az egy szint mély szálakat a parent_id alapján. Adja meg a top_level_only értéket a válaszok kizárásához. 404 választ ad, ha az ügy nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőÜgyazonosító (láthatónak kell lennie).
1234Lekérdezési paraméterek
top_level_onlyCsak a legfelső szintű hozzászólások (a válaszok kizárva). Alapértelmezés false.
falselimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id9876matter_idAz ügy (= case_id), amelyhez a hozzászólás tartozik.
parent_idA legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.
author_user_idA szerző felhasználóazonosítója (null egy régi import esetén).
author_nameA szerző megjelenített neve, vagy null.
bodyA hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.
created_atAmikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.
updated_atOptimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.
editedtrue, ha a hozzászólást a közzététel óta szerkesztették.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/comments?limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/comments?limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/comments?limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 9876,
"matter_id": 1234,
"parent_id": 1234,
"author_user_id": 1234,
"author_name": "string",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"edited": true
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyhozzászólás közzététele
/api/agent/matters/{id}/comments
Közzétesz egy hozzászólást egy ügyön, vagy egy egy szint mély választ (parent_id = az UGYANAZON ügy egy LEGFELSŐ SZINTŰ hozzászólása). A törzs formázott HTML, a szerveroldalon megtisztítva tárolás előtt. 404 választ ad, ha az ügy nem látható, 422-t, ha a parent_id nem az ügy egy legfelső szintű hozzászólása.
Útvonal-paraméterek
idkötelezőÜgyazonosító (láthatónak kell lennie).
1234Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
bodykötelezőA hozzászólás, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt. Legfeljebb 100000 karakter.
"<p>Egyetértek, a határidő tartható.</p>"parent_idVálasz az UGYANAZON ügy ezen LEGFELSŐ SZINTŰ hozzászólására (a comments.list-ből, parent_id = null); hagyja el egy új legfelső szintű hozzászóláshoz.
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id9876matter_idAz ügy (= case_id), amelyhez a hozzászólás tartozik.
parent_idA legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.
author_user_idA szerző felhasználóazonosítója (null egy régi import esetén).
author_nameA szerző megjelenített neve, vagy null.
bodyA hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.
created_atAmikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.
updated_atOptimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.
editedtrue, ha a hozzászólást a közzététel óta szerkesztették.
createdtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id9876matter_idAz ügy (= case_id), amelyhez a hozzászólás tartozik.
parent_idA legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.
author_user_idA szerző felhasználóazonosítója (null egy régi import esetén).
author_nameA szerző megjelenített neve, vagy null.
bodyA hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.
created_atAmikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.
updated_atOptimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.
editedtrue, ha a hozzászólást a közzététel óta szerkesztették.
createdfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/comments' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"body": "<p>Egyetértek, a határidő tartható.</p>"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/comments", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"body": "<p>Egyetértek, a határidő tartható.</p>"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/comments",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"body": "<p>Egyetértek, a határidő tartható.</p>",
},
timeout=30,
)
print(response.status_code, response.json())
{
"body": "<p>Egyetértek, a határidő tartható.</p>"
}
Válaszminták
{
"data": {
"id": 9876,
"matter_id": 1234,
"parent_id": 1234,
"author_user_id": 1234,
"author_name": "string",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"edited": true
},
"created": true
}
{
"data": {
"id": 9876,
"matter_id": 1234,
"parent_id": 1234,
"author_user_id": 1234,
"author_name": "string",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"edited": true
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"body": [
"A(z) body mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Saját ügyhozzászólás szerkesztése
/api/agent/comments/{id}
Szerkeszti az egyik SAJÁT hozzászólását (csak a törzsét; formázott HTML, a szerveroldalon megtisztítva tárolás előtt). Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad olyan hozzászólásra, amely nem az Öné, vagy olyan ügyön van, amelyet nem láthat.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
bodykötelezőÚj hozzászólás-törzs, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt. Legfeljebb 100000 karakter.
"<p>Pontosítás: a határidő november 15.</p>"Válaszok
200
Frissítve.
dataköteleződata mezői
id9876matter_idAz ügy (= case_id), amelyhez a hozzászólás tartozik.
parent_idA legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.
author_user_idA szerző felhasználóazonosítója (null egy régi import esetén).
author_nameA szerző megjelenített neve, vagy null.
bodyA hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.
created_atAmikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.
updated_atOptimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.
editedtrue, ha a hozzászólást a közzététel óta szerkesztették.
updatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/comments/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"body": "<p>Pontosítás: a határidő november 15.</p>"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/comments/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"body": "<p>Pontosítás: a határidő november 15.</p>"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/comments/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"body": "<p>Pontosítás: a határidő november 15.</p>",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"body": "<p>Pontosítás: a határidő november 15.</p>"
}
Válaszminták
{
"data": {
"id": 9876,
"matter_id": 1234,
"parent_id": 1234,
"author_user_id": 1234,
"author_name": "string",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"edited": true
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tárgyalások
Ügy tárgyalásainak listázása
/api/agent/matters/{id}/trials
Listázza egy ügy tárgyalásait: dátum, bíróság, helyszín, a részt vevő munkatársak és a bíró, a legújabbtól kezdve. Opcionálisan szűrhető egy from/to napi tartományra vagy az updated_since értékre. 404 választ ad, ha az ügy nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőAz ügy azonosítója.
1234Lekérdezési paraméterek
fromCsak az ezen a napon vagy azután lévő tárgyalások (YYYY-MM-DD), az iroda időzónájában.
"2026-01-01"toCsak az ezen a napon vagy azelőtt lévő tárgyalások (YYYY-MM-DD), az iroda időzónájában.
"2026-12-31"updated_sinceCsak az ezen az ISO 8601 időpontban vagy azt követően módosított tárgyalások.
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id4321matterAz ügy (eset), amelyhez a tárgyalás tartozik.
matter mezői
idcase_numberdateA tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.
"2026-03-02T09:00:00+01:00"participationHogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.
"required" "not_required" courtA tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.
court mezői
idnamecityzipaddresssourceMindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.
placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg.
name_of_the_judgeA bíró neve. Egyszerű szöveg.
notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.
responsiblesA tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).
responsibles mezői
user_idnamerecorded_byA munkatárs, aki a tárgyalást rögzítette.
recorded_by mezői
user_idnamecreated_atupdated_atAdja át ezt a trials.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/matters/1234/trials?from=2026-01-01&to=2026-12-31&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/trials?from=2026-01-01&to=2026-12-31&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/matters/1234/trials?from=2026-01-01&to=2026-12-31&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"date": "2026-03-02T09:00:00+01:00",
"participation": "required",
"court": {
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string",
"source": "string"
},
"place": "string",
"name_of_the_judge": "string",
"notes": "string",
"responsibles": [
{
"user_id": 1234,
"name": "string"
}
],
"recorded_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "matter_not_visible",
"message": "The matter 1234 does not exist, is archived, or is not visible to the user who owns this API key.",
"message_localized": "A(z) 1234 azonosítójú ügy nem létezik, archivált, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"matter_id": 1234
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tárgyalás lekérése
/api/agent/trials/{id}
Visszaad egy tárgyalást az ügyével, a bíróságával, a részt vevő munkatársakkal és az updated_at zárolási tokennel a trials.update számára. 404 választ ad, ha a tárgyalás nem létezik, vagy a felhasználó nem láthatja az ügyét.
Útvonal-paraméterek
idkötelezőTárgyalásazonosító.
4321Válaszok
200
OK.
dataköteleződata mezői
id4321matterAz ügy (eset), amelyhez a tárgyalás tartozik.
matter mezői
idcase_numberdateA tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.
"2026-03-02T09:00:00+01:00"participationHogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.
"required" "not_required" courtA tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.
court mezői
idnamecityzipaddresssourceMindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.
placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg.
name_of_the_judgeA bíró neve. Egyszerű szöveg.
notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.
responsiblesA tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).
responsibles mezői
user_idnamerecorded_byA munkatárs, aki a tárgyalást rögzítette.
recorded_by mezői
user_idnamecreated_atupdated_atAdja át ezt a trials.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/trials/4321' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/trials/4321", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/trials/4321",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"date": "2026-03-02T09:00:00+01:00",
"participation": "required",
"court": {
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string",
"source": "string"
},
"place": "string",
"name_of_the_judge": "string",
"notes": "string",
"responsibles": [
{
"user_id": 1234,
"name": "string"
}
],
"recorded_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "trial",
"record_id": 4321
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tárgyalás létrehozása
/api/agent/matters/{id}/trials
Rögzít egy tárgyalást egy ügyön: idő, egy opcionális bíróság (court_id a courts.list-ből), a terem, a bíró, a megjegyzések és a részt vevő munkatársak. Az ügynek láthatónak és nem archiváltnak kell lennie; a résztvevők értesítést kapnak. Az eltolás nélküli időpont az iroda zónájában értelmeződik.
Útvonal-paraméterek
idkötelezőAz ügy, amelyhez a tárgyalás tartozik (láthatónak és nem archiváltnak kell lennie).
1234Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
datekötelezőA tárgyalás dátuma és ideje, ISO 8601. Eltolással tiszteletben van tartva; eltolás nélkül az iroda időzónájában értelmeződik. UTC-ben tárolva.
"2026-03-02T09:00:00+01:00"court_idA tárgyalás bírósága: egy azonosító a courts.list-ből (a megosztott bírósági nyilvántartás). Hagyja el, ha a bíróság nem ismert.
42participationHogy egy munkatárs részvétele kötelező-e. Hagyja el, hogy beállítatlan maradjon.
"required" "not_required" placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"II. emelet 205."name_of_the_judgeA bíró neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$responsible_user_idsA tárgyaláson részt vevő munkatársak felhasználóazonosítói (a colleagues.list-ből).
idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id4321matterAz ügy (eset), amelyhez a tárgyalás tartozik.
matter mezői
idcase_numberdateA tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.
"2026-03-02T09:00:00+01:00"participationHogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.
"required" "not_required" courtA tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.
court mezői
idnamecityzipaddresssourceMindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.
placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg.
name_of_the_judgeA bíró neve. Egyszerű szöveg.
notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.
responsiblesA tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).
responsibles mezői
user_idnamerecorded_byA munkatárs, aki a tárgyalást rögzítette.
recorded_by mezői
user_idnamecreated_atupdated_atAdja át ezt a trials.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id4321matterAz ügy (eset), amelyhez a tárgyalás tartozik.
matter mezői
idcase_numberdateA tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.
"2026-03-02T09:00:00+01:00"participationHogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.
"required" "not_required" courtA tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.
court mezői
idnamecityzipaddresssourceMindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.
placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg.
name_of_the_judgeA bíró neve. Egyszerű szöveg.
notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.
responsiblesA tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).
responsibles mezői
user_idnamerecorded_byA munkatárs, aki a tárgyalást rögzítette.
recorded_by mezői
user_idnamecreated_atupdated_atAdja át ezt a trials.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/trials' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"date": "2026-03-02T09:00:00+01:00",
"court_id": 42,
"place": "II. emelet 205."
}'
const response = await fetch("https://www.flowyer.hu/api/agent/matters/1234/trials", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"date": "2026-03-02T09:00:00+01:00",
"court_id": 42,
"place": "II. emelet 205."
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/matters/1234/trials",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"date": "2026-03-02T09:00:00+01:00",
"court_id": 42,
"place": "II. emelet 205.",
},
timeout=30,
)
print(response.status_code, response.json())
{
"date": "2026-03-02T09:00:00+01:00",
"court_id": 42,
"place": "II. emelet 205."
}
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"date": "2026-03-02T09:00:00+01:00",
"participation": "required",
"court": {
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string",
"source": "string"
},
"place": "string",
"name_of_the_judge": "string",
"notes": "string",
"responsibles": [
{
"user_id": 1234,
"name": "string"
}
],
"recorded_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"date": "2026-03-02T09:00:00+01:00",
"participation": "required",
"court": {
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string",
"source": "string"
},
"place": "string",
"name_of_the_judge": "string",
"notes": "string",
"responsibles": [
{
"user_id": 1234,
"name": "string"
}
],
"recorded_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"date": [
"A(z) date mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Tárgyalás módosítása
/api/agent/trials/{id}
Módosít egy tárgyalást: idejét, bíróságát, helyszínét, bíróját, megjegyzéseit, részvételi jelzőjét és résztvevőit. Csak az elküldött mezőket írja; küldje a responsible_user_ids értéket a teljes résztvevőlista lecseréléséhez. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
dateÚj tárgyalási dátum és idő, ISO 8601 (egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmezve). UTC-ben tárolva.
"2026-03-02T09:00:00+01:00"court_idÚj bíróságazonosító a courts.list-ből; null a bíróság törléséhez.
participationHogy egy munkatárs részvétele kötelező-e; null a törléséhez.
"required" "not_required" placeTerem vagy helyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$name_of_the_judgeA bíró neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$notesSzabad szöveges megjegyzések. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$responsible_user_idsA résztvevők felhasználóazonosítóinak teljes lecserélő halmaza (a colleagues.list-ből). Hagyja el a résztvevők változatlanul hagyásához.
Válaszok
200
Frissítve.
dataköteleződata mezői
id4321matterAz ügy (eset), amelyhez a tárgyalás tartozik.
matter mezői
idcase_numberdateA tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.
"2026-03-02T09:00:00+01:00"participationHogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.
"required" "not_required" courtA tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.
court mezői
idnamecityzipaddresssourceMindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.
placeA tárgyalás terme vagy helyszíne. Egyszerű szöveg.
name_of_the_judgeA bíró neve. Egyszerű szöveg.
notesSzabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.
responsiblesA tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).
responsibles mezői
user_idnamerecorded_byA munkatárs, aki a tárgyalást rögzítette.
recorded_by mezői
user_idnamecreated_atupdated_atAdja át ezt a trials.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/trials/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-02T09:00:00+01:00"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/trials/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-02T09:00:00+01:00"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/trials/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-02T09:00:00+01:00",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-02T09:00:00+01:00"
}
Válaszminták
{
"data": {
"id": 4321,
"matter": {
"id": 1234,
"case_number": "string"
},
"date": "2026-03-02T09:00:00+01:00",
"participation": "required",
"court": {
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string",
"source": "string"
},
"place": "string",
"name_of_the_judge": "string",
"notes": "string",
"responsibles": [
{
"user_id": 1234,
"name": "string"
}
],
"recorded_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Bíróságok
Bíróságok listázása
/api/agent/courts
Listázza a megosztott bírósági nyilvántartást (id, név, város) a trials.create / trials.update court_id értékéhez. A q megadásával (egy bíróságnév, ahogyan hallotta; az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri) az exact/similar/none állapotot adja vissza: csak az "exact" használható biztonságosan közvetlenül. Ez a magyar bírósági jegyzék.
Lekérdezési paraméterek
qA keresendő bíróságnév, ahogyan hallotta vagy diktálták, tetszőleges szósorrendben. Hagyja el az összes bíróság listázásához.
"Fővárosi Törvényszék"limitA visszaadandó bíróságok maximális száma (alapértelmezés 200).
200Válaszok
200
OK.
dataköteleződata mezői
statusCsak q esetén: exact = egy biztos találat (az azonosítója biztonságosan használható), similar = közelítő vagy több találat (előbb egyeztessen a felhasználóval), none = nincs találat (kérdezze meg a felhasználót). q nélkül null.
"exact" "similar" "none" courtsBíróságok, q esetén a legjobb találat elöl, egyébként név szerint.
courts mezői
idBíróságazonosító: adja meg court_id értékként a trials.create / trials.update hívásnak.
nameA bíróság neve úgy, ahogyan a Flowyer megjeleníti.
cityzipaddresstotalHány bíróság felelt meg (q nélkül az összes bíróság), mielőtt a lista a limit értékre lett vágva.
truncatedtrue, ha több bíróság felelt meg, mint amennyi visszatért: szűkítse a q értékét, vagy emelje a limit értékét.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/courts?q=F%C5%91v%C3%A1rosi%20T%C3%B6rv%C3%A9nysz%C3%A9k' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/courts?q=F%C5%91v%C3%A1rosi%20T%C3%B6rv%C3%A9nysz%C3%A9k", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/courts?q=F%C5%91v%C3%A1rosi%20T%C3%B6rv%C3%A9nysz%C3%A9k",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"status": "exact",
"courts": [
{
"id": 1234,
"name": "string",
"city": "string",
"zip": "string",
"address": "string"
}
],
"total": 1,
"truncated": true
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"courts:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"courts:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "courts:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
HR
Munkatársak szabadságainak listázása
/api/agent/hr/leaves
Listázza a jóváhagyott munkatársi szabadságokat (ki van vagy lesz szabadságon): a munkatárs, a kezdő/záró dátumok, a munkanapok száma, egy adatvédelmi okból csonkított kategória (leave/unpaid; a betegszabadság a leave kategóriába olvad, és soha nem azonosítható) és az esetleges helyettes. Soha nem adja vissza a szabadság típusát, a megjegyzéseket vagy azt, hogy ki hagyta jóvá.
Lekérdezési paraméterek
user_idCsak ennek a munkatársnak a szabadságai. Egy központi felhasználóazonosító (a colleagues.list-ből), a szabadság mögötti alkalmazotthoz illesztve.
1234on_dateKi van szabadságon pontosan ezen a napon (start_date <= on_date <= end_date). Ha be van állítva, felülbírálja a date_from, date_to és timeframe értékeket.
date_fromCsak az ezen a dátumon vagy azután még tartó szabadságok (end_date >= date_from). Alapértelmezés a mai nap, így a teljesen múltbeli szabadságok alapértelmezés szerint kimaradnak.
date_toCsak az ezen a dátumon vagy azelőtt kezdődő szabadságok (start_date <= date_to). Hagyja el a nyitott végű jövőhöz.
timeframeExtra kezdődátum-feltétel a mai naphoz képest: current = már elkezdődött (folyamatban), upcoming = még nem kezdődött el, all = nincs extra. Figyelmen kívül marad, ha az on_date be van állítva.
"current" "upcoming" "all" "all"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idSzabadságkérelem azonosítója (csak egy hivatkozás; nem érzékeny).
user_idA szabadságon lévő munkatárs (központi felhasználóazonosító).
userA munkatárs megjelenített neve.
start_dateA szabadság első napja (YYYY-MM-DD).
end_dateA szabadság utolsó napja, beleértve (YYYY-MM-DD).
days_countA szabadság munkanapjai. Nem fedi fel a típust.
categoryAdatvédelmi okból csonkított szabadságtípus: az éves és a betegszabadság egyaránt "leave" lesz (a betegszabadság soha nem azonosítható), a fizetés nélküli "unpaid" marad. A nyers szabadságtípus soha nem kerül nyilvánosságra.
"leave" "unpaid" statusMindig "approved" - csak a jóváhagyott szabadságok kerülnek visszaadásra; a pending, rejected és cancelled soha nem jelenik meg.
"approved" substitute_user_idA szabadságot helyettesítő munkatárs (központi felhasználóazonosító), vagy null.
substitute_userA helyettesítő munkatárs megjelenített neve, vagy null.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/hr/leaves?user_id=1234&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/hr/leaves?user_id=1234&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/hr/leaves?user_id=1234&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 1234,
"user_id": 1234,
"user": "string",
"start_date": "2026-10-30",
"end_date": "2026-10-30",
"days_count": 0,
"category": "leave",
"status": "approved",
"substitute_user_id": 1234,
"substitute_user": "string"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"hr:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"hr:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "hr:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Naptár
Naptáresemények listázása
/api/agent/calendar/events
Listázza a [from, to] dátumtartománnyal átfedő naptáreseményeket: az iroda naptárát, a sajátját és az Önnel megosztott naptárakat. Az ismétlődő események egyszer kerülnek visszaadásra (is_recurring), NEM kibontva. A kezdés szerint rendezve. Egy Önnel meg nem osztott személyes esemény soha nem jelenik meg.
Lekérdezési paraméterek
fromkötelezőA tartomány kezdete (beleértve), ISO 8601. A [from, to] tartománnyal átfedő események kerülnek visszaadásra. Az eltolás nélküli időpont az iroda zónájában értelmeződik.
"2026-03-01T00:00:00+01:00"tokötelezőA tartomány vége (beleértve), ISO 8601. A from értékén vagy azután kell lennie (egyébként 422), és legfeljebb 366 nappal utána.
"2026-03-31T23:59:59+01:00"calendar_idsSzűkítés ezekre a tartalmazó naptárazonosítókra; mindegyik metszetre kerül az Ön által megtekinthető naptárakkal, így egy nem látható azonosító csendben kimarad. Hagyja el az összes látható naptárhoz.
include_recurringTartalmazza azokat az ismétlődő főeseményeket, amelyek szabálya átfedi a tartományt (kibontás nélkül visszaadva, is_recurring = true). Alapértelmezés true.
truelimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id5501calendarA naptár, amelyhez az esemény tartozik.
calendar mezői
idTartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).
nametype"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.
"office" "personal" ownerEgy személyes naptár tulajdonosa; az iroda naptára esetén null.
owner mezői
user_idnametitleAz esemény címe. Egyszerű szöveg.
descriptionAz esemény leírása. Egyszerű szöveg.
locationHelyszín. Egyszerű szöveg.
participantsRésztvevők, szabad szöveg. Egyszerű szöveg.
startEgész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.
all_daytrue egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).
colorMegjelenítési szín, például "#2c7be5".
is_recurringtrue, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.
recurrenceEgy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.
recurrence mezői
freqdaily | weekly | monthly | yearly.
intervalbyweekdayVesszővel elválasztott hétköznapkódok (például "MO,WE,FR").
untilcountcreated_byA munkatárs, aki létrehozta az eseményt.
created_by mezői
user_idnamecreated_atupdated_atAdja át ezt a calendar.events.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/calendar/events?from=2026-03-01T00%3A00%3A00%2B01%3A00&to=2026-03-31T23%3A59%3A59%2B01%3A00&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/calendar/events?from=2026-03-01T00%3A00%3A00%2B01%3A00&to=2026-03-31T23%3A59%3A59%2B01%3A00&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/calendar/events?from=2026-03-01T00%3A00%3A00%2B01%3A00&to=2026-03-31T23%3A59%3A59%2B01%3A00&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 5501,
"calendar": {
"id": 1234,
"name": "string",
"type": "office",
"owner": {
"user_id": 1234,
"name": "string"
}
},
"title": "string",
"description": "string",
"location": "string",
"participants": "string",
"start": "2026-03-02T09:00:00+01:00",
"end": "string",
"all_day": true,
"color": "string",
"is_recurring": true,
"recurrence": {
"freq": "string",
"interval": 0,
"byweekday": "string",
"until": "string",
"count": 0
},
"created_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"calendar:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"calendar:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "calendar:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Naptáresemény lekérése
/api/agent/calendar/events/{id}
Visszaad egy naptáreseményt a naptárával, az ismétlődési összefoglalójával és az updated_at zárolási tokennel a calendar.events.update számára. 404 választ ad, ha az esemény nem létezik, vagy a naptára nem látható a felhasználó számára.
Útvonal-paraméterek
idkötelezőEseményazonosító.
5501Válaszok
200
OK.
dataköteleződata mezői
id5501calendarA naptár, amelyhez az esemény tartozik.
calendar mezői
idTartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).
nametype"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.
"office" "personal" ownerEgy személyes naptár tulajdonosa; az iroda naptára esetén null.
owner mezői
user_idnametitleAz esemény címe. Egyszerű szöveg.
descriptionAz esemény leírása. Egyszerű szöveg.
locationHelyszín. Egyszerű szöveg.
participantsRésztvevők, szabad szöveg. Egyszerű szöveg.
startEgész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.
all_daytrue egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).
colorMegjelenítési szín, például "#2c7be5".
is_recurringtrue, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.
recurrenceEgy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.
recurrence mezői
freqdaily | weekly | monthly | yearly.
intervalbyweekdayVesszővel elválasztott hétköznapkódok (például "MO,WE,FR").
untilcountcreated_byA munkatárs, aki létrehozta az eseményt.
created_by mezői
user_idnamecreated_atupdated_atAdja át ezt a calendar.events.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/calendar/events/5501' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/calendar/events/5501", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/calendar/events/5501",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 5501,
"calendar": {
"id": 1234,
"name": "string",
"type": "office",
"owner": {
"user_id": 1234,
"name": "string"
}
},
"title": "string",
"description": "string",
"location": "string",
"participants": "string",
"start": "2026-03-02T09:00:00+01:00",
"end": "string",
"all_day": true,
"color": "string",
"is_recurring": true,
"recurrence": {
"freq": "string",
"interval": 0,
"byweekday": "string",
"until": "string",
"count": 0
},
"created_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "calendar_event",
"record_id": 5501
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Naptáresemény létrehozása
/api/agent/calendar/events
Létrehoz egy egyedi naptáreseményt (időzített vagy egész napos) az iroda naptárában vagy egy Ön által szerkeszthető naptárban. Az időzített start/end tiszteletben tart egy ISO 8601 eltolást, a zóna nélküli időpont az iroda zónájában értelmeződik; egy egész napos záró dátum beleértendő. Ismétlődő események itt nem hozhatók létre. Nem kerül külső naptárakba továbbítva.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
titlekötelezőAz esemény címe. Egyszerű szöveg; a "<" és a ">" nem engedélyezett (escape nélkül kerül az emlékeztető értesítésbe).
^[^<>]*$"Ügyfél egyeztetés"startkötelezőEgész napos (all_day true): egy dátum "YYYY-MM-DD". Időzített (all_day false): ISO 8601; egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmeződik.
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Alapértelmezés = start. Egész napos eseménynél a záró dátum BELEÉRTENDŐ. Nem lehet a start előtt (egyébként 422).
all_dayHogy az esemény egész napos-e. Alapértelmezés false (időzített).
falsecalendar_idCél tartalmazó naptár; alapértelmezés = az iroda naptára. Szerkesztési joggal kell rendelkeznie rá (egyébként 403). Csak a személyes naptár funkcióval rendelkező bérlőnél.
locationHelyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$descriptionLeírás, egyszerű szöveg (nem HTML); a "<" és a ">" nem engedélyezett.
^[^<>]*$participantsRésztvevők, szabad szöveg. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$colorMegjelenítési szín, például "#2c7be5".
^#?[A-Za-z0-9_-]{1,31}$idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id5501calendarA naptár, amelyhez az esemény tartozik.
calendar mezői
idTartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).
nametype"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.
"office" "personal" ownerEgy személyes naptár tulajdonosa; az iroda naptára esetén null.
owner mezői
user_idnametitleAz esemény címe. Egyszerű szöveg.
descriptionAz esemény leírása. Egyszerű szöveg.
locationHelyszín. Egyszerű szöveg.
participantsRésztvevők, szabad szöveg. Egyszerű szöveg.
startEgész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.
all_daytrue egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).
colorMegjelenítési szín, például "#2c7be5".
is_recurringtrue, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.
recurrenceEgy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.
recurrence mezői
freqdaily | weekly | monthly | yearly.
intervalbyweekdayVesszővel elválasztott hétköznapkódok (például "MO,WE,FR").
untilcountcreated_byA munkatárs, aki létrehozta az eseményt.
created_by mezői
user_idnamecreated_atupdated_atAdja át ezt a calendar.events.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id5501calendarA naptár, amelyhez az esemény tartozik.
calendar mezői
idTartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).
nametype"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.
"office" "personal" ownerEgy személyes naptár tulajdonosa; az iroda naptára esetén null.
owner mezői
user_idnametitleAz esemény címe. Egyszerű szöveg.
descriptionAz esemény leírása. Egyszerű szöveg.
locationHelyszín. Egyszerű szöveg.
participantsRésztvevők, szabad szöveg. Egyszerű szöveg.
startEgész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.
all_daytrue egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).
colorMegjelenítési szín, például "#2c7be5".
is_recurringtrue, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.
recurrenceEgy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.
recurrence mezői
freqdaily | weekly | monthly | yearly.
intervalbyweekdayVesszővel elválasztott hétköznapkódok (például "MO,WE,FR").
untilcountcreated_byA munkatárs, aki létrehozta az eseményt.
created_by mezői
user_idnamecreated_atupdated_atAdja át ezt a calendar.events.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/calendar/events' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"title": "Ügyfél egyeztetés",
"start": "2026-03-02T09:00:00+01:00"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/calendar/events", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"title": "Ügyfél egyeztetés",
"start": "2026-03-02T09:00:00+01:00"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/calendar/events",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"title": "Ügyfél egyeztetés",
"start": "2026-03-02T09:00:00+01:00",
},
timeout=30,
)
print(response.status_code, response.json())
{
"title": "Ügyfél egyeztetés",
"start": "2026-03-02T09:00:00+01:00"
}
Válaszminták
{
"data": {
"id": 5501,
"calendar": {
"id": 1234,
"name": "string",
"type": "office",
"owner": {
"user_id": 1234,
"name": "string"
}
},
"title": "string",
"description": "string",
"location": "string",
"participants": "string",
"start": "2026-03-02T09:00:00+01:00",
"end": "string",
"all_day": true,
"color": "string",
"is_recurring": true,
"recurrence": {
"freq": "string",
"interval": 0,
"byweekday": "string",
"until": "string",
"count": 0
},
"created_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 5501,
"calendar": {
"id": 1234,
"name": "string",
"type": "office",
"owner": {
"user_id": 1234,
"name": "string"
}
},
"title": "string",
"description": "string",
"location": "string",
"participants": "string",
"start": "2026-03-02T09:00:00+01:00",
"end": "string",
"all_day": true,
"color": "string",
"is_recurring": true,
"recurrence": {
"freq": "string",
"interval": 0,
"byweekday": "string",
"until": "string",
"count": 0
},
"created_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"title": [
"A(z) title mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Naptáresemény módosítása
/api/agent/calendar/events/{id}
Módosít egy egyedi naptáreseményt: cím, start/end, all_day, helyszín, leírás, résztvevők, szín. Csak az elküldött mezőket írja; a "" törli a helyszínt/leírást/résztvevőket. Egy ismétlődő esemény 422 választ ad. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
titleÚj cím. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$startÚj kezdés. Egész napos: "YYYY-MM-DD". Időzített: ISO 8601 (egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmezve). Újrakódolva, ha az all_day megváltozik.
endÚj vég, ugyanaz a kódolás, mint a start esetén; a "" törli. Egész napos eseménynél a záró dátum beleértendő. Nem lehet a start előtt (egyébként 422).
all_dayHa elküldi, a start/end ennek megfelelően újrakódolódik; ha elhagyja, a sor aktuális all_day értéke kerül felhasználásra.
locationHelyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$descriptionLeírás, egyszerű szöveg (nem HTML); a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$participantsRésztvevők, szabad szöveg. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.
^[^<>]*$colorMegjelenítési szín, például "#2c7be5". A "" törli.
^#?[A-Za-z0-9_-]{1,31}$Válaszok
200
Frissítve.
dataköteleződata mezői
id5501calendarA naptár, amelyhez az esemény tartozik.
calendar mezői
idTartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).
nametype"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.
"office" "personal" ownerEgy személyes naptár tulajdonosa; az iroda naptára esetén null.
owner mezői
user_idnametitleAz esemény címe. Egyszerű szöveg.
descriptionAz esemény leírása. Egyszerű szöveg.
locationHelyszín. Egyszerű szöveg.
participantsRésztvevők, szabad szöveg. Egyszerű szöveg.
startEgész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).
"2026-03-02T09:00:00+01:00"endUgyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.
all_daytrue egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).
colorMegjelenítési szín, például "#2c7be5".
is_recurringtrue, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.
recurrenceEgy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.
recurrence mezői
freqdaily | weekly | monthly | yearly.
intervalbyweekdayVesszővel elválasztott hétköznapkódok (például "MO,WE,FR").
untilcountcreated_byA munkatárs, aki létrehozta az eseményt.
created_by mezői
user_idnamecreated_atupdated_atAdja át ezt a calendar.events.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/calendar/events/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/calendar/events/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/calendar/events/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"title": "string"
}
Válaszminták
{
"data": {
"id": 5501,
"calendar": {
"id": 1234,
"name": "string",
"type": "office",
"owner": {
"user_id": 1234,
"name": "string"
}
},
"title": "string",
"description": "string",
"location": "string",
"participants": "string",
"start": "2026-03-02T09:00:00+01:00",
"end": "string",
"all_day": true,
"color": "string",
"is_recurring": true,
"recurrence": {
"freq": "string",
"interval": 0,
"byweekday": "string",
"until": "string",
"count": 0
},
"created_by": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Időpontfoglalás
Foglalások listázása
/api/agent/bookings
Listázza az iroda időpontfoglalásait, a legújabbtól kezdve. Opcionálisan szűrhető egy from/to napi tartományra (a foglalás időzónája szerint), egy ügyvédre (user_id), egy státuszra vagy az updated_since értékre. Minden kulcsbirtokos látja az összes ügyvéd foglalásait.
Lekérdezési paraméterek
fromCsak az ezen a napon (YYYY-MM-DD) vagy azt követően lévő foglalások, a foglalási zóna dátumához szó szerint illesztve.
"2026-01-01"toCsak az ezen a napon (YYYY-MM-DD) vagy azt megelőzően lévő foglalások.
"2026-12-31"user_idSzűrés egyetlen ügyvédre (user_id a colleagues.list-ből). Hagyja el az iroda összes ügyvédjéhez.
statusSzűrés státusz szerint.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" updated_sinceCsak az ezen az ISO 8601 időpontban vagy azt követően módosított foglalások (az updated_at az iroda zónája szerinti, időzóna nélküli időpont).
limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/bookings?from=2026-01-01&to=2026-12-31&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings?from=2026-01-01&to=2026-12-31&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/bookings?from=2026-01-01&to=2026-12-31&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"bookings:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"bookings:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "bookings:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Foglalás lekérése
/api/agent/bookings/{id}
Visszaad egy időpontfoglalást az ügyvéddel, az ügyfél adataival, a kezdő/záró időpontokkal, a fizetési állapottal és az updated_at zárolási tokennel a bookings.update / .confirm / .cancel számára. 404 választ ad, ha a foglalás nem létezik ebben az irodában.
Útvonal-paraméterek
idkötelezőFoglalásazonosító.
4321Válaszok
200
OK.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/bookings/4321' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings/4321", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/bookings/4321",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "booking",
"record_id": 4321
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Foglalás létrehozása
/api/agent/bookings
Lefoglal egy időpontot, és E-MAILT KÜLD AZ ÜGYFÉLNEK a megerősítésről. Szabad idősávot igényel az ügyvédnél (egyébként 409); az iroda naptára soha nem blokkol. A source értéke "manual". Egy Idempotency-Key visszajátszás sem újra nem foglal, sem újra nem küld e-mailt.
Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
user_idkötelezőAz ügyvéd, akivel az időpont létrejön (user_id a colleagues.list-ből; aktív irodai munkatársnak kell lennie).
42datekötelezőAz időpont napja (YYYY-MM-DD) a foglalás időzónájában.
"2026-03-02"timekötelezőKezdési idő HH:MM (24 órás) a foglalás időzónájában. A befejezési idő a time plusz az iroda idősávhossza. Szabad idősávnak kell lennie.
^([01]\d|2[0-3]):[0-5]\d$"09:00"client_namekötelezőAz ügyfél neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$"Kovács Anna"client_emailkötelezőAz ügyfél e-mail címe: a megerősítés címzettje.
"anna@example.com"client_phoneAz ügyfél telefonszáma. Egyszerű szöveg.
^[^<>]*$client_descriptionTárgy / megjegyzések az ügyféltől. Egyszerű szöveg.
^[^<>]*$location_preferenceIrodai vagy online konzultáció. Alapértelmezés "office".
"office" "online" "office"meeting_linkAz online találkozó URL-je (http/https), online konzultációhoz.
gdpr_consentRögzíti az ügyfél adatkezelési hozzájárulását. Alapértelmezés true (az iroda munkatársai az ügyfél nevében foglalnak).
trueauto_confirmHa true (vagy az irodánál be van kapcsolva az automatikus megerősítés), a foglalás már megerősítve jön létre: lefut a naptárszinkronizálás, és az ügyfél kérés helyett megerősítést kap. Egyébként pending állapotú.
falseidempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/bookings' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"user_id": 42,
"date": "2026-03-02",
"time": "09:00",
"client_name": "Kovács Anna",
"client_email": "anna@example.com"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"user_id": 42,
"date": "2026-03-02",
"time": "09:00",
"client_name": "Kovács Anna",
"client_email": "anna@example.com"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/bookings",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"user_id": 42,
"date": "2026-03-02",
"time": "09:00",
"client_name": "Kovács Anna",
"client_email": "anna@example.com",
},
timeout=30,
)
print(response.status_code, response.json())
{
"user_id": 42,
"date": "2026-03-02",
"time": "09:00",
"client_name": "Kovács Anna",
"client_email": "anna@example.com"
}
Válaszminták
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"user_id": [
"A(z) user id mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Foglalás módosítása
/api/agent/bookings/{id}
Átütemez (date + time együtt, szabad idősávra újra ellenőrizve) vagy szerkeszt egy foglalást (telefon, megjegyzések, találkozó link, helyszín). Csak az elküldött mezőket írja. Átütemezésről az ügyvédet értesíti, az ügyfelet soha. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; elavult írás esetén a válasz 409.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
dateÚj nap (YYYY-MM-DD) a foglalás időzónájában. Az átütemezéshez a date ÉS a time értéket együtt küldje.
"2026-03-05"timeÚj kezdési idő HH:MM. A befejezési idő az iroda idősávhosszából kerül újraszámításra. A date ÉS a time értéket együtt küldje.
^([01]\d|2[0-3]):[0-5]\d$"11:00"client_phoneAz ügyfél telefonszáma. Egyszerű szöveg. A "" törli.
^[^<>]*$client_descriptionTárgy / megjegyzések. Egyszerű szöveg. A "" törli.
^[^<>]*$meeting_linkAz online találkozó URL-je (http/https). A "" törli.
location_preferenceIrodai vagy online konzultáció.
"office" "online" Válaszok
200
Frissítve.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/bookings/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-05",
"time": "11:00"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-05",
"time": "11:00"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/bookings/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-05",
"time": "11:00",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"date": "2026-03-05",
"time": "11:00"
}
Válaszminták
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Foglalás megerősítése
/api/agent/bookings/{id}/confirm
Megerősít egy pending foglalást, és E-MAILT KÜLD AZ ÜGYFÉLNEK a megerősítésről (online esetén a találkozó linkjével). Csak pending foglalás erősíthető meg; bármely más státusz 409 választ ad, így egy újrapróbálkozás soha nem küld újra e-mailt. Opcionálisan megadhatja az expected_updated_at értéket zárolási tokenként.
Útvonal-paraméterek
idkötelezőFoglalásazonosító.
4321Kérés törzse application/json
expected_updated_atOpcionális optimista zárolási token: az updated_at a legutóbbi olvasásából. Ha a foglalás azóta megváltozott, az API 409 választ ad, és az újrapróbálkozás előtt újraolvassa.
meeting_linkAz online találkozó URL-je (http/https), amelyet a foglaláson beállít, mielőtt a megerősítő e-mail kimegy.
Válaszok
200
OK.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/bookings/4321/confirm' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings/4321/confirm", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}),
});
const result = await response.json();
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/bookings/4321/confirm",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}
Válaszminták
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Foglalás lemondása
/api/agent/bookings/{id}/cancel
Lemond egy foglalást, és E-MAILT KÜLD AZ ÜGYFÉLNEK (és az ügyvédnek) a lemondásról. Egy már lemondott vagy teljesített foglalás 409 választ ad, így egy újrapróbálkozás soha nem küld újra e-mailt. Egy kifizetett foglalást lemond, de soha nem térít vissza (ezt az iroda intézi). Opcionálisan megadhatja az expected_updated_at értéket.
Útvonal-paraméterek
idkötelezőFoglalásazonosító.
4321Kérés törzse application/json
expected_updated_atOpcionális optimista zárolási token: az updated_at a legutóbbi olvasásából. Ha a foglalás azóta megváltozott, az API 409 választ ad.
reasonA cancel_reason értékként rögzített és a lemondási e-mailben megjelenített indok. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.
^[^<>]*$Válaszok
200
OK.
dataköteleződata mezői
id4321booking_numberEmber által olvasható foglalási szám, például "#B-0001".
statuspending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.
"pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired" sourceHonnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".
"flowyer" "website" "embed_widget" "manual" lawyerAz ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.
lawyer mezői
user_idnamedateNaptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.
start_timeKezdési idő HH:MM a foglalás időzónájában.
end_timeBefejezési idő HH:MM a foglalás időzónájában.
startA kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.
endA befejezés egyértelmű ISO 8601 időpontja.
timezoneA foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.
location_preferenceHogy a konzultáció az irodában vagy online zajlik-e.
"office" "online" meeting_linkAz online találkozó URL-je, ha be van állítva.
clientA foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.
client mezői
nameemailphonedescriptiongdpr_consentHogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.
gdpr_consent_atMikor rögzítették a hozzájárulást.
cancel_reasonA lemondáskor rögzített indok.
paymentCsak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.
payment mezői
status"none" "awaiting" "partial" "paid" "refunded" method"card" "transfer" amountcurrencyinvoice_numberconfirmed_atcancelled_atcreated_atupdated_atAdja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduserat
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/bookings/4321/cancel' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/bookings/4321/cancel", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}),
});
const result = await response.json();
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/bookings/4321/cancel",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00"
}
Válaszminták
{
"data": {
"id": 4321,
"booking_number": "string",
"status": "pending",
"source": "flowyer",
"lawyer": {
"user_id": 1234,
"name": "string"
},
"date": "2026-10-30",
"start_time": "string",
"end_time": "string",
"start": "2026-10-30T09:15:00+01:00",
"end": "2026-10-30T09:15:00+01:00",
"timezone": "string",
"location_preference": "office",
"meeting_link": "string",
"client": {
"name": "string",
"email": "info@example.hu",
"phone": "string",
"description": "string"
},
"gdpr_consent": true,
"gdpr_consent_at": "2026-10-30T09:15:00+01:00",
"cancel_reason": "string",
"payment": {
"status": "none",
"method": "card",
"amount": 0,
"currency": "string",
"invoice_number": "string"
},
"confirmed_at": "2026-10-30T09:15:00+01:00",
"cancelled_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfélszolgálati jegyek
Jegyek listázása
/api/agent/tickets
Listázza a felhasználó számára látható ügyfélszolgálati jegyeket (postafiókonkénti láthatóság), a legújabb tevékenységtől kezdve. Szűrhet státuszra (alapértelmezés open_states = new+open+pending; az "all" a lezártakat is tartalmazza), postafiókra, felelősre, kérelmező e-mail címére vagy szabad szövegre a tárgy/kérelmező/jegyszám felett.
Lekérdezési paraméterek
statusopen_states (alapértelmezett) = new+open+pending (a webes alapértelmezett nézet); az "all" a lezártakat is tartalmazza; vagy egyetlen pontos státusz.
"new" "open" "pending" "closed" "open_states" "all" "open_states"mailbox_idCsak az ebből a postafiókból származó jegyek. Egy olyan postafiók, amelyet a felhasználó nem láthat, üres listát ad (soha nem szivárgást).
7assigned_to_user_idCsak az ehhez a munkatárshoz rendelt jegyek (azonosító a colleagues.list-ből); 0 = csak a hozzá nem rendelt jegyek. Hagyja el bármely felelőshöz.
requester_emailCsak azok a jegyek, amelyek külső kérelmezőjének e-mail címe pontosan egyezik (kis-/nagybetű-független).
"ugyfel@example.com"qSzabad szöveges keresés a tárgy, a kérelmező neve/e-mail címe és a jegyszám felett (a kis-/nagybetű figyelmen kívül hagyva).
"számla"limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idJegyazonosító (a tickets.get / tickets.update hívással használható).
4321ticket_numberEmber által olvasható jegyszám, például FLW-000123.
subjectstatus"new" "open" "pending" "closed" priority"low" "normal" "high" mailboxA postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).
mailbox mezői
idemaildisplay_namerequesterA külső személy, aki írt.
requester mezői
emailnameassigned_toA munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.
assigned_to mezői
user_idnamematterA jegyhez kapcsolt ügy, vagy null.
matter mezői
idcase_numberclientA jegyhez kapcsolt ügyfél, vagy null.
client mezői
idnamelast_message_atA legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.
created_atupdated_atAdja át ezt a tickets.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/tickets?mailbox_id=7&requester_email=ugyfel%40example.com&q=sz%C3%A1mla' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/tickets?mailbox_id=7&requester_email=ugyfel%40example.com&q=sz%C3%A1mla", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/tickets?mailbox_id=7&requester_email=ugyfel%40example.com&q=sz%C3%A1mla",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 4321,
"ticket_number": "string",
"subject": "string",
"status": "new",
"priority": "low",
"mailbox": {
"id": 1234,
"email": "info@example.hu",
"display_name": "string"
},
"requester": {
"email": "info@example.hu",
"name": "string"
},
"assigned_to": {
"user_id": 1234,
"name": "string"
},
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"last_message_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"tickets:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"tickets:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "tickets:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Jegy lekérése
/api/agent/tickets/{id}
Visszaad egy ügyfélszolgálati jegyet az üzenetszálával (a legrégebbitől kezdve) és a kapcsolt üggyel/ügyféllel. 404 választ ad, ha a jegy nem létezik, vagy olyan postafiókban van, amelyet a felhasználó nem láthat. Az olvasás soha nem változtatja meg a jegyet (egy NEW jegy nem vált OPEN állapotra).
Útvonal-paraméterek
idkötelezőJegyazonosító.
4321Lekérdezési paraméterek
messages_limitCsak a szál legújabb N üzenetét adja vissza (továbbra is a legrégebbitől kezdve megjelenítve). Hagyja el a teljes szálhoz.
Válaszok
200
OK.
dataköteleződata mezői
idJegyazonosító (a tickets.get / tickets.update hívással használható).
4321ticket_numberEmber által olvasható jegyszám, például FLW-000123.
subjectstatus"new" "open" "pending" "closed" priority"low" "normal" "high" mailboxA postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).
mailbox mezői
idemaildisplay_namerequesterA külső személy, aki írt.
requester mezői
emailnameassigned_toA munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.
assigned_to mezői
user_idnamematterA jegyhez kapcsolt ügy, vagy null.
matter mezői
idcase_numberclientA jegyhez kapcsolt ügyfél, vagy null.
client mezői
idnamelast_message_atA legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.
created_atupdated_atAdja át ezt a tickets.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratmessagesAz üzenetszál, a legrégebbitől kezdve.
messages mezői
iddirectionin = a kérelmezőtől, out = a postafiókból küldött válasz/automatikus visszaigazolás, note = belső.
"in" "out" "note" fromfrom mezői
emailnametoto mezői
emailnamecccc mezői
emailnamesent_statusEgy kimenő üzenet kézbesítési állapota; in/note esetén null.
"pending" "sent" "failed" "scheduled" body_htmlAz üzenet törzse megtisztított HTML-ként (tárolásnál már biztonságos).
body_texthas_attachmentsauthorA munkatárs, aki egy out/note üzenetet írt; bejövő üzenet esetén null.
author mezői
user_idnamecreated_atlinked_matterA jegyhez kapcsolt ügy (ugyanaz, mint a matter).
linked_matter mezői
idcase_numberlinked_clientA jegyhez kapcsolt ügyfél (ugyanaz, mint a client).
linked_client mezői
idname
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/tickets/4321' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/tickets/4321", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/tickets/4321",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": {
"id": 4321,
"ticket_number": "string",
"subject": "string",
"status": "new",
"priority": "low",
"mailbox": {
"id": 1234,
"email": "info@example.hu",
"display_name": "string"
},
"requester": {
"email": "info@example.hu",
"name": "string"
},
"assigned_to": {
"user_id": 1234,
"name": "string"
},
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"last_message_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
},
"messages": [
{
"id": 1234,
"direction": "in",
"from": {
"email": "info@example.hu",
"name": "string"
},
"to": [
{
"email": "info@example.hu",
"name": "string"
}
],
"cc": [
{
"email": "info@example.hu",
"name": "string"
}
],
"sent_status": "pending",
"body_html": "string",
"body_text": "string",
"has_attachments": true,
"author": {
"user_id": 1234,
"name": "string"
},
"created_at": "2026-10-30T09:15:00+01:00"
}
],
"linked_matter": {
"id": 1234,
"case_number": "string"
},
"linked_client": {
"id": 1234,
"name": "string"
}
}
}
{
"error": "not_found",
"message": "The record was not found, or it is not visible to the user who owns this API key.",
"message_localized": "A rekord nem található, vagy nem látható az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"record_type": "ticket",
"record_id": 4321
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Válasz a jegyre
/api/agent/tickets/{id}/reply
Válaszol egy ügyfélszolgálati jegyre, és E-MAILBEN ELKÜLDI a választ a külső kérelmezőnek (a jegy postafiókján keresztül). A törzs formázott HTML, a szerveroldalon megtisztítva tárolás előtt. Egy azonos Idempotency-Key kulccsal való újrapróbálkozás soha nem küld második e-mailt.
Útvonal-paraméterek
idkötelezőJegyazonosító (a postafiók ACL-jén keresztül láthatónak kell lennie).
4321Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
body_htmlkötelezőA válasz, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt és küldés előtt. Legfeljebb 100000 karakter; elutasításra kerül, ha a megtisztítás után semmi nem marad.
"<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"ccExtra Cc címzettek (legfeljebb 10). A kérelmező és a postafiók automatikusan ki van zárva; egy érvénytelen cím 422 választ ad.
statusA válasz után beállítandó jegystátusz (alapértelmezés "pending" = a kérelmezőre várva). Rögzít egy státuszváltozási eseményt.
"new" "open" "pending" "closed" "pending"append_signatureHozzáfűzi a kulcs felhasználójának mentett jegyaláírását CSAK a KIMENŐ e-mailhez (soha nem tárolva a szálban).
falseidempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
ticket_id4321message_idA létrehozott kimenő ticket_messages sor azonosítója.
98765directionMindig "out".
sent_status"pending" a létrehozás pillanatában; az aszinkron küldés később sent/failed állapotra váltja.
"pending" "sent" "failed" "scheduled" statusA jegy státusza a válasz után.
"new" "open" "pending" "closed" created_atcreated_via_apiAkkor van jelen, ha a választ ezen az API-n keresztül hozták létre.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
ticket_id4321message_idA létrehozott kimenő ticket_messages sor azonosítója.
98765directionMindig "out".
sent_status"pending" a létrehozás pillanatában; az aszinkron küldés később sent/failed állapotra váltja.
"pending" "sent" "failed" "scheduled" statusA jegy státusza a válasz után.
"new" "open" "pending" "closed" created_atcreated_via_apiAkkor van jelen, ha a választ ezen az API-n keresztül hozták létre.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/tickets/4321/reply' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"body_html": "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/tickets/4321/reply", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"body_html": "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/tickets/4321/reply",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"body_html": "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>",
},
timeout=30,
)
print(response.status_code, response.json())
{
"body_html": "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"
}
Válaszminták
{
"data": {
"ticket_id": 4321,
"message_id": 98765,
"direction": "string",
"sent_status": "pending",
"status": "new",
"created_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": true
}
{
"data": {
"ticket_id": 4321,
"message_id": 98765,
"direction": "string",
"sent_status": "pending",
"status": "new",
"created_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"body_html": [
"A(z) body html mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Jegy státuszának módosítása
/api/agent/tickets/{id}
Módosítja egy jegy státuszát (new, open, pending vagy closed). A "closed" beállítja a closed_at értéket; bármely más státusz törli. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad, ha a jegy nem látható.
Útvonal-paraméterek
idkötelezőA módosítandó rekord azonosítója.
Kérés törzse application/json
expected_updated_atA rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.
statuskötelezőAz új státusz. A "closed" beállítja a closed_at értéket; bármely más státusz törli.
"new" "open" "pending" "closed" "open"Válaszok
200
Frissítve.
dataköteleződata mezői
idJegyazonosító (a tickets.get / tickets.update hívással használható).
4321ticket_numberEmber által olvasható jegyszám, például FLW-000123.
subjectstatus"new" "open" "pending" "closed" priority"low" "normal" "high" mailboxA postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).
mailbox mezői
idemaildisplay_namerequesterA külső személy, aki írt.
requester mezői
emailnameassigned_toA munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.
assigned_to mezői
user_idnamematterA jegyhez kapcsolt ügy, vagy null.
matter mezői
idcase_numberclientA jegyhez kapcsolt ügyfél, vagy null.
client mezői
idnamelast_message_atA legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.
created_atupdated_atAdja át ezt a tickets.update hívásnak expected_updated_at értékként.
created_via_apiAkkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratupdatedtrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X PATCH 'https://www.flowyer.hu/api/agent/tickets/1234' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-d '{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"status": "open"
}'
const response = await fetch("https://www.flowyer.hu/api/agent/tickets/1234", {
method: "PATCH",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"status": "open"
}),
});
const result = await response.json();
import requests
response = requests.patch(
"https://www.flowyer.hu/api/agent/tickets/1234",
headers={
"Authorization": "Bearer flw_...",
},
json={
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"status": "open",
},
timeout=30,
)
print(response.status_code, response.json())
{
"expected_updated_at": "2026-10-30T09:15:00+01:00",
"status": "open"
}
Válaszminták
{
"data": {
"id": 4321,
"ticket_number": "string",
"subject": "string",
"status": "new",
"priority": "low",
"mailbox": {
"id": 1234,
"email": "info@example.hu",
"display_name": "string"
},
"requester": {
"email": "info@example.hu",
"name": "string"
},
"assigned_to": {
"user_id": 1234,
"name": "string"
},
"matter": {
"id": 1234,
"case_number": "string"
},
"client": {
"id": 1234,
"name": "string"
},
"last_message_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00",
"updated_at": "2026-10-30T09:15:00+01:00",
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
},
"updated": true
}
{
"error": "record_conflict",
"message": "The record changed since you read it (someone edited it). Read it again and retry with the new updated_at.",
"message_localized": "A rekord megváltozott, mióta beolvasta (valaki módosította). Olvassa be újra, és próbálja újra az új updated_at értékkel.",
"locale": "hu",
"details": {
"current_updated_at": "2026-10-30T10:42:05+01:00",
"reason": "modified_since_read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Ügyfélportál
Ügyfélportálok listázása
/api/agent/portals
Listázza a felhasználó számára elérhető ügyfélportálokat (szálakat): az ügy, az ügyféloldali résztvevők, az üzenetek és résztvevők száma és az utolsó üzenet ideje, a legújabbtól kezdve. Opcionálisan egyetlen ügyre szűrve (matter_id). Egy ügynek legfeljebb egy portálja van.
Lekérdezési paraméterek
matter_idCsak ennek az ügynek a portálja (404 matter_not_visible, ha az ügy nem látható). Egy ügynek legfeljebb egy portálja van.
1234limitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idPortál (szál) azonosítója - a portal.messages.list és a portal.reply hivatkozása.
57matterAz ügy (eset), amelyhez a portál tartozik.
matter mezői
idcase_numberclient_participantsA külső ügyféloldali résztvevők, akikkel az iroda kommunikál.
client_participants mezői
namekindclient = egy megbízó, contact = egy ügyfélkapcsolattartó, email = egy régi, csak e-mailes jogosultság.
"client" "contact" "email" participant_countAz élő résztvevők száma (munkatársak és ügyfél).
message_countA szálban lévő, nem törölt üzenetek száma.
last_message_atAmikor a legújabb, nem törölt üzenetet közzétették, ISO 8601 az iroda zónájában; üres szál esetén null.
unread_for_meOlvasatlan üzenetek az eljáró felhasználó saját résztvevősorához; null, ha az eljáró felhasználó nem résztvevője ennek a portálnak.
created_atpaginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/portals?matter_id=1234&limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/portals?matter_id=1234&limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/portals?matter_id=1234&limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 57,
"matter": {
"id": 1234,
"case_number": "string"
},
"client_participants": [
{
"name": "string",
"kind": "client"
}
],
"participant_count": 0,
"message_count": 0,
"last_message_at": "2026-10-30T09:15:00+01:00",
"unread_for_me": 0,
"created_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "scope_missing",
"message": "This API key does not have the \"portal:read\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
"message_localized": "Ehhez az API-kulcshoz nem tartozik \"portal:read\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
"locale": "hu",
"details": {
"required_scope": "portal:read"
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Portálüzenetek listázása
/api/agent/portals/{id}/messages
Listázza egy ügyfélportál-szál üzeneteit, a legrégebbitől kezdve, a szerzővel (munkatárs vagy ügyfél), a sima szöveges törzzsel és az esetleges mellékletmetaadatokkal. 404 választ ad, ha a portál nem létezik vagy nem elérhető. Nem jelöli olvasottként az üzeneteket.
Útvonal-paraméterek
idkötelezőPortálazonosító (elérhetőnek kell lennie).
57Lekérdezési paraméterek
include_deletedA törölt üzenetek is szerepeljenek (a törzsük üres). Alapértelmezés false.
falselimitOldalméret, 1-100. Alapértelmezés: 25.
2525offsetA kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.
00Válaszok
200
OK.
dataköteleződata mezői
idportal_messages.id.
8012authorKi írta az üzenetet.
author mezői
participant_idnamekindstaff = az iroda egy munkatársa, client = a külső ügyfél.
"staff" "client" directionfrom_firm = munkatárs szerző, from_client = a külső ügyfél.
"from_firm" "from_client" bodyAz üzenet sima szövegként (a <br> sortörésekre dekódolva). Törölt üzenet esetén üres karakterlánc.
attachmentMellékletmetaadatok, ha az üzenethez dokumentum tartozik; a letöltése nem tartozik a hatókörbe. Null, ha nincs ilyen.
attachment mezői
portal_document_idfile_nameis_deleteddeleted_atcreated_atAmikor az üzenetet közzétették, ISO 8601 az iroda zónájában.
paginationkötelezőpagination mezői
limitkötelezőoffsetkötelezőtotalkötelezőA találatként kapott rekordok teljes száma.
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl 'https://www.flowyer.hu/api/agent/portals/57/messages?limit=25' \
-H 'Authorization: Bearer flw_...'
const response = await fetch("https://www.flowyer.hu/api/agent/portals/57/messages?limit=25", {
headers: {
"Authorization": "Bearer flw_...",
},
});
const result = await response.json();
import requests
response = requests.get(
"https://www.flowyer.hu/api/agent/portals/57/messages?limit=25",
headers={
"Authorization": "Bearer flw_...",
},
timeout=30,
)
print(response.status_code, response.json())
Válaszminták
{
"data": [
{
"id": 8012,
"author": {
"participant_id": 1234,
"name": "string",
"kind": "staff"
},
"direction": "from_firm",
"body": "string",
"attachment": {
"portal_document_id": 1234,
"file_name": "string"
},
"is_deleted": true,
"deleted_at": "2026-10-30T09:15:00+01:00",
"created_at": "2026-10-30T09:15:00+01:00"
}
],
"pagination": {
"limit": 25,
"offset": 0,
"total": 1
}
}
{
"error": "portal_not_visible",
"message": "The client portal :id does not exist, or is not accessible to the user who owns this API key.",
"message_localized": "A(z) :id azonosítójú ügyfélportál nem létezik, vagy nem érhető el az API-kulcs tulajdonosa számára.",
"locale": "hu",
"details": {
"portal_id": 57
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}
Válasz az ügyfélportálon
/api/agent/portals/{id}/messages
Közzétesz egy munkatársi választ egy ügyfélportál-szálban. Az ügyfél a portálon látja, és e-mailben értesítést kap (egy aláírt magic-link értesítés, nem a szöveg); a munkatársak alkalmazáson belüli értesítést kapnak. Egyszerű szöveg, tároláskor escape-elve. 404, ha a portál nem elérhető.
Útvonal-paraméterek
idkötelezőA portál azonosítója, amelyben válaszol (elérhetőnek kell lennie).
57Fejléc-paraméterek
Idempotency-KeyMinden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$Kérés törzse application/json
bodykötelezőA válasz, egyszerű szöveg. A csúcsos zárójelek elfogadottak, és tároláskor escape-elve. Legfeljebb 20000 karakter.
"Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."idempotency_keyUgyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.
^[A-Za-z0-9_\-:.]{1,128}$"b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"Válaszok
201
Létrehozva.
dataköteleződata mezői
messageA közzétett válasz.
message mezői
id8012authorAz eljáró munkatárs-felhasználó, aki a választ közzétette.
author mezői
participant_idnamekindstaff = az iroda egy munkatársa, client = a külső ügyfél.
"staff" "client" directionMindig "from_firm" egy ezen az API-n keresztül közzétett válasz esetén.
"from_firm" "from_client" bodyA közzétett üzenet sima szövegként.
created_atportalA portál (szál) és annak ügye, amelyben a választ közzétették.
portal mezői
idmattermatter mezői
idcase_numbercreated_via_apiAz ezen az API-n keresztül létrehozott üzenet eredete.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedtrue
200
Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.
dataköteleződata mezői
messageA közzétett válasz.
message mezői
id8012authorAz eljáró munkatárs-felhasználó, aki a választ közzétette.
author mezői
participant_idnamekindstaff = az iroda egy munkatársa, client = a külső ügyfél.
"staff" "client" directionMindig "from_firm" egy ezen az API-n keresztül közzétett válasz esetén.
"from_firm" "from_client" bodyA közzétett üzenet sima szövegként.
created_atportalA portál (szál) és annak ügye, amelyben a választ közzétették.
portal mezői
idmattermatter mezői
idcase_numbercreated_via_apiAz ezen az API-n keresztül létrehozott üzenet eredete.
created_via_api mezői
kind"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.
"key" "oauth" key_idAz API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.
key_nameAz a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".
user_iduseratcreatedfalseidempotent_replaytrue
400
Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.
401
A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.
403
Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.
404
Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.
405
Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).
409
Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).
413
A kérés törzse túl nagy (request_too_large).
request_too_large).
422
A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.
details.fields felsorolja a mezőhibákat.
429
A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
503
Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.
Retry-After megadja, mikor próbálja újra.
default
Bármely egyéb hiba, ugyanabban a burokban.
Kérésminták
curl -X POST 'https://www.flowyer.hu/api/agent/portals/57/messages' \
-H 'Authorization: Bearer flw_...' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
-d '{
"body": "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."
}'
const response = await fetch("https://www.flowyer.hu/api/agent/portals/57/messages", {
method: "POST",
headers: {
"Authorization": "Bearer flw_...",
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"body": "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."
}),
});
const result = await response.json();
import uuid
import requests
response = requests.post(
"https://www.flowyer.hu/api/agent/portals/57/messages",
headers={
"Authorization": "Bearer flw_...",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"body": "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk.",
},
timeout=30,
)
print(response.status_code, response.json())
{
"body": "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."
}
Válaszminták
{
"data": {
"message": {
"id": 8012,
"author": {
"participant_id": 1234,
"name": "string",
"kind": "staff"
},
"direction": "from_firm",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"portal": {
"id": 1234,
"matter": {
"id": 1234,
"case_number": "string"
}
},
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
},
"created": true
}
{
"data": {
"message": {
"id": 8012,
"author": {
"participant_id": 1234,
"name": "string",
"kind": "staff"
},
"direction": "from_firm",
"body": "string",
"created_at": "2026-10-30T09:15:00+01:00",
"portal": {
"id": 1234,
"matter": {
"id": 1234,
"case_number": "string"
}
},
"created_via_api": {
"kind": "key",
"key_id": 1234,
"key_name": "string",
"user_id": 1234,
"user": "string",
"at": "2026-10-30T09:15:00+01:00"
}
}
},
"created": false,
"idempotent_replay": true
}
{
"error": "validation_failed",
"message": "The request is invalid. See \"details.fields\" for the field-level errors.",
"message_localized": "A kérés hibás. A mezőnkénti hibákat a \"details.fields\" tartalmazza.",
"locale": "hu",
"details": {
"fields": {
"body": [
"A(z) body mező kitöltése kötelező."
]
}
},
"request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}