API-dokumentáció

NaptárAI API, MCP és CLI referencia

Ez az oldal a NaptárAI programozható felületeinek teljes referenciája: minden nyilvános REST-végpont, a parancssori eszköz összes parancsa, és az MCP-szerver eszközei. Ha még nem döntötted el, melyik felület kell, a fejlesztői áttekintés onnan indul.

Végpontonként külön oldal, paraméterekkel és futtatható példákkal, a teljes dokumentációban van: naptarai.hu/dokumentacio/api/vegpontok.

Hogyan működik

A NaptárAI három felületen ugyanazt a munkaterületet kezeli, mint a webes felület. A REST API a saját kódodból, a parancssori eszköz a terminálból és a szkriptjeidből, az MCP-szerver pedig egy AI-ügynökből. Mindhárom ugyanazokat a jogosultságokat és korlátokat használja, ezért amit az egyiken megtehetsz, megteheted a másikon is.

A REST API alapcíme https://naptarai.hu/api/public/v1. A verzió az útvonalban van, és minden válasz JSON.

Csatlakozás három lépésben

1. Regisztrálj a naptarai.hu/regisztracio címen. Nincs értékesítési hívás, nincs várólista.
2. Kösd be legalább egy közösségi fiókodat a felületen. Ezt a lépést API-ból nem lehet elvégezni, mert a platform beleegyezést kér egy embertől.
3. Hozz létre magadnak egy kulcsot: Beállítások → Fejlesztők. A kulcs egyszer látszik, a létrehozás pillanatában.

Az első hívásod ellenőrizheti, hogy minden a helyén van. Ez a végpont kulcs nélkül is válaszol, és megmondja, hol találsz meg mindent:

curl https://naptarai.hu/api/public/v1/status

Az első hitelesített hívás pedig a platformjaidat listázza:

curl https://naptarai.hu/api/public/v1/integrations \
  -H "Authorization: psty_a_kulcsod"

Hitelesítés

Kétféle hitelesítő adat működik. Az API-kulcs a teljes Authorization fejléc értéke (psty_…), és a saját kódodhoz való. Az OAuth 2.1 hozzáférési token (Bearer pos_…) akkor kell, ha egy másik alkalmazás a te felhasználóid nevében fér hozzá a NaptárAI-hoz; a folyamat PKCE-vel megy, a metaadatok pedig géppel olvashatók.

Egy kulcs jogosultsága a tulajdonosa aktuális szerepkörével mozog: ha valaki lefokozódik vagy kikerül a munkaterületről, a kulcsa azonnal annyit tud, amennyit ő. Ha egy kulcs több munkaterülethez tartozik, a showorg fejléc választ közülük.

Végpontok

Minden útvonal a https://naptarai.hu/api/public/v1 alatt van. A „Jogosultság" oszlop azt mutatja, milyen scope kell a kulcsra; ha hiányzik, a válasz 403, és megnevezi a hiányzót.

MetódusÚtvonalMit csinálJogosultság
GET/statusÁllapot és felderítés. Az egyetlen útvonal, amely kulcs nélkül is válaszol.-
GET/is-connectedEllenőrzi, hogy a kulcs érvényes munkaterületre mutat-e.-
GET/propertiesA munkaterület szálláshelyei azonosítóval, státusszal, pénznemmel.pms:read
GET/properties/:idEgy szálláshely: cím, egységek, árcsomagok.pms:read
GET/properties/:id/unitsEgy szálláshely kiadható egységei és árcsomagjai.pms:read
GET/unitsKiadható egységek, opcionálisan egy szálláshelyre szűrve.pms:read
GET/calendarNaptár from/to szerint: eladható, foglalt és zárolt éjszakák egységenként.pms:read
GET/reservationsFoglalások időszak, státusz, egység vagy vendégnév szerint.pms:read
GET/reservations/:idEgy foglalás: dátumok, vendég, összegek, fizetés.pms:read
POST/reservationsKézi vagy direkt foglalás rögzítése. OTA-foglalást soha nem kell begépelni.pms:write
POST/reservations/:id/cancelFoglalás lemondása, az éjszakák visszakerülnek a piacra.pms:write
PUT/reservations/:id/datesFoglalás dátumainak (és opcionálisan egységének) mozgatása.pms:write
GET/ratesÉjszakai árak és tartózkodási korlátok árcsomagonként.pms:read
PUT/ratesÁr és korlátok beállítása időszakra, lapos törzzsel.pms:write
POST/blocksÉjszakák kivétele az értékesítésből (saját használat vagy karbantartás).pms:write
DELETE/blocksZárolás feloldása unitId, from és to szerint.pms:write
GET/connectionsOTA-kapcsolatok állapota, utolsó szinkron és utolsó hiba.pms:read
GET/reports/summaryBevétel, kihasználtság, ADR egy időszakra, csatornánként.pms:read
GET/messagesVendégüzenet-szálak, opcionálisan egy foglalásra szűrve.pms:read
GET/messages/:idEgy beszélgetés üzenetei időrendben.pms:read

