Kortvarsel

API-dokumentasjon

REST-API v1 · OpenAPI-spec (JSON)

Autentisering

Lag en nøkkel i dashbordet (Innstillinger → Utviklere) og send den som Bearer-token. Rate limit: 60 kall per minutt per nøkkel. All bruk logges.

Authorization: Bearer kv_live_…

Opprett hull

POST /api/v1/openings { "resource_id": "…", "starts_at": "2026-07-10T14:30:00+02:00", "duration_min": 30, "extra": { "klasse": "B" } // valgfritt, vertikal-avhengig } → 201 { "id": "…", "status": "open", "offers_sent": 8, "queued_for_morning": false }

SMS sendes aldri 21:00–07:00 – da køes utsendelsen til morgenen (queued_for_morning: true).

Status og tilbaketrekking

GET /api/v1/openings/{id} → { "status": "open|filled|expired|withdrawn", … } DELETE /api/v1/openings/{id} → { "status": "withdrawn" }

Kortvarsel-lista

POST /api/v1/waitlist { "name": "Anne Johansen", "phone": "+4791000001", "consent": true, // påkrevd "consent_at": "2026-07-08T12:00:00Z" // påkrevd – når samtykket ble gitt } GET /api/v1/waitlist → numre maskeres; full eksport kun via dashbordet

Avtaler (påminnelse + auto-utlysning)

POST /api/v1/appointments { "resource_id": "…", "starts_at": "2026-07-11T10:00:00+02:00", "customer_name": "Per", "customer_phone": "+4791000002" }

Webhooks

Registrer URL i dashbordet. Hendelser: opening.filled, opening.expired, waitlist.entry.opted_out, appointment.cancelled_by_customer. Payload signeres:

X-Kortvarsel-Event: opening.filled X-Kortvarsel-Signature: sha256=<hex HMAC-SHA256(body, secret)> { "event": "opening.filled", "created_at": "…", "data": { … } } Retry ved feil: 1, 5, 30, 120, 720 minutter – svar 2xx for å kvittere.