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:
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.
curl -s https://api.matrummet.se/upload \ -H "x-api-key: sk_DIN_NYCKEL" \ -F "file=@min-bild.jpg"
{"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).
curl -s https://api.matrummet.se/images/BILD_UUID/thumb -o thumb.webp
| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| thumb | 320x240 | Miniatyrbild för listor och kort | |
| small | 640x480 | Liten bild för mobilvyer | |
| medium | 960x720 | Mellanstor bild för receptsidor | |
| large | 1280x960 | Stor bild för desktop | |
| full | 1920x1440 | standard | Originalbild 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:
# 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.
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"
}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_name | text | ja | Receptnamn |
| p_author | text | ja | Författare |
| p_url | text | ja | Käll-URL (tom sträng om ingen) |
| p_recipe_yield | integer | ja | Antal portioner |
| p_recipe_yield_name | text | ja | Portionsenhet (t.ex. "portioner") |
| p_prep_time | integer | ja | Förberedelsetid i minuter |
| p_cook_time | integer | ja | Tillagningstid i minuter |
| p_description | text | ja | Kort beskrivning |
| p_categories | text[] | ja | Kategorinamn |
| p_ingredients | jsonb[] | ja | Ingrediensobjekt (se datamodell) |
| p_instructions | jsonb[] | ja | Instruktionsobjekt (se datamodell) |
| p_cuisine | text | nej | Typ av kök |
| p_image | text | nej | Bild-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.
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).
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_query | text | ja | Sökfråga |
| p_owner_only | boolean | nej | Bara egna recept (standard: false) |
| p_category | text | nej | Filtrera på kategori |
| p_limit | integer | nej | Max resultat (standard: 50) |
| p_offset | integer | nej | Sidnumrering (standard: 0) |
| p_owner_ids | uuid[] | nej | Filtrera på specifika ägare |
search_liked_recipes
Sök bland dina gillade recept.
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.
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_query | text | ja | Sökfråga |
| p_category | text | nej | Filtrera på kategori |
| p_author_id | uuid | nej | Filtrera på receptägarens ID |
| p_limit | integer | nej | Max resultat (standard: 50) |
| p_offset | integer | nej | Sidnumrering (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}.
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.
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_recipe_id | uuid | ja | Recept att dela (måste vara ditt) |
| p_expires_days | integer | nej | Dagar till utgång (null = aldrig) |
Returnerar: token och expires_at.
get_recipe_share_tokens
Lista alla dellänkar för ett recept du äger.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
{
"name": "Spaghetti",
"quantity": 400,
"measurement": "g"
}| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| name | string | ja | Ingrediensnamn |
| quantity | number | null | nej | Mängd |
| measurement | string | null | nej | Enhet (t.ex. "g", "dl", "st") |
| group_name | string | null | nej | Grupp (t.ex. "Sås", "Topping") |
Instruktionsobjekt
{
"step": "Koka pastan al dente."
}| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| step | string | ja | Instruktionstexten |
Sökhjälpare
search_foods
Sök i livsmedelsdatabasen. Användbart för att hitta food_id till skafferifunktionerna.
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_plan_id | uuid | nej | Specifikt 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.
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}
]
}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_week_start | date | ja | Veckans måndag |
| p_preferences | jsonb | ja | Kostpreferenser (kan vara {}) |
| p_entries | jsonb | ja | Array av matsedelsposter |
Returnerar den nya matsedelns UUID.
swap_meal_plan_entry
Byt ut en enskild post i en befintlig matsedel.
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"}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_entry_id | uuid | ja | Posten att byta ut |
| p_recipe_id | uuid | nej | Nytt recept-ID |
| p_suggested_name | text | nej | Namn för post utan recept |
| p_suggested_description | text | nej | Beskrivning 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.
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_plan_id | uuid | ja | Matsedel att lägga till från |
| p_shopping_list_id | uuid | nej | Må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.
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}'| Parameter | Typ | Krävs | Beskrivning |
|---|---|---|---|
| p_diet_types | text[] | nej | Kosttyper: "vegan", "vegetarian", "pescetarian", "meat" |
| p_categories | text[] | nej | Filtrera på kategorinamn |
| p_limit | integer | nej | Max resultat (standard: 50) |
Hushåll
get_user_homes
Lista alla hushåll du tillhör.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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:
# 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
limitochoffset - 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