A pontos kérés- és válaszsémákat, mezőnként, az OpenAPI 3 leírás tartalmazza. Abból ügyfélkódot is tudsz generáltatni.

Példa: REST-hívás

A dátum mindig UTC, ISO 8601 formátumban. A type lehet draft, schedule vagy now.

curl -X POST https://naptarai.hu/api/public/v1/posts \
  -H "Authorization: psty_a_kulcsod" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "schedule",
    "date": "2026-09-15T09:00:00.000Z",
    "shortLink": false,
    "posts": [{
      "integration": { "id": "a_platform_azonositoja" },
      "value": [{ "content": "<p>Sziasztok!</p>" }]
    }]
  }'

A válasz platformonként egy sort ad vissza, benne a postId értékkel, amit a törléshez és az állapotváltáshoz használsz.

Hibák

Minden hiba JSON. A NaptárAI által kiváltott hibákban a msg mező hordozza az emberi mondatot; a kérés formai ellenőrzésén elbukó hívások a keretrendszer alakját kapják (statusCode, message, error). A jogosultsági 403 megnevezi a hiányzó scope-ot és a kulcstulajdonos szerepkörét, mert a leggyakoribb ok nem a rossz kulcs, hanem a lefokozott felhasználó.

A státuszkód mondja meg, érdemes-e újrapróbálni: a 400, 401, 403 és 404 addig nem múlik el, amíg nem változtatsz valamin; a 429 és az 5xx igen. Az ApiError séma mindezt géppel olvashatóan is leírja az OpenAPI dokumentumban.

Hívási korlátok

Minden válasz viszi a RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (másodpercben, nem időbélyeg) és RateLimit-Policy fejléceket. A 429 mellé Retry-After is érkezik. Minden útvonalnak külön kerete van, kulcsonként. Ne a 429-re várj: a maradék értékből előre tudsz lassítani.

Verziózás és kivezetés

A verzió az útvonalban van: minden nyilvános hívás a /public/v1 alatt él. Törő változás új verzióként jelenne meg (/public/v2), a v1 pedig tartja a szerződését. Bővítés , új opcionális mező, új útvonal, új felsorolt érték, a v1-en belül történik, ezért a kódod hagyja figyelmen kívül azokat a mezőket, amiket nem ismer.

Ha egy útvonalat kivezetnénk, a válasza Deprecation: true fejlécet kap, mellé Sunset fejlécben a dátumot, ami után már nem működik. Ez a dátum soha nem lehet közelebb 180 napnál. Minden válasz visz egy Link fejlécet is rel="sunset" kapcsolattal, ami erre a szakaszra mutat. Jelenleg semmi nincs kivezetés alatt.

Parancssori eszköz

A parancs neve szh, ugyanezt az API-t használja terminálból. A kézikönyv a dokumentációban van. Az npm-csomag még nincs kiadva. Belépés:

szh auth:login
szh integrations:list

A bejelentkezés böngészőt nyit, a kulcsot pedig a gépeden tárolja, így a szkriptjeidbe nem kell beleírnod. Minden parancs tud --json kimenetet adni, ami gépi feldolgozásra való.

