API

Dokumentation för Matrummets REST-API. Tillgänglig som ren text för agenter och verktyg.

Autentisering

Alla anrop kräver headern x-api-key:

x-api-key: sk_...

Skapa nycklar under Inställningar → API-nycklar efter inloggning. Nyckeln valideras av PostgREST och ger tillgång till din data via row-level security (RLS).

Hushållskopplade anrop

Skafferi-, inköpsliste- och hushållsoperationer kan vara kopplade till ett hushåll. Inkludera X-Active-Home-Id för att välja hushåll:

X-Active-Home-Id: <home-uuid>

Hämta ditt hushålls-ID via get_user_homes eller get_home_info.

Bas-URL

https://api.matrummet.se

Alla RPC-anrop använder POST /rpc/<funktionsnamn> med JSON-kropp. Tabell-/vyfrågor använder GET /<vynamn>.

Snabbstart

Verifiera att din nyckel fungerar:

bash
curl -s https://api.matrummet.se/rpc/current_user_info \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -X POST

Returnerar din användarinfo (e-post, namn, roll).

Bilder

Bilder hanteras av en separat bildtjänst på api.matrummet.se. Ladda upp en bild, få tillbaka ett UUID, och koppla det till ett recept via p_image.

POST /upload

Ladda upp en bild. Returnerar ett UUID som identifierar bilden. Tjänsten genererar automatiskt fem storlekar (thumb, small, medium, large, full) i WebP-format.

bash
curl -s https://api.matrummet.se/upload \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -F "file=@min-bild.jpg"
svar
{"filename": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}

Max filstorlek: 20 MB. Godkända format: JPEG, PNG, WebP och andra vanliga bildformat.

GET /images/:id/:size

Hämta en bild i en specifik storlek. Storleken kan utelämnas (standard: full).

bash
curl -s https://api.matrummet.se/images/BILD_UUID/thumb -o thumb.webp
ParameterTypKrävsBeskrivning
thumb320x240Miniatyrbild för listor och kort
small640x480Liten bild för mobilvyer
medium960x720Mellanstor bild för receptsidor
large1280x960Stor bild för desktop
full1920x1440standardOriginalbild i full upplösning

Bildvisning kräver ingen autentisering. Alla bilder serveras som image/webp med lång cache och ETag-stöd.

DELETE /images/:id

Radera en bild och alla dess storlekar. Kräver en intern service-token och är inte tillgänglig via API-nyckel.

Bilder rensas automatiskt via en databasutlösare (trigger) när ett recept raderas eller när bilden byts ut. Du behöver inte radera bilder manuellt när du använder API:et.

Operationen är idempotent — att radera en redan raderad bild returnerar fortfarande {"success": true}.

Koppla bild till recept

Använd UUID:t från uppladdningen som p_image vid insert_recipe eller update_recipe:

bash
# 1. Ladda upp bilden
BILD_ID=$(curl -s https://api.matrummet.se/upload \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -F "file=@pasta.jpg" | jq -r '.filename')

# 2. Skapa recept med bilden
curl -s https://api.matrummet.se/rpc/insert_recipe \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{
    "p_name": "Pasta Carbonara",
    "p_image": "'$BILD_ID'",
    ...
  }'

Bilder rensas automatiskt när ett recept raderas eller när bilden ersätts — du behöver aldrig radera bilder manuellt. Vid kopiering (copy_recipe) delas samma bild och den raderas först när inget recept längre refererar till den.

Recept

insert_recipe

Skapa ett nytt recept. Returnerar receptets UUID.

bash
curl -s https://api.matrummet.se/rpc/insert_recipe \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{
    "p_name": "Pasta Carbonara",
    "p_author": "Kocken",
    "p_url": "",
    "p_recipe_yield": 4,
    "p_recipe_yield_name": "portioner",
    "p_prep_time": 10,
    "p_cook_time": 20,
    "p_description": "Klassisk italiensk pasta",
    "p_categories": ["Pasta", "Middag"],
    "p_ingredients": [
      {"name": "Spaghetti", "quantity": 400, "measurement": "g"},
      {"name": "Pancetta", "quantity": 150, "measurement": "g"}
    ],
    "p_instructions": [
      {"step": "Koka pastan al dente."},
      {"step": "Stek pancettan krispig."}
    ],
    "p_cuisine": "Italienskt"
  }'
