Blitz API

Blitz is one source of truth for a restaurant: its opening hours, menu, bookings, reviews and guests. This API lets your own system read and change that data, and lets a web page of your own take bookings.

Base URL: https://api.blitz-app.dk · JSON over HTTPS · API reference · MCP server

Authentication

Send an API key as a bearer token:

curl https://api.blitz-app.dk/api/v1/restaurants/<restaurant_id>/reservations \
  -H "Authorization: Bearer blitz_sk_test_..."

A key belongs to one restaurant. It is issued in the dashboard under Indstillinger → API-nøgler by someone with team access, and the secret is shown once, at creation. Lost keys cannot be read back: revoke the key (it stops working on the very next call) and issue a new one. Keep it on your server; never put it in a web page.

The Reservation and Review APIs listed below need no key.

Test and live keys

blitz_sk_test_… keys are available from day one, before the restaurant has gone live. blitz_sk_live_… keys are issued once it has. Both reach the same endpoints; a test key is safe to wire into CI:

Permissions

Every key holds an explicit list of permissions, chosen when it is created and changed only by editing the key — changing a team role does not change any key. Each endpoint in the reference lists the permission it requires (x-blitz-permissions); a call without it is answered 403. A key can hold at most what the person who issued it holds, and at least one permission. Some permissions can never be given to a key.

PermissionWhat it allows (Danish)
Reservationer
reservations.readkan se bordbogen og hvem der er ventet ind
reservations.writekan tage imod en booking og flytte den til et andet tidspunkt eller bord
reservations.cancelkan afbestille en gæsts booking og give bordet fri igen
floorplan.readkan se salens borde og hvordan de er sat op
floorplan.writekan tegne salen om — flytte borde, ændre antal pladser og oprette nye områder
Takeaway
orders.readkan se de takeaway-ordrer der kommer ind, og hvad der er i dem
orders.advancekan tage en ordre videre gennem køkkenet — modtaget, i gang, klar, afhentet
Menukort
menu.readkan se menukortet og hvad retterne koster
menu.writekan ændre retter og kategorier på hjemmesiden og i takeaway
menu.price.writekan ændre priser, både på hjemmesiden og i takeaway
menu.availability.writekan sætte en ret som udsolgt og sætte den til salg igen
Hjemmeside
website.readkan se hjemmesiden som den ser ud nu, og den kladde der ikke er udgivet endnu
website.draft.writekan rette tekst, billeder og sider i kladden, uden at det bliver offentligt
website.publishkan udgive kladden, så ændringerne står på den offentlige hjemmeside
website.rollbackkan sætte hjemmesiden tilbage til en tidligere udgave
Anmeldelser
reviews.readkan læse anmeldelser og se hvordan bedømmelsen udvikler sig
reviews.replykan svare offentligt på en anmeldelse i restaurantens navn
reviews.reportkan indberette en anmeldelse der bryder reglerne
reviews.settings.writekan ændre hvilke kilder der hentes anmeldelser fra, og hvordan de vises på hjemmesiden
Henvendelser
henvendelser.readkan se henvendelser fra gæster og Blitz, og hvem der venter på svar
henvendelser.replykan svare gæster og Blitz, skrive interne noter og markere en henvendelse som løst
henvendelser.handoffkan sende en henvendelse videre til Blitz, så Blitz kan læse og svare i den
henvendelser.settings.writekan ændre hvilken adresse restauranten får besked på om nye henvendelser
Økonomi
analytics.readkan se besøgstal, antal gæster og hvordan travlheden fordeler sig
revenue.readkan se omsætningen og hvad en periode har givet
revenue.writekan taste en dags omsætning ind og rette den bagefter
Vagtplan
shifts.readkan se vagtplanen og om Workfeed er koblet til
shifts.writekan oprette, rette, flytte og slette kladdevagter i vagtplanen
shifts.publishkan udgive kladdevagter, så medarbejderne ser dem i Workfeed (kan ikke fortrydes)
shifts.connectkan koble Workfeed til, skifte nøglen og fjerne forbindelsen
staff.readkan se medarbejderlisten fra Workfeed med e-mail og telefon
staff.managekan oprette og rette medarbejdere i Workfeed, som sender dem en invitation
shifts.costs.readkan se lønomkostning, omsætning og lønprocent for dage og uger i vagtplanen
staff.wages.readkan se hvad den enkelte vagt koster i løn
Gæster
guests.readkan se gæstelisten og hvor ofte den enkelte gæst har været her
contacts.pii.readkan se navn, telefonnummer og e-mail i klartekst på gæster, takeaway-kunder og anmeldere
guests.writekan rette en gæsts navn, telefonnummer og e-mail
guests.erasekan slette en gæsts oplysninger for altid, når gæsten beder om det not available to API keys
Indstillinger
settings.readkan se restaurantens oplysninger og åbningstider
hours.writekan ændre åbningstider og lukkedage — ét sted, og det slår igennem alle steder
settings.writekan ændre navn, adresse, kontaktoplysninger og de øvrige indstillinger
onboarding.runkan køre opsætningen igennem og hente oplysninger fra restaurantens nuværende hjemmeside
Team
team.readkan se hvem der har adgang til restauranten
team.managekan invitere kolleger, sætte en adgang på pause og åbne den igen not available to API keys
team.password.resetkan sende en kollega et link til at vælge en ny adgangskode not available to API keys
roles.managekan bygge roller og bestemme hvad kollegerne må not available to API keys
Abonnement
billing.readkan se abonnement, fakturaer og hvad Blitz koster
billing.managekan skifte abonnement, rette betalingskortet og opsige not available to API keys

Guest contact details

Without contacts.pii.read a key sees guests masked: names as Anders J., phone numbers as a fixed-width string ending in the last two digits, e-mail addresses as a•••@example.dk. The permission lifts the mask on guests, bookings, reviews and enquiries alike. Grant it only to systems that genuinely need to contact guests.

Errors

Errors carry an HTTP status and a JSON body with a detail field. The text is written for the restaurant and is usually Danish — show it, but branch on the status.

StatusMeaning
400The request is understood but refused (for example an invalid combination).
401Missing, malformed, unknown or revoked key.
403The key lacks the permission, or the restaurant's plan does not include the module.
404No such resource — or a resource that belongs to another restaurant.
409A conflict with current state, such as a fully booked time.
422The body or parameters failed validation; detail lists the fields.
429Too many requests. Honour Retry-After.

Rate limits

The edge allows about 30 requests per second per client address, with a short burst allowance; beyond that you get 429. Individual endpoints add their own limits (the public booking endpoint limits per address and per phone number), and test keys have the daily write cap above.

Public APIs (no key)

Two APIs are open to a guest's browser and send permissive CORS headers, so a page on a restaurant's own domain can call them directly. Their paths start with /api/v1/public/restaurants/<restaurant_id>/ and are listed in the reference under reservations and reviews.

Reservation API

  1. GET .../rules — largest online party, the party size from which a booking becomes a request, the cancellation cut-off. Use it to build your form.
  2. GET .../availability?at=&party_size= — advisory; the booking call decides.
  3. GET .../privacy-policy — show it as a line with a link under the submit button.
  4. POST .../reservations — 201 with status confirmed or requested (the restaurant answers a request by e-mail). guest_email is required, marketing_consent must be an unticked checkbox and is never inferred. The response carries manage_token once.
  5. GET .../reservations/{id}?token= and POST .../reservations/{id}/cancel?token= — the guest's own booking. Wrong token, unknown id and finished bookings all answer 404.

Review API

Shows a restaurant's published reviews and takes a guest's review via the link in their invitation. See the reviews tag in the reference.