API-referanse

Dette er API-et som webappen og telefonappene bruker. Referansen leses rett fra OpenAPI-dokumentet appene bygges mot, så den følger koden. Beskrivelsene er på engelsk. Det finnes ingen API-nøkler ennå, så siden har ingen «prøv»-knapp. Alle kall går fra en innlogget økt.

Hva det er

Alt ligger under /api/v1 og snakker JSON. Appenes klient og denne referansen lages begge fra OpenAPI-dokumentet på /openapi.json, og et endepunkt uten sammendrag eller tag stopper bygget.

Innlogging

POST /api/v1/auth/login (eller en sosial innlogging) setter cookien bryti_session. Send den med på hvert kall. Et kall uten gyldig sesjon svarer 401. Webappens eget opphav proxyer /api/*, så cookien er førstepart, og det finnes ingen CORS. Ruter merket «Trenger ingen sesjon» kan du kalle før du har en.

Versjoner

Et bygg sender versjonen sin i X-App-Version. Er bygget eldre enn laveste støttede appversjon, svarer hvert kall 426 Upgrade Required med problemet app-version-unsupported, og appen må oppdateres. GET /api/v1/app/version sier hvilken versjon det er.

Feil

Feil kommer som RFC 9457 application/problem+json. Kroppen har en fast type-URL under https://bryti.app/problems/, title, status, en detail til den som leser, en code til programmet og kallets traceId. 400 betyr at API-et ikke kunne bruke forespørselen, og 403 at rollen ikke har lov. 404 betyr at det ikke finnes, og 409 at tilstanden har endret seg siden du leste den.

Grenser og kvote

Innlogging, geokoding, ventelisten og produktsøk er begrenset per adresse, og et kall over grensa svarer 429 med Retry-After i sekunder. KI-kvoten svarer også 429, uten Retry-After, og den fornyes med planens periode.

Sporing

Oppgi X-Trace-Id fra svaret når du melder fra om et problem. Server-Timing sier hvor tida gikk, og X-Diagnostics bryter det ned når kallet ber om det med X-Diagnostics: 1 eller ?diagnostics=1.

Et første kall

curl -b "bryti_session=…" "https://bryti.app/api/v1/me"

Områder

  • Innlogging og konto
    Sign up, sign in, social login, and the caller's own account.
  • Husholdninger
    The household itself: create it, read it, change its settings.
  • Medlemmer
    The people at the table — adults, Juniors, babies and guests.
  • Medlemskap og invitasjoner
    Who belongs to which household, and how they got in.
  • Kosthensyn
    Allergies, intolerances and diets the planner filters dishes by.
  • Preferanser
    What the household likes and does not like.
  • Regler
    Household meal rules the planner plans around.
  • Hendelser
    Meal events on the calendar that change what a day needs.
  • Ukeplaner
    The week: plan it, read it, swap a dinner, lock a day.
  • Middagsforslag
    Dinner candidates Bryti suggests for a day.
  • Oppskrifter
    The household's recipe book.
  • Ønsker
    The household's wish list: dishes the members would like, and their thumbs-up.
  • Import
    Recipes and receipts brought in from photos, files and links.
  • Matlager og handleliste
    The pantry, leftovers and the shopping list.
  • Butikker
    The stores the household shops at and the prices Bryti has seen.
  • Utfall
    What happened after a dinner: cooked, skipped, leftovers.
  • Hjem
    The day as the home screen shows it.
  • Chat
    Bryti in the chat: conversations, turns and proposed actions.
  • Kalendere
    Subscribe to the week from a calendar app.
  • Varsler
    The devices that receive push notifications.
  • Forbruk
    AI credits used and left this period.
  • Abonnement
    Subscriptions and the Stripe checkout.
  • Personvern
    Export the household's data, or delete it.
  • Inntak og venteliste
    Whether sign-up is open, and the waiting list.
  • App og versjon
    Version floor and health, for the apps and the platform.
  • Åpne data
    Data Bryti shares back, such as the Open Food Facts derivative under ODbL.
  • Tilbakemelding
    Report a problem from inside the app.