Swedish Meatballs (Köttbullar)
By Middagsarkivet
- Easy
- 4 servings
Köttbullar show up on Swedish tables more often than any other single dish, from a Tuesday dinner to the Christmas julbord. The recipe is not fixed: some families use only beef, some grate the onion raw into the mix, some add a splash of soda water for lightness. What stays constant is the pairing of allspice-scented meatballs with a brown cream gravy and something tart on the side.
The lingonberry is the part Americans usually skip or substitute, and that is fine. Lingonberries grow wild across the Nordic forests and taste like a cross between cranberry and pomegranate: sharp, only lightly sweetened, meant to cut through the fat of the gravy rather than add sugar to the plate. Cranberry sauce does the same job at an American table.

How to make it
- 1
Soak the breadcrumbs
Stir the breadcrumbs into the milk and let them sit until softened.
- 2
Mix the meatballs
In a bowl, combine the soaked breadcrumbs, ground beef, ground pork, grated onion, egg, allspice, nutmeg, salt, and pepper. Mix just until even; overworking makes the meatballs dense.
- 3
Chill the mixture
Cover and refrigerate the mixture so it firms up and is easier to shape.
- 4
Shape the meatballs
Roll the mixture into meatballs about 1 inch across, wetting your hands occasionally to keep the mixture from sticking.
- 5
Brown the meatballs
Melt the 2 tablespoons of butter in a large skillet over medium heat and brown the meatballs in batches, turning until golden on all sides. Set them aside on a plate.
- 6
Start the gravy
In the same skillet, melt the remaining 2 tablespoons of butter, whisk in the flour, and cook for a minute until it smells toasted.
- 7
Build the gravy
Whisk in the beef stock and heavy cream, scraping up the browned bits from the bottom of the pan, and bring to a simmer. Stir in the soy sauce if using.
- 8
Finish the meatballs
Return the meatballs to the gravy and simmer until the gravy has thickened slightly and the meatballs reach an internal temperature of 160°F (71°C).
- 9
Season and serve
Season the gravy with salt and pepper to taste, then serve the meatballs over boiled or mashed potatoes with lingonberry preserves and a scatter of dill.
A couple of tips
Grate the onion rather than chopping it; it disappears into the meat instead of leaving bites of raw onion.
Wet your hands before rolling the meatballs so the mixture doesn't stick and the shapes stay even.
Brown the meatballs in batches without crowding the pan, or they will steam instead of getting color.
Serving
Serve with boiled or mashed potatoes, a spoonful of lingonberry preserves, and a few slices of pickled cucumber on the side.
Storing it
Keeps in the refrigerator, meatballs and gravy together, for up to 4 days. Reheat gently in a covered skillet with a splash of water or stock to loosen the gravy.
Nutrition per serving
| Calories | 810 kcal |
|---|---|
| Fat | 49 g |
| of which saturated | 24 g |
| Carbohydrates | 64 g |
| of which sugars | 23 g |
| Fiber | 3 g |
| Protein | 29 g |
| Salt | 2 g |
Questions and answers
- Can you freeze Swedish meatballs?
- Yes, freeze the meatballs in the gravy in an airtight container for up to 3 months and thaw overnight in the refrigerator before reheating.
- How long do Swedish meatballs keep in the fridge?
- Up to 4 days, stored together with the gravy in a covered container.
- Can I make the meatballs with only beef or only pork?
- Yes, either works, but the mix of beef and pork gives a rounder flavor and a more tender bite.
- What can I use instead of lingonberry preserves?
- Cranberry sauce is the closest substitute and gives the same tart contrast to the gravy.
- Can I make the meatballs ahead of time?
- Shape and brown the meatballs up to a day ahead, refrigerate them, and finish them in the gravy just before serving.
This dish belongs to
Collections
Similar recipes
How it was made
This recipe was written by a language model. Below is what it cost, how long it took and when each step ran, so you can see how the archive comes about.
- $0.147
- 1 min 52 sec
- 5
- Passed
| Date | Step | Model | Usage | Time | Cost |
|---|---|---|---|---|---|
| Sep 17, 2026 | Wrote the recipe | anthropic/claude-sonnet-5 | 6,284 in · 4,562 out tokens | 47.3 sec | $0.058 |
| Sep 17, 2026 | Checked food safety | anthropic/claude-haiku-4.5 | 1,686 in · 14 out tokens | 3.1 sec | $0.002 |
| Sep 17, 2026 | Made the picture | bfl/flux-2-pro | 1 image | 9.1 sec | $0.030 |
| Sep 17, 2026 | Worked out the nutrition | anthropic/claude-sonnet-5 | 1,675 in · 5,021 out tokens | 47.4 sec | $0.054 |
| Sep 17, 2026 | Set the collections | anthropic/claude-sonnet-5 | 1,490 in · 34 out tokens | 2.3 sec | $0.003 |


