get/api/v1/sitecontent:read
Allt publicerat innehåll i ett anrop
Aggregatet en hel sajt kan renderas från: menyer, sektioner, gallerier, öppettider och avvikelser, plus `revision` att jämföra mot `/api/v1/version`. Detta är efterföljaren till det gamla öppna `/api/content`.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/versioncontent:read
Innehållets fingeravtryck
Billig poll-endpoint. `revision` är ogenomskinlig — jämför den med den du senast hämtade och läs om innehållet när den ändrats. Cachas aldrig.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/menusmenus:read
Lista publicerade menyer
Endast metadata — hämta `/api/v1/menus/{slug}` för själva menyinnehållet.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/menus/{slug}menus:read
Hämta en meny
`body` är ett strukturerat dokument per språk (`byLocale['sv-SE']`), se guiden i /docs. Opublicerade och borttagna menyer ger 404.
- slug (path, krävs)
- Menyns slug.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/sectionssections:read
Lista publicerade sidsektioner
Textsektioner (brödtext, citat) i sorteringsordning.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/galleriesgalleries:read
Lista publicerade gallerier
Inklusive bildlista och layoutkonfiguration.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/galleries/{slug}galleries:read
Hämta ett galleri
Opublicerade gallerier ger 404.
- slug (path, krävs)
- Galleriets slug.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
get/api/v1/opening-hourshours:read
Öppettider och avvikelser
`openHoursArr` är söndagsförst: varje dag är en lista av `[öppnar, stänger]` i decimaltimmar (`[]` = stängt, `[[11,14],[17,22]]` = lunch + middag). `exceptions` täcker de närmaste 60 dagarna.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.
post/api/v1/bookingsbookings:write
Skapa en bokningsförfrågan
Kräver en hemlig nyckel (`bis_sk_…`) — en publicerbar nyckel kan aldrig hålla `bookings:write`. Bokningen skapas med status `requested` och bekräftas i backoffice. Bokningar kan inte läsas via API:et: gästuppgifter lämnar aldrig Bistro.
post/api/v1/contact-messagescontact:write
Skicka ett kontaktmeddelande
Kräver en hemlig nyckel (`bis_sk_…`) — en publicerbar nyckel kan aldrig hålla `contact:write`. Meddelandet lagras och personalen notifieras per e-post. Meddelanden kan inte läsas via API:et — samma resonemang som för bokningar.
post/api/v1/newsletter/subscribersnewsletter:write
Lägg till en nyhetsbrevsprenumerant
Kräver en hemlig nyckel (`bis_sk_…`) — en publicerbar nyckel kan aldrig hålla `newsletter:write`. `consent` måste vara `true`. Idempotent — en redan prenumererande e-post svarar 200 utan att skapa en dubblett.
post/api/v1/menusmenus:write
Skapa en meny
Skapar en ny meny. Idempotent via `Idempotency-Key`-header — samma nyckel och body ger samma svar utan att skapa en dubblett. Kräver hemlig nyckel och att CMS-modulen är aktiv.
patch/api/v1/menus/{slug}menus:write
Uppdatera en meny
Uppdaterar metadata (titel, kind, published) eller body för en meny. Skicka `If-Match: "<revision>"` (från `/api/v1/version`) för optimistisk låsning. `?dry_run=true` validerar utan att skriva.
- slug (path, krävs)
- Menyns slug.
delete/api/v1/menus/{slug}menus:write
Ta bort en meny (papperskorg)
Mjuktabort — menyn hamnar i papperskorgen och kan återställas i backoffice. En hårdtabort kräver ett ytterligare steg i backoffice. Returnerar 200 med `deleted: true` om raden hittades.
- slug (path, krävs)
- Menyns slug.
post/api/v1/menus/{slug}/sectionsmenus:write
Lägg till en sektion i en meny
Lägger till en ny `menuSection`-nod i menyns body (alla locales). Idempotent via `Idempotency-Key`. Returnerar den uppdaterade menyn.
- slug (path, krävs)
- Menyns slug.
patch/api/v1/menus/{slug}/sections/{id}menus:write
Uppdatera en sektion i en meny
Uppdaterar en `menuSection`-nod (titel, layout, osv.) i menyns body. `?dry_run=true` validerar utan att skriva.
- slug (path, krävs)
- Menyns slug.
- id (path, krävs)
- Sektionens id i body-trädet.
delete/api/v1/menus/{slug}/sections/{id}menus:write
Ta bort en sektion ur en meny
Tar bort `menuSection`-noden med givet id ur menyns body.
- slug (path, krävs)
- Menyns slug.
- id (path, krävs)
- Sektionens id i body-trädet.
patch/api/v1/menus/{slug}/items/{id}menus:write
Uppdatera ett menyobjekt
Uppdaterar ett `menuItem`-nod (namn, pris, beskrivning, osv.) i menyns body. `?dry_run=true` validerar utan att skriva.
- slug (path, krävs)
- Menyns slug.
- id (path, krävs)
- Menyobjektets id i body-trädet.
delete/api/v1/menus/{slug}/items/{id}menus:write
Ta bort ett menyobjekt
Tar bort `menuItem`-noden med givet id ur menyns body.
- slug (path, krävs)
- Menyns slug.
- id (path, krävs)
- Menyobjektets id i body-trädet.
patch/api/v1/sections/{id}sections:write
Uppdatera en sidssektion
Uppdaterar en sidsektion (brödtext, citat) med id. Stöder `If-Match` och `?dry_run=true`.
- id (path, krävs)
- Sektionens uuid.
post/api/v1/galleries/{slug}/imagesgalleries:write
Importera en bild från URL
Importerar en bild till ett galleri via URL (ingen filuppladdning). Skapar en `media_assets`-rad med `source_url` och lägger till bilden i galleriet. Idempotent via `Idempotency-Key`.
- slug (path, krävs)
- Galleriets slug.
delete/api/v1/galleries/{slug}/images/{id}galleries:write
Ta bort en bild från ett galleri
Tar bort bilden med givet id (media_assets.id) från galleriet och raderar media-asset-raden.
- slug (path, krävs)
- Galleriets slug.
- id (path, krävs)
- Bildens uuid (media_assets.id).
put/api/v1/opening-hourshours:write
Ersätt veckoschemat
Ersätter hela veckoschemat atomärt — DELETE alla befintliga rader + INSERT de nya. Stöder `If-Match` för optimistisk låsning och `?dry_run=true`. Kräver hemlig nyckel och att Hours-modulen är aktiv.
post/api/v1/opening-hours/exceptionshours:write
Skapa en avvikelse
Lägger till en stängt/fullbokat-avvikelse. Idempotent via `Idempotency-Key`.
delete/api/v1/opening-hours/exceptions/{id}hours:write
Ta bort en avvikelse
Tar bort avvikelsen med givet id.
- id (path, krävs)
- Avvikelsens uuid.
get/api/v1/availabilityavailability:read
Lediga bordstider
Returnerar tillgängliga tidsluckor för ett datum eller ett intervall (max 14 dagar). Kräver scopet `availability:read` och modulen Bokningssystem. Ingår **inte** i `content:read`.
- date (query)
- Enstaka dag, format `YYYY-MM-DD`. Uteslutande med `from`/`to`.
- from (query)
- Startdag för intervall, format `YYYY-MM-DD`. Kräver `to`.
- to (query)
- Slutdag (inklusiv) för intervall, format `YYYY-MM-DD`. Max 14 dagar från `from`.
- covers (query)
- Antal gäster. Avgör vilka luckor som markeras `available`. Standard: 1.
- org (query)
- Organisationens slug. Valfri — nyckeln avgör alltid vilken organisation som läses. Anges den och inte matchar nyckeln svarar API:et 403 `organization_mismatch`.