REST API, MCP-server, webhooks og AI-agent. Lav dine egne integrationer, tilslut dine AI-agenter til boligerne, eller byg ovenpå platformen.
Dette er en vejledende oversættelse. Den norske version gælder.
curl https://api.gjestfri.com/v1/properties \
-H "Authorization: Bearer gf_live_..."Alle endpoints under /v1/* er Bearer-autentificerede. Auth-mekanismen tjekker præfikset:
gf_live_… / gf_test_… → API-nøgle (rate-limited pr. nøgle, scope-håndhævet)properties:read properties:write
bookings:read bookings:write
messages:read messages:write
pricing:read pricing:write
availability:read availability:write
cleaning:read cleaning:write
analytics:read
webhooks:manage
agent:chat:write indebærer automatisk :read.
60 requests pr. minut pr. nøgle som standard. Headere returneres på alle svar:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 47
Retry-After: 23 (kun ved 429)GET /v1/propertiesGET /v1/properties/:idPATCH /v1/properties/:idGET /v1/properties/:id/calendar?from&toGET /v1/bookings?propertyId&status&from&to&limitGET /v1/bookings/:idPOST /v1/bookings - manuel direkte bookingPATCH /v1/bookings/:idGET /v1/messages/unreadGET /v1/messages/by-booking/:idPOST /v1/messages/by-booking/:id - send til gæstGET /v1/pricing/recommendations?propertyId&from&toPOST /v1/pricing/overridesDELETE /v1/pricing/overridesGET/PUT /v1/pricing/configPOST /v1/availability/blockPOST /v1/availability/unblockGET /v1/cleaning-tasks?statusPATCH /v1/cleaning-tasks/:idGET /v1/analytics/occupancy?from&to&propertyIdGET /v1/analytics/revenue?from&to&propertyIdGET/POST/DELETE /v1/webhooksGET/POST/DELETE /v1/api-keyscurl 'https://api.gjestfri.com/v1/bookings?from=2026-06-01&limit=20' \
-H "Authorization: Bearer gf_live_..."
# →
# {
# "data": [
# {
# "id": 408,
# "propertyId": 12,
# "status": "confirmed",
# "guest": { "name": "Anna M.", "country": "NO" },
# "checkin": "2026-06-15",
# "checkout": "2026-06-18",
# "pricing": { "totalPrice": "4200", ... }
# }
# ]
# }Agenten har fuld adgang til værtens data og 60+ tools (CRUD på boliger, bookinger, rengøring, priser, hurtigsvar, kanaler, ...). Tal naturligt, så vælger agenten selv det rigtige tool.
POST /v1/agent/chat - send beskedPOST /v1/agent/confirm/:actionLogId - bekræft afventende handlingGET /v1/agent/conversationsGET /v1/agent/conversations/:id/messagesGET/PATCH /v1/agent/settingscurl https://api.gjestfri.com/v1/agent/chat \
-H "Authorization: Bearer gf_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "Hva trenger oppmerksomhet i dag?",
"channel": "ios"
}'
# →
# {
# "conversationId": 42,
# "reply": "3 ting: Anna sjekker inn kl 16 - velkomst ikke sendt. ...",
# "toolCalls": [
# { "name": "list_unread_messages", "result": { ... } }
# ]
# }Gjestfri har en fjernbaseret MCP-server på https://api.gjestfri.com/mcp. Claude, ChatGPT, VS Code, Cursor og andre MCP-klienter tilslutter sig med almindeligt login i Gjestfri og et samtykke, hvor du vælger adgangsniveau. Ingen API-nøgle, intet at installere.
Assistenten ser og gør kun det, du selv har adgang til. Penge, refusioner, afbestillinger og sletning kræver altid en ekstra bekræftelse i assistenten. Adgangen kan trækkes tilbage når som helst under Indstillinger, AI-assistenter.
Indstillinger, Forbindelser (Connectors), »Tilføj brugerdefineret forbindelse«. Indsæt adressen, log ind, og godkend:
https://api.gjestfri.com/mcpKør kommandoen herunder, og skriv /mcp i Claude Code for at logge ind:
claude mcp add --transport http gjestfri https://api.gjestfri.com/mcpIndstillinger, Forbindelser (Connectors), slå udviklertilstand (Developer mode) til, og vælg »Opret«. Indsæt samme adresse. ChatGPT bruger samme login og samtykke.
Læg dette i .vscode/mcp.json i projektet eller i den globale mcp.json:
{
"servers": {
"gjestfri": { "type": "http", "url": "https://api.gjestfri.com/mcp" }
}
}Cursor læser .cursor/mcp.json med nøglen mcpServers. Alle klienter, der understøtter Streamable HTTP og OAuth 2.1 med dynamisk registrering eller klientmetadata (CIMD), kan tilslutte sig:
{
"mcpServers": {
"gjestfri": { "url": "https://api.gjestfri.com/mcp" }
}
}list_properties / update_propertyboligerlist_bookings / get_booking_detailsbookingerlist_unread_messages / send_messagegæstebeskederget_pricing_for_date / set_price_overridepriserblock_datestilgængelighedlist_cleaning_tasks / create_cleaning_taskrengøringcreate_task / complete_taskopgaverget_finance_overviewøkonomiget_analytics_overviewstatistikcreate_payment_linkbetalingslink, kræver bekræftelsecancel_bookingafbestilling, kræver bekræftelselist_owner_statementsejere og forvaltningwhoamihvem du er logget ind somconfirm_action / cancel_actionbekræft eller forkast højrisikoGjestfrid har 202 værktøjer, og 195 af dem er tilgængelige over MCP for en ejer med fuld adgang, ud over whoami, confirm_action og cancel_action. Kataloget filtreres efter rolle og adgangsniveau, så en rengøringshjælp eller ejer kun ser sit eget. Din klient viser hele listen.
POST. Login: OAuth 2.1 med PKCE (S256), dynamisk registrering på /oauth/register og klientmetadata-dokumenter (CIMD) som klient-id./.well-known/oauth-protected-resource/mcp og /.well-known/oauth-authorization-server på api.gjestfri.com. Access token gælder én time, refresh token 90 dage.insufficient_scope, så klienten kan bede om nyt samtykke. Ressourcer og prompter kommer senere. Scopes:properties:read properties:write
bookings:read bookings:write
messages:read messages:write
pricing:read pricing:write
cleaning:read cleaning:write
payments:read payments:write
finance:read
owners:read owners:write
tasks:read tasks:write
account:read account:write
admin:read admin:writeFå push-notifikationer, når der sker noget. HMAC-SHA256-signeret payload. Maks. 3 retries med eksponentiel backoff.
curl https://api.gjestfri.com/v1/webhooks \
-H "Authorization: Bearer gf_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://din-server.no/webhook",
"events": ["booking.created", "message.received"]
}'
# Response inneholder secret kun ved opprettelse:
# { "id": 12, "secret": "whsec_...", "events": [...] }booking.created, booking.updated, booking.cancelledmessage.received, message.sentcleaning.scheduled, cleaning.completedpricing.recommendation_changedagent.action_pending_confirmation// Header: X-Gjestfri-Signature: t=1234567890,v1=abc123...
const expected = crypto
.createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");Du kan tale med agenten via iMessage/RCS/SMS, Telegram eller WhatsApp. Endpoints til at tilslutte og administrere kanaler:
GET /v1/host-channelsPOST /v1/host-channels - body: {channel, phoneNumber?}DELETE /v1/host-channels/:idPOST returnerer et deeplink (Telegram/WhatsApp) eller sender en iMessage med en 6-tegns kode. Værten verificerer ved at åbne deeplinket eller svare med koden.
En egen MCP-indgang til rejsendes assistenter, som søger, booker og følger op på opholdet, er planlagt som fjerntjeneste med adgangskode pr. booking. Pakken @gjestfri/mcp-guest er ikke udgivet, og der findes ingen opskrift endnu. Skriv til utviklere@gjestfri.com, hvis du vil være tidligt ude.