Matrummet'sRECEPT
Logga inSkapa konto
Logga inSkapa konto
OmIntegritetspolicyVillkorAPI

Copyright © 2026 Matrummet. Alla rättigheter förbehållna.

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).

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_imagetextnejBildsökväg
p_thumbnailtextnejMiniatyrsökväg

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}'

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"}'

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"

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"}'

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"

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: 20 februari 2026