REST-API, MCP-server, webhooks och AI-agent. Skapa egna integrationer, koppla dina AI-agenter till boendena, eller bygg ovanpå plattformen.
Det här är en artighetsöversättning. Den norska versionen gäller.
curl https://api.gjestfri.com/v1/properties \
-H "Authorization: Bearer gf_live_..."Alla endpoints under /v1/* är Bearer-autentiserade. Auth-mekanismen kontrollerar prefixet:
gf_live_… / gf_test_… → API-nyckel (rate-limitad per nyckel, scopes upprätthålls)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 innebär automatiskt :read.
60 requests/minut per nyckel som standard. Headers returneras på alla 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 - manuell direktbokningPATCH /v1/bookings/:idGET /v1/messages/unreadGET /v1/messages/by-booking/:idPOST /v1/messages/by-booking/:id - skicka till 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 full åtkomst till värdens data och 60+ tools (CRUD på boenden, bokningar, städning, priser, snabbsvar, kanaler, ...). Prata naturligt, agenten väljer rätt tool själv.
POST /v1/agent/chat - skicka meddelandePOST /v1/agent/confirm/:actionLogId - bekräfta väntande åtgärdGET /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 fjärrbaserad MCP-server på https://api.gjestfri.com/mcp. Claude, ChatGPT, VS Code, Cursor och andra MCP-klienter ansluter med vanlig inloggning i Gjestfri och ett samtycke där du väljer tillgångsnivå. Ingen API-nyckel, inget att installera.
Assistenten ser och gör bara det du själv har tillgång till. Pengar, återbetalningar, avbokningar och radering kräver alltid en extra bekräftelse i assistenten. Tillgången kan återkallas när som helst under Inställningar, AI-assistenter.
Inställningar, Kopplingar (Connectors), ”Lägg till anpassad koppling”. Klistra in adressen, logga in och godkänn:
https://api.gjestfri.com/mcpKör kommandot nedan och skriv /mcp i Claude Code för att logga in:
claude mcp add --transport http gjestfri https://api.gjestfri.com/mcpInställningar, Kopplingar (Connectors), slå på utvecklarläge (Developer mode) och välj ”Skapa”. Klistra in samma adress. ChatGPT använder samma inloggning och samtycke.
Lägg det här i .vscode/mcp.json i projektet, eller i den globala mcp.json:
{
"servers": {
"gjestfri": { "type": "http", "url": "https://api.gjestfri.com/mcp" }
}
}Cursor läser .cursor/mcp.json med nyckeln mcpServers. Alla klienter som stöder Streamable HTTP och OAuth 2.1 med dynamisk registrering eller klientmetadata (CIMD) kan ansluta:
{
"mcpServers": {
"gjestfri": { "url": "https://api.gjestfri.com/mcp" }
}
}list_properties / update_propertyboendenlist_bookings / get_booking_detailsbokningarlist_unread_messages / send_messagegästmeddelandenget_pricing_for_date / set_price_overridepriserblock_datestillgänglighetlist_cleaning_tasks / create_cleaning_taskstädningcreate_task / complete_taskuppgifterget_finance_overviewekonomiget_analytics_overviewstatistikcreate_payment_linkbetalningslänk, kräver bekräftelsecancel_bookingavbokning, kräver bekräftelselist_owner_statementsägare och förvaltningwhoamivem du är inloggad somconfirm_action / cancel_actionbekräfta eller förkasta högriskGjestfrid har 202 verktyg, och 195 av dem är tillgängliga över MCP för en ägare med full tillgång, utöver whoami, confirm_action och cancel_action. Katalogen filtreras efter roll och tillgångsnivå, så en städare eller ägare ser bara sitt. Din klient visar hela listan.
POST. Inloggning: OAuth 2.1 med PKCE (S256), dynamisk registrering på /oauth/register och klientmetadatadokument (CIMD) som klient-id./.well-known/oauth-protected-resource/mcp och /.well-known/oauth-authorization-server på api.gjestfri.com. Åtkomsttoken gäller en timme, refresh-token 90 dagar.insufficient_scope, så att klienten kan be om nytt samtycke. Resurser och prompter kommer senare. Områdena: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-notiser när något händer. HMAC-SHA256-signerad payload. Max 3 retries med exponentiell 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");Agenten kan nås via iMessage/RCS/SMS, Telegram eller WhatsApp. Endpoints för att koppla och hantera kanaler:
GET /v1/host-channelsPOST /v1/host-channels - body: {channel, phoneNumber?}DELETE /v1/host-channels/:idPOST returnerar en deeplink (Telegram/WhatsApp) eller skickar ett iMessage med en kod på 6 tecken. Värden verifierar genom att öppna deeplinken eller svara med koden.
En egen MCP-ingång för resenärers assistenter, som söker, bokar och följer upp vistelsen, är planerad som fjärrtjänst med åtkomstkod per bokning. Paketet @gjestfri/mcp-guest är inte publicerat, och det finns ingen guide ännu. Skriv till utviklere@gjestfri.com om du vill vara tidigt ute.