Hitelesítés
stay loginBöngészős belépés vagy API-kulcs.
stay logoutA tárolt kulcs törlése.
Naptár és árak
stay calendar --next 14dNaptár a következő N napra.
stay propertiesSzálláshelyek listája.
stay unitsKiadható egységek.
stay rates set <egység> <tól>:<ig> <árFt>Éjszakai ár beállítása időszakra.
stay block <egység> <tól>[:<ig>]Éjszakák zárolása.
stay unblock <egység> <tól>[:<ig>]Zárolás feloldása.
Foglalások
stay bookingsFoglalások listája.
stay booking <id>Egy foglalás részletei.
stay revenue --month 2026-08Havi bevétel.
Csatornák és üzenetek
stay channels statusOTA-kapcsolatok állapota.
stay messages listVendégüzenet-szálak.

MCP-szerver

Az MCP-szerver címe https://naptarai.hu/api/mcp-oauth, streamable HTTP átvitellel, OAuth 2.1 hitelesítéssel. Az ügynököd ezeket az eszközöket látja:

EszközMit csinálÍr?
get_workspace_contextA pontos idő UTC-ben, a felhasználó időzónája és a munkaterület neve.nem
properties_listA munkaterület szálláshelyei azonosítóval, státusszal, pénznemmel.nem
properties_getEgy szálláshely részletei: cím, be- és kijelentkezés, egységek, árcsomagok.nem
units_listEgy szálláshely kiadható egységei és azok árcsomagjai.nem
calendar_getA naptár: éjszakánként és egységenként eladható szoba, foglalások, zárolások.nem
availability_getA szabad éjszakák és az összefüggő szabad időszakok, hossz és nap szerint szűrve.nem
rates_getÉjszakai árak és tartózkodási korlátozások árcsomagonként.nem
reservations_listFoglalások szálláshely, egység, időszak, státusz, forrás vagy név szerint.nem
reservations_getEgy foglalás részletei: dátumok, vendég, létszám, összegek, fizetési állapot.nem
guests_getEgy vendég azonosító alapján, vagy keresés név és e-mail szerint.nem
channels_statusAz OTA-kapcsolatok állapota, utolsó szinkron és utolsó hiba.nem
analytics_summaryMai érkezések és távozások, havi kihasználtság, bevétel, direkt/OTA arány.nem
website_getA saját foglalási weboldal állapota és tartalma. Egy szálláshelyre piszkozatot hoz létre.igen
calendar_blockÉjszakák kivétele az értékesítésből (saját használat vagy karbantartás).igen
calendar_unblockZárolás feloldása. Saját használatú zárolást csak külön megerősítéssel.igen
rates_setEgy éjszakai ár beállítása időszakra, akár csak adott hétköznapokra.igen
rates_adjustMeglévő árak mozgatása százalékkal vagy fix összeggel. Legfeljebb ±50%.igen
restrictions_setMinimum és maximum éjszaka, érkezés- és távozászárás, értékesítés leállítása.igen
reservation_createDirekt vagy kézi foglalás rögzítése. OTA-foglalást soha nem kell begépelni.igen
reservation_cancelFoglalás lemondása. Megerősített foglaláshoz külön megerősítés kell.igen
message_draftVendégüzenet előkészítése. Nem küld el és nem tárol semmit.igen

A kapcsolat hitelesítést kér: hitelesítő adat nélkül a szerver 401-et ad, és a WWW-Authenticate fejlécben megmondja, hol lehet engedélyt kérni. Ez nem hiba, hanem az MCP szabvány szerinti folyamat kezdete. Az eszközök listája ettől függetlenül olvasható a manifesztből.

Gépi olvasásra

Minden dokumentum, amit egy ügynök vagy egy generátor kér:

Kezdd el egy naptárral

A foglalásaid legyenek egy helyen, ne nyolc böngészőfülön

Kösd össze a szállásodat, lásd együtt a foglalásokat, és tereld a vendégeket a 0% platformjutalékos saját oldaladra.

Ingyenes próba indítása
7 nap ingyen · 0% foglalási jutalék · bármikor lemondható