API og MCP for utviklere
Koble egne systemer, nettsiden, CRM, n8n og AI-assistenter til kalenderen og kunderegisteret. Én API-nøkkel, et vanlig REST-API og en MCP-server som Claude og Cursor kan bruke direkte.
Kom i gang på tre steg
Steg 1
Lag en API-nøkkel
Logg inn, gå til Innstillinger → API og integrasjoner og velg Ny API-nøkkel. Velg Les eller Les og skriv. Nøkkelen vises én gang.
Steg 2
Test at den virker
Hent kalenderne dine med nøkkelen. Svarer https://api.voximate.no med en liste, er du koblet til.
Steg 3
Koble til systemet eller AI-en
Bruk REST-API-et fra din egen kode, eller legg MCP-serveren inn i Claude, Cursor eller n8n.
curl "https://api.voximate.no/booking/calendars" \
-H "Authorization: Bearer vox_live_…"AI-assistenter med MCP
MCP-serveren lar en AI-assistent finne ledig tid, finne eller lage kunden og booke, med de samme reglene som i appen. En lesenøkkel får bare verktøyene som henter data.
https://api.voximate.no/booking/mcpVerktøy
list_calendars, list_services, find_free_slots, search_customers, get_customer, list_customer_appointments, create_customer, list_appointments, get_appointment, create_appointment, update_appointment, cancel_appointment
Claude Code
Kjør i terminalen.
claude mcp add --transport http voximate-booking https://api.voximate.no/booking/mcp --header "Authorization: Bearer vox_live_…"Cursor
I ~/.cursor/mcp.json.
{
"mcpServers": {
"voximate-booking": {
"url": "https://api.voximate.no/booking/mcp",
"headers": {
"Authorization": "Bearer vox_live_…"
}
}
}
}Claude Desktop
I claude_desktop_config.json, via mcp-remote.
{
"mcpServers": {
"voximate-booking": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.voximate.no/booking/mcp",
"--header",
"Authorization:${AUTH}"
],
"env": {
"AUTH": "Bearer vox_live_…"
}
}
}
}n8n
Bruk noden MCP Client Tool. Sett Server Transport til «HTTP Streamable», endepunktet til https://api.voximate.no/booking/mcp, og Header Auth med navnet Authorization og verdien Bearer vox_live_….
REST-API
- Base-URL: https://api.voximate.no
- Send nøkkelen i headeren Authorization: Bearer vox_live_…
- Nøkkelen gir bare tilgang til /booking/*.
- JSON inn og ut.
- Tider er i Europe/Oslo: date er YYYY-MM-DD, startMinute og endMinute er minutter etter midnatt (600 = 10:00).
- En lesenøkkel kan bare bruke GET.
| GET | /booking/calendars | Kalendere |
| GET | /booking/services | Tjenester (varighet, pris i øre) |
| GET | /booking/free-slots?serviceId=&from=YYYY-MM-DD&days=14&calendarIds=a,b | Ledige tider (maks 31 dager) |
| GET | /booking/customers?q=&limit=50&offset=0 | Søk i kunder |
| POST | /booking/customers | Ny kunde { name, email?, mobile?, … } |
| GET | /booking/customers/{id} | Én kunde |
| PATCH | /booking/customers/{id} | Endre en kunde |
| GET | /booking/customers/{id}/appointments | Kundens avtaler |
| GET | /booking/agenda?from=&to=&calendarIds= | Avtaler i en periode (maks 62 dager) |
| POST | /booking/appointments | Book { calendarId, date, startMinute, endMinute, customerId?, serviceIds?, customerNote?, internalNote? } |
| GET | /booking/appointments/{id} | Én avtale |
| PATCH | /booking/appointments/{id} | Endre en avtale. Flytt ved å sende date, startMinute og endMinute sammen. |
| POST | /booking/appointments/{id}/cancel | Avlys |
Hent ledige tider
curl "https://api.voximate.no/booking/free-slots?serviceId=SERVICE_ID" \
-H "Authorization: Bearer vox_live_…"Book en avtale
curl -X POST "https://api.voximate.no/booking/appointments" \
-H "Authorization: Bearer vox_live_…" \
-H "Content-Type: application/json" \
-d '{
"calendarId": "CALENDAR_ID",
"date": "2026-11-03",
"startMinute": 600,
"endMinute": 660,
"customerId": "CUSTOMER_ID",
"serviceIds": ["SERVICE_ID"],
"customerNote": "Booket fra nettsiden"
}'Feilkoder
- 401
- API_KEY_INVALID
- Ugyldig, utløpt eller slettet nøkkel.
- 403
- API_KEY_READ_ONLY
- En lesenøkkel prøvde å skrive.
- 403
- API_KEY_SCOPE
- Adressen ligger utenfor /booking.
- 403
- forbidden
- Rollen til brukeren som lagde nøkkelen, har ikke tilgang.
- 402
- Booking-abonnementet er utløpt.
- 409
- slot_taken
- Tiden ble nettopp tatt. Hent ledige tider på nytt.
- 429
- RATE_LIMIT_EXCEEDED
- For mange forespørsler. Vent så mange sekunder som Retry-After sier.
Behandle nøkkelen som et passord. Lag én nøkkel per system, så kan du slette én uten å stoppe de andre.
Spørsmål og svar
Koster API-et noe ekstra?
Nei. API, MCP og webhook er med i alle pakker.
Hva kan en nøkkel se?
Bare bookingdataene til bedriften din, og bare det brukeren som lagde nøkkelen har tilgang til. En lesenøkkel kan ikke endre noe.
Hvordan stopper jeg en integrasjon?
Slett nøkkelen under Innstillinger → API og integrasjoner. Den slutter å virke innen ett minutt.
Hvilke AI-verktøy virker med MCP-serveren?
Alle MCP-klienter som støtter Streamable HTTP med en Authorization-header: Claude Code, Cursor, Claude Desktop via mcp-remote, n8n og egne agenter. Tilkoblinger som krever OAuth støttes ikke ennå.
Får jeg beskjed når noe skjer?
Ja. Med webhook får systemet ditt et signert varsel når en avtale lages, endres, flyttes eller avlyses.
Klar til å koble bookingen til resten av systemene dine?
14 dager gratis med alle funksjoner. Ingen kort, ingen oppstartskostnad. Bookingsiden din kan være oppe i dag.