ParameterTypKrävsBeskrivning
p_nametextjaReceptnamn
p_authortextjaFörfattare
p_urltextjaKäll-URL (tom sträng om ingen)
p_recipe_yieldintegerjaAntal portioner
p_recipe_yield_nametextjaPortionsenhet (t.ex. "portioner")
p_prep_timeintegerjaFörberedelsetid i minuter
p_cook_timeintegerjaTillagningstid i minuter
p_descriptiontextjaKort beskrivning
p_categoriestext[]jaKategorinamn
p_ingredientsjsonb[]jaIngrediensobjekt (se datamodell)
p_instructionsjsonb[]jaInstruktionsobjekt (se datamodell)
p_cuisinetextnejTyp av kök
p_imagetextnejBild-ID från /upload (UUID, se Bilder ovan)

update_recipe

Uppdatera ett befintligt recept. Samma parametrar som insert_recipe plus p_recipe_id (uuid, krävs) och valfritt p_date_published (ISO 8601). Du måste äga receptet. Returnerar inget.

copy_recipe

Kopiera ett recept till din samling. Returnerar det nya receptets UUID.

bash
curl -s https://api.matrummet.se/rpc/copy_recipe \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_source_recipe_id": "uuid-här"}'

search_recipes

Fulltextsökning bland recept (svensk stemming).

bash
curl -s https://api.matrummet.se/rpc/search_recipes \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_query": "pasta", "p_owner_only": true, "p_limit": 20}'
ParameterTypKrävsBeskrivning
p_querytextjaSökfråga
p_owner_onlybooleannejBara egna recept (standard: false)
p_categorytextnejFiltrera på kategori
p_limitintegernejMax resultat (standard: 50)
p_offsetintegernejSidnumrering (standard: 0)
p_owner_idsuuid[]nejFiltrera på specifika ägare

search_liked_recipes

Sök bland dina gillade recept.

bash
curl -s https://api.matrummet.se/rpc/search_liked_recipes \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_query": "pasta", "p_category": null}'

search_public_recipes

Sök bland alla publika recept. Stöder filtrering på kategori och författare.

bash
curl -s https://api.matrummet.se/rpc/search_public_recipes \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_query": "pasta", "p_category": null, "p_author_id": null}'
ParameterTypKrävsBeskrivning
p_querytextjaSökfråga
p_categorytextnejFiltrera på kategori
p_author_iduuidnejFiltrera på receptägarens ID
p_limitintegernejMax resultat (standard: 50)
p_offsetintegernejSidnumrering (standard: 0)

Returnerar rader från vyn public_recipes.

toggle_recipe_like

Gilla eller avgilla ett recept (inte ditt eget). Returnerar {"liked": true} eller {"liked": false}.

bash
curl -s https://api.matrummet.se/rpc/toggle_recipe_like \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_recipe_id": "uuid-här"}'

Receptdelning

create_share_token

Skapa en delbar länk för ett av dina recept.

bash
curl -s https://api.matrummet.se/rpc/create_share_token \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_recipe_id": "uuid-här", "p_expires_days": 30}'
ParameterTypKrävsBeskrivning
p_recipe_iduuidjaRecept att dela (måste vara ditt)
p_expires_daysintegernejDagar till utgång (null = aldrig)

Returnerar: token och expires_at.

get_recipe_share_tokens

Lista alla dellänkar för ett recept du äger.

bash
curl -s https://api.matrummet.se/rpc/get_recipe_share_tokens \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_recipe_id": "uuid-här"}'

Returnerar: id, token, created_at, expires_at, revoked_at, view_count, last_viewed_at, is_active.

revoke_share_token

Återkalla en dellänk så att den inte längre kan användas. Returnerar true om den återkallades.

bash
curl -s https://api.matrummet.se/rpc/revoke_share_token \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

get_shared_recipe

Hämta ett recept via en dellänk. Kräver ingen autentisering.

bash
curl -s https://api.matrummet.se/rpc/get_shared_recipe \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

Returnerar fullständig receptdata inklusive ingredienser, instruktioner och delarens namn. Returnerar tomt om länken är ogiltig, utgången eller återkallad.

copy_shared_recipe

Kopiera ett delat recept till din samling via dellänken. Returnerar det nya receptets UUID.

bash
curl -s https://api.matrummet.se/rpc/copy_shared_recipe \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

Receptboksdelning

Dela hela din receptsamling med en annan användare via en länk.

create_book_share_token

Skapa en delbar länk för din receptbok.

bash
curl -s https://api.matrummet.se/rpc/create_book_share_token \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_expires_days": 30}'

Valfritt: p_expires_days (null = aldrig). Returnerar: token och expires_at.

get_book_share_info

Hämta info om en receptbokslänk innan du accepterar den. Kräver ingen autentisering.

bash
curl -s https://api.matrummet.se/rpc/get_book_share_info \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

Returnerar: sharer_name, sharer_email, recipe_count, already_connected.

accept_book_share

Acceptera en receptbokslänk och anslut till delarens receptsamling. Idempotent.

bash
curl -s https://api.matrummet.se/rpc/accept_book_share \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

Returnerar: sharer_name och sharer_id.

get_shared_books

Lista receptböcker som delas med dig.

bash
curl -s https://api.matrummet.se/rpc/get_shared_books \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{}'

Returnerar: id, sharer_name, sharer_id, created_at.

revoke_book_share_token

Återkalla en receptbokslänk. Returnerar true om den återkallades.

bash
curl -s https://api.matrummet.se/rpc/revoke_book_share_token \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "abc123"}'

remove_book_share_connection

Ta bort en receptboksanslutning. Både delaren och mottagaren kan ta bort den. Returnerar true.

bash
curl -s https://api.matrummet.se/rpc/remove_book_share_connection \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_connection_id": "uuid-här"}'

Datamodell

Ingrediensobjekt

json
{
  "name": "Spaghetti",
  "quantity": 400,
  "measurement": "g"
}
ParameterTypKrävsBeskrivning
namestringjaIngrediensnamn
quantitynumber | nullnejMängd
measurementstring | nullnejEnhet (t.ex. "g", "dl", "st")
group_namestring | nullnejGrupp (t.ex. "Sås", "Topping")

Instruktionsobjekt

json
{
  "step": "Koka pastan al dente."
}
ParameterTypKrävsBeskrivning
stepstringjaInstruktionstexten

Sökhjälpare

search_foods

Sök i livsmedelsdatabasen. Användbart för att hitta food_id till skafferifunktionerna.

bash
curl -s https://api.matrummet.se/rpc/search_foods \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_query": "tomat", "p_limit": 5}'

search_units

Sök bland tillgängliga enheter.

bash
curl -s https://api.matrummet.se/rpc/search_units \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_query": "gram", "p_limit": 5}'

Skafferi

Skafferioperationer är hushållskopplade. Inkludera X-Active-Home-Id om du tillhör ett hushåll.

add_to_pantry

Lägg till en vara i skafferiet. Används även för att uppdatera utgångsdatum på befintliga varor (upsert). Returnerar UUID.

bash
curl -s https://api.matrummet.se/rpc/add_to_pantry \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_food_id": "uuid-här", "p_expires_at": "2025-12-31"}'

Alla parametrar utom p_food_id är valfria: p_quantity (numeric), p_unit (text), p_expires_at (datum).

remove_from_pantry

Ta bort en vara från skafferiet.

bash
curl -s https://api.matrummet.se/rpc/remove_from_pantry \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_food_id": "uuid-här"}'

get_user_pantry

Lista allt i ditt skafferi.

bash
curl -s https://api.matrummet.se/rpc/get_user_pantry \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{}'

Returnerar: id, food_id, food_name, quantity, unit, added_at, expires_at, is_expired, added_by.

get_common_pantry_items

Hämta vanliga skafferivaror (för snabbval).

bash
curl -s https://api.matrummet.se/rpc/get_common_pantry_items \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{}'

find_recipes_from_pantry

Hitta recept du kan laga med det som finns i skafferiet.

bash
curl -s https://api.matrummet.se/rpc/find_recipes_from_pantry \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_min_match_percentage": 50, "p_limit": 10}'

Returnerar recept rankade efter matchningsgrad med saknade ingredienser.

find_recipes_by_ingredients

Hitta recept baserat på specifika livsmedels-ID:n (utan att läsa från skafferiet).

bash
curl -s https://api.matrummet.se/rpc/find_recipes_by_ingredients \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{
    "p_food_ids": ["food-uuid-1", "food-uuid-2"],
    "p_user_email": null,
    "p_min_match_percentage": 50,
    "p_limit": 20
  }'

deduct_from_pantry

Dra av mängder från skafferiet efter matlagning. Returnerar antal avdragna varor.

bash
curl -s https://api.matrummet.se/rpc/deduct_from_pantry \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_deductions": [{"food_id": "uuid", "amount": 200}]}'

Inköpslistor

Inköpslisteoperationer är hushållskopplade. Inkludera X-Active-Home-Id om du tillhör ett hushåll.

create_shopping_list

Skapa en ny inköpslista. Returnerar UUID.

bash
curl -s https://api.matrummet.se/rpc/create_shopping_list \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_name": "Veckans inköp"}'

Valfritt: p_home_id (uuid) för att skapa en delad hushållslista.

get_user_shopping_lists

Lista alla dina inköpslistor med antal varor.

bash
curl -s https://api.matrummet.se/rpc/get_user_shopping_lists \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{}'

Returnerar: id, name, is_default, item_count, checked_count, date_published, date_modified, home_id, home_name.

add_recipe_to_shopping_list

Lägg till ett recepts ingredienser på en inköpslista.

bash
curl -s https://api.matrummet.se/rpc/add_recipe_to_shopping_list \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_recipe_id": "uuid-här", "p_servings": 4}'

Valfritt: p_shopping_list_id (null = standardlista), p_ingredient_ids (uuid[], null = alla).

add_custom_shopping_list_item

Lägg till en egen vara (ej från recept) på en inköpslista.

bash
curl -s https://api.matrummet.se/rpc/add_custom_shopping_list_item \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_name": "Hushållspapper", "p_shopping_list_id": "uuid-här"}'

Valfritt: p_food_id (uuid) för att koppla till ett livsmedel.

toggle_shopping_list_item

Bocka av/på en vara.

bash
curl -s https://api.matrummet.se/rpc/toggle_shopping_list_item \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_item_id": "uuid-här"}'

clear_checked_items

Ta bort alla avbockade varor. Om p_shopping_list_id är null rensas standardlistan.

bash
curl -s https://api.matrummet.se/rpc/clear_checked_items \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_shopping_list_id": "uuid-här"}'

rename_shopping_list

Byt namn på en inköpslista.

bash
curl -s https://api.matrummet.se/rpc/rename_shopping_list \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_list_id": "uuid-här", "p_name": "Nytt namn"}'

set_default_shopping_list

Välj vilken inköpslista som är din standard.

bash
curl -s https://api.matrummet.se/rpc/set_default_shopping_list \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_list_id": "uuid-här"}'

delete_shopping_list

Radera en inköpslista med alla varor.

bash
curl -s https://api.matrummet.se/rpc/delete_shopping_list \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_list_id": "uuid-här"}'

Läsa inköpslistevaror

Varor läses via vyn shopping_list_view:

bash
curl -s "https://api.matrummet.se/shopping_list_view?shopping_list_id=eq.LIST_UUID&order=is_checked.asc,sort_order.asc" \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid"

Matsedlar

Matsedelsoperationer är hushållskopplade. Inkludera X-Active-Home-Id om du tillhör ett hushåll.

get_meal_plan

Hämta den aktiva matsedeln, eller en specifik via ID.

bash
curl -s https://api.matrummet.se/rpc/get_meal_plan \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "X-Active-Home-Id: home-uuid" \\
  -H "Content-Type: application/json" \\
  -d '{"p_plan_id": null}'
ParameterTypKrävsBeskrivning
p_plan_iduuidnejSpecifikt matsedel-ID (null = senaste aktiva)

Returnerar matsedeln med alla poster (dag, måltidstyp, recept, portioner). Returnerar null om ingen aktiv matsedel finns.

save_meal_plan

Spara en ny matsedel. Arkiverar eventuell befintlig aktiv matsedel.

bash
curl -s https://api.matrummet.se/rpc/save_meal_plan \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "X-Active-Home-Id: home-uuid" \\
  -H "Content-Type: application/json" \\
  -d '{
    "p_week_start": "2026-02-23",
    "p_preferences": {},
    "p_entries": [
      {"day_of_week": 0, "meal_type": "dinner", "recipe_id": "uuid-här", "servings": 4, "sort_order": 0}
    ]
  }'
ParameterTypKrävsBeskrivning
p_week_startdatejaVeckans måndag
p_preferencesjsonbjaKostpreferenser (kan vara {})
p_entriesjsonbjaArray av matsedelsposter

Returnerar den nya matsedelns UUID.

swap_meal_plan_entry

Byt ut en enskild post i en befintlig matsedel.

bash
curl -s https://api.matrummet.se/rpc/swap_meal_plan_entry \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_entry_id": "uuid-här", "p_recipe_id": "nytt-recept-uuid"}'
ParameterTypKrävsBeskrivning
p_entry_iduuidjaPosten att byta ut
p_recipe_iduuidnejNytt recept-ID
p_suggested_nametextnejNamn för post utan recept
p_suggested_descriptiontextnejBeskrivning för post utan recept

Minst en av p_recipe_id eller p_suggested_name måste anges.

add_meal_plan_to_shopping_list

Lägg till alla receptingredienser från en matsedel på en inköpslista.

bash
curl -s https://api.matrummet.se/rpc/add_meal_plan_to_shopping_list \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "X-Active-Home-Id: home-uuid" \\
  -H "Content-Type: application/json" \\
  -d '{"p_plan_id": "uuid-här", "p_shopping_list_id": null}'
ParameterTypKrävsBeskrivning
p_plan_iduuidjaMatsedel att lägga till från
p_shopping_list_iduuidnejMållista (null = standardlista)

Returnerar {"recipes_added": N}.

get_base_recipes

Hämta slumpmässiga recept från basreceptpoolen (kurerade svenska middagsrecept). Användbart för matsedelsförslag.

bash
curl -s https://api.matrummet.se/rpc/get_base_recipes \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_diet_types": ["vegetarian", "vegan"], "p_categories": null, "p_limit": 10}'
ParameterTypKrävsBeskrivning
p_diet_typestext[]nejKosttyper: "vegan", "vegetarian", "pescetarian", "meat"
p_categoriestext[]nejFiltrera på kategorinamn
p_limitintegernejMax resultat (standard: 50)

Hushåll

get_user_homes

Lista alla hushåll du tillhör.

bash
curl -s https://api.matrummet.se/rpc/get_user_homes \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{}'

create_home

Skapa ett nytt hushåll. Returnerar UUID.

bash
curl -s https://api.matrummet.se/rpc/create_home \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_name": "Familjen"}'

get_home_info

Hämta hushållsdetaljer inklusive medlemmar. Om p_home_id är null returneras ditt nuvarande hushåll (eller null om du inte har något).

bash
curl -s https://api.matrummet.se/rpc/get_home_info \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_home_id": null}'

update_home_name

Byt namn på ditt hushåll.

bash
curl -s https://api.matrummet.se/rpc/update_home_name \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_name": "Nytt namn"}'

invite_to_home

Bjud in en användare via e-post. Returnerar inbjudans UUID.

bash
curl -s https://api.matrummet.se/rpc/invite_to_home \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_email": "namn@exempel.se"}'

generate_join_code

Generera en delbar anslutningskod för ditt hushåll.

bash
curl -s https://api.matrummet.se/rpc/generate_join_code \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_expires_hours": 48}'

join_home_by_code

Gå med i ett hushåll med en kod.

bash
curl -s https://api.matrummet.se/rpc/join_home_by_code \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -d '{"p_code": "ABC123"}'

leave_home

Lämna ett hushåll.

bash
curl -s https://api.matrummet.se/rpc/leave_home \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{}'

remove_home_member

Ta bort en medlem från ditt hushåll.

bash
curl -s https://api.matrummet.se/rpc/remove_home_member \
  -H "x-api-key: sk_DIN_NYCKEL" \
  -H "X-Active-Home-Id: home-uuid" \
  -H "Content-Type: application/json" \
  -d '{"p_member_email": "namn@exempel.se"}'

get_pending_invitations

Lista hushållsinbjudningar skickade till dig.

bash
curl -s https://api.matrummet.se/rpc/get_pending_invitations \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{}'

Returnerar: id, home_id, home_name, invited_by_email, invited_by_name, token, expires_at, date_published.

accept_invitation

Acceptera en hushållsinbjudan. Returnerar hushållets UUID.

bash
curl -s https://api.matrummet.se/rpc/accept_invitation \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "inbjudningstoken-här"}'

decline_invitation

Avböj en hushållsinbjudan.

bash
curl -s https://api.matrummet.se/rpc/decline_invitation \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_token": "inbjudningstoken-här"}'

disable_join_code

Inaktivera den nuvarande anslutningskoden för ditt hushåll.

bash
curl -s https://api.matrummet.se/rpc/disable_join_code \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "X-Active-Home-Id: home-uuid" \\
  -H "Content-Type: application/json" \\
  -d '{}'

Poäng

AI-funktioner (receptgenerering, matsedlar) kostar poäng.

get_user_credits

Hämta ditt nuvarande poängsaldo.

bash
curl -s https://api.matrummet.se/rpc/get_user_credits \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{}'

Returnerar ett heltal (ditt saldo).

get_credit_history

Hämta din poängtransaktionshistorik.

bash
curl -s https://api.matrummet.se/rpc/get_credit_history \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_limit": 50, "p_offset": 0}'

Returnerar: id, amount, balance_after, transaction_type, description, created_at.

API-nycklar (hantering)

get_user_api_keys

Lista dina API-nycklar (hela nyckeln visas bara vid skapande).

bash
curl -s https://api.matrummet.se/rpc/get_user_api_keys \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{}'

Returnerar: id, name, api_key_prefix, last_used_at, expires_at, is_active, date_published.

create_user_api_key

Skapa en ny API-nyckel. Den fullständiga nyckeln returneras bara en gång.

bash
curl -s https://api.matrummet.se/rpc/create_user_api_key \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_name": "Min integration"}'

Spara nyckeln säkert — den kan inte hämtas igen.

revoke_api_key

Återkalla en API-nyckel så att den inte längre kan användas.

bash
curl -s https://api.matrummet.se/rpc/revoke_api_key \\
  -H "x-api-key: sk_DIN_NYCKEL" \\
  -H "Content-Type: application/json" \\
  -d '{"p_key_id": "uuid-här"}'

Direkt tabellåtkomst

PostgREST exponerar tabeller och vyer direkt med standard frågesyntax:

bash
# Hämta dina recept
curl -s "https://api.matrummet.se/user_recipes?limit=10&order=date_modified.desc" \
  -H "x-api-key: sk_DIN_NYCKEL"

# Filtrera på kolumn
curl -s "https://api.matrummet.se/user_recipes?name=ilike.*pasta*" \
  -H "x-api-key: sk_DIN_NYCKEL"

# Välj specifika kolumner
curl -s "https://api.matrummet.se/user_recipes?select=id,name,categories&limit=5" \
  -H "x-api-key: sk_DIN_NYCKEL"

# Publika recept
curl -s "https://api.matrummet.se/public_recipes?limit=10&order=date_modified.desc" \
  -H "x-api-key: sk_DIN_NYCKEL"

# Gillade recept
curl -s "https://api.matrummet.se/liked_recipes?limit=10" \
  -H "x-api-key: sk_DIN_NYCKEL"

# Utvalda recept
curl -s "https://api.matrummet.se/featured_recipes?limit=5" \
  -H "x-api-key: sk_DIN_NYCKEL"

Tillgängliga vyer: user_recipes, public_recipes, liked_recipes, featured_recipes, shopping_list_view.

Vanliga operatorer: eq, neq, gt, lt, gte, lte, like, ilike, in, is. Se PostgREST-dokumentationen för fullständig syntax.

Begränsningar

  • Max 1000 rader per anrop
  • Sidnumrering med limit och offset
  • RLS: du kan bara ändra din egen data

OpenAPI-specifikation

En maskinläsbar OpenAPI-specifikation finns på api.matrummet.se (begär med Accept: application/openapi+json).

Senast uppdaterad: 24 februari 2026