Hopp til innhold

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

  1. 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.

  2. Steg 2

    Test at den virker

    Hent kalenderne dine med nøkkelen. Svarer https://api.voximate.no med en liste, er du koblet til.

  3. 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/mcp

Verktø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.
Endepunkter
GET/booking/calendarsKalendere
GET/booking/servicesTjenester (varighet, pris i øre)
GET/booking/free-slots?serviceId=&from=YYYY-MM-DD&days=14&calendarIds=a,bLedige tider (maks 31 dager)
GET/booking/customers?q=&limit=50&offset=0Søk i kunder
POST/booking/customersNy kunde { name, email?, mobile?, … }
GET/booking/customers/{id}Én kunde
PATCH/booking/customers/{id}Endre en kunde
GET/booking/customers/{id}/appointmentsKundens avtaler
GET/booking/agenda?from=&to=&calendarIds=Avtaler i en periode (maks 62 dager)
POST/booking/appointmentsBook { 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}/cancelAvlys

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.