Skip to content

Recept-API på svenska: hämta svenska recept som strukturerad data

Svenska recept med dl, msk och krm, som data din app kan räkna med.

Bygger du en matapp för svenska användare? Då har du nog stött på problemet. De flesta recept-API:er är byggda kring engelska recept. Mjölet mäts i cups, smöret i sticks och ugnen står i Fahrenheit.

Det går att översätta. Men en översatt amerikansk brownie blir ingen kladdkaka. Svenska kockar mäter i dl, msk, tsk och krm. De vill läsa ”2 dl vetemjöl”, inte ”0.85 cup flour”.

Och de svenska receptsajterna då? Recepten finns där, men vi har inte hittat något öppet API från dem som du kan bygga en produkt på. Så många team skrapar sidorna själva. Det är skört. Och sedan ska varje ingrediensrad tolkas, vilket är mer jobb än man tror.

Därför har Tiny Plates svenska recept. Tiny Plates är ett gratis recept-API med tusentals recept på engelska, spanska och svenska. Den svenska sidan hittar du på tinyplates.dev/sv.

Så ser ett svenskt recept ut

Börja med att söka. Med language=sv får du bara recept som är skrivna på svenska. Sökningen förstår vad du menar och inte bara exakta ord, så ”grytmiddag” fungerar lika bra som ett rättnamn.

curl 'https://api.tinyplates.dev/search?query=kladdkaka&language=sv&limit=3&fields=title,url' \
  -H 'Authorization: Bearer rd_your_api_key'

fields håller svaret litet. Du får bara titel och länk, plus id och score som alltid följer med. Hämta sedan hela receptet med dess id:

curl 'https://api.tinyplates.dev/recipes/69e5e5d451a427d570647232' \
  -H 'Authorization: Bearer rd_your_api_key'

Det är en kladdig kladdkaka från Arla. Här är tre av ingredienserna:

[
  {
    "display": "3 dl strösocker",
    "original": "3 dl strösocker",
    "name": "granulated sugar",
    "localName": "strösocker",
    "ingredientId": "granulated-sugar",
    "quantity": { "value": 3, "unit": "dl" }
  },
  {
    "display": "½ msk vaniljsocker",
    "original": "½ msk vaniljsocker",
    "name": "vanilla sugar",
    "localName": "vaniljsocker",
    "ingredientId": "vanilla-sugar",
    "quantity": { "value": 0.5, "unit": "tbsp" }
  },
  {
    "display": "2 krm salt",
    "original": "2 krm salt",
    "name": "salt",
    "localName": "salt",
    "ingredientId": "salt",
    "quantity": { "value": 2, "unit": "ml" }
  }
]

Varje rad har två lager. display är raden du visar för användaren. Den är på svenska och använder måtten en svensk kock förväntar sig. original är raden exakt som källan skrev den. Den rör vi aldrig.

Det andra lagret är till för din kod. name och quantity är alltid på engelska, och enheterna kommer från en kort fast lista. dl får stå kvar som dl. msk blir tbsp och tsk blir tsp. Ett kryddmått är exakt en milliliter, så krm sparas som ml. När raden skrivs ut på svenska igen står det ”2 krm”, precis som i receptet. Din kod behöver alltså bara känna till en stavning per enhet.

ingredientId är samma i alla språk. granulated-sugar är strösocker i ett svenskt recept och sugar i ett engelskt. Vi skrev mer om det i inlägget om ingrediensrader på receptets eget språk.

Resten av receptet är också data. Stegen kommer i ordning, och ugnstemperaturen är ett eget fält (175 °C för kladdkakan). Du får tider, näringsvärden när källan har dem och en bedömning av EU:s 14 allergener. Länken till originalet och upphovspersonen följer med, så recepten hålls kopplade till de som skapade dem.

Portioner, mått och skafferiet

Vill du baka dubbelt? Skicka med servings:

curl 'https://api.tinyplates.dev/recipes/69e5e5d451a427d570647232?servings=24' \
  -H 'Authorization: Bearer rd_your_api_key'

Kladdkakan är skriven för 12 bitar, så 3 dl socker blir 6 dl. Saker utan mängd, som ”efter smak”, står kvar som de är.

Det finns också units. Ett svenskt recept är redan metriskt, så units=metric låter det mesta vara. dl förblir dl och msk förblir msk. Vi gör inte om 2 dl mjöl till gram, eftersom det inte är så receptet är skrivet. Däremot är units=metric bra när du visar amerikanska recept för svenska användare. Då blir Fahrenheit Celsius, och en kopp mjöl blir gram när vi vet vad en kopp av just den ingrediensen väger. Vet vi inte det får måttet stå kvar, och ingrediensen listas i conversion.unweighed. Vi gissar inte. Åt andra hållet gör units=imperial om dl till cups.

Du kan också börja i kylskåpet. /pantry tar emot det du har hemma och ger tillbaka recept med det som saknas:

curl 'https://api.tinyplates.dev/pantry?ingredients=chicken,rice&language=sv&maxMissing=2' \
  -H 'Authorization: Bearer rd_your_api_key'

Ett tips: sökningen tar svenska ord, men skafferiet matchar på engelska ingrediensnamn och id:n. Skriv alltså chicken, inte kyckling. Recepten du får tillbaka är fortfarande svenska.

Vad kan man bygga med det här? Några idéer:

  • Livsmedelskedjor. Visa recept bredvid varorna. Låt kunden välja några middagar och slå ihop dem till en inköpslista med /shopping-list, sorterad efter avdelning i butiken. Vi visade hur i inlägget om inköpslistor.
  • Matkassar. Skala recepten efter hushållets storlek. Filtrera bort recept med vissa allergener med without, till exempel without=milk,eggs.
  • Skolmat och förskolor. Planera menyer och se vilka allergener ett recept har. Men tänk på att allergeninformationen är vägledande, inte medicinsk rådgivning. Kontrollera alltid ingredienser och produktetiketter.

Bygger du med AI-agenter? Tiny Plates är också en MCP-server. Koppla in Claude Code, Cursor eller en annan MCP-klient så kan agenten söka recept och göra inköpslistor åt dig. Läs mer i inlägget om MCP-servern.

Vi vill också vara ärliga om vad Tiny Plates inte är, i alla fall inte än. Det finns ingen betalplan. Ett gratis konto ger 50 anrop om dagen och 300 i veckan, och vi höjer gärna gränsen om du frågar. Vi lovar ingen upptid. Dokumentationen är på engelska. Behöver du ett avtal med garanterad drift för en stor kedja är vi inte rätt val i dag. Och vill du bara ha recept från en enda sajt kan det löna sig att prata med dem direkt.

Men vill du testa en idé med riktiga svenska recept redan i eftermiddag så går det fint. Skapa ett gratis konto, inget kreditkort behövs, och kör igång med snabbstarten.