MIDDAGS
ARKIVET
Search
MainAI generated

Danish Meatballs (Frikadeller)

By Middagsarkivet

Time
Difficulty
Easy
Servings
4 servings

Frikadeller are the backbone of Danish home cooking, eaten more often than any other hot dish and argued about more than most. They are not Swedish köttbullar: no cream sauce, no lingonberry, no round shape. The farce is beaten until it is sticky, shaped into flat ovals with a wet spoon, and fried in butter over moderate heat so the outside sets into a dark crust while the inside stays loose.

The classic mix is half pork, half veal, which Danish butchers sell premixed as hakket svinekød og kalvekød. American supermarkets rarely stock ground veal next to the ground pork, so ask at the meat counter or use all ground pork, which is what plenty of Danish kitchens do anyway. Grated onion, not chopped, is the detail that matters: it disappears into the meat and keeps it moist.

Frikadeller show up cold on rye bread the next day almost as often as they show up hot for dinner, and they are standard on the Danish Christmas lunch table alongside everything else. The hot version is served with boiled potatoes and brun sovs, a flour-thickened brown gravy darkened with a little molasses.

Danish frikadeller with boiled potatoes, parsley and brown gravy on a white plate
AI generated image. The dish has not been photographed.

How to make it

  1. 1

    Mix the farce

    Grate the onion on the fine side of a box grater straight into a bowl. Add the ground pork, ground veal, egg, flour, salt, black pepper and allspice. Work it together with a wooden spoon or your hand until it is uniform and sticky, about 2 minutes.

  2. 2

    Add the milk

    Beat in the cold milk a little at a time. The farce should be soft and glossy but still hold its shape on a spoon. Add the last of the milk only if it looks dry.

  3. 3

    Chill

    Cover the bowl and refrigerate for at least 30 minutes. The farce firms up and is much easier to shape.

  4. 4

    Boil the potatoes

    Put the potatoes in a pot, cover with cold water, salt it well, and bring to a boil. Simmer until a knife slides in without resistance, 18 to 22 minutes. Drain and keep warm.

  5. 5

    Shape and fry

    Heat the butter and oil in a large skillet over medium heat. Dip a tablespoon in the hot fat, scoop up a heaping spoonful of farce, and shape it against your palm into a flat oval. Set it in the pan and repeat, working in two batches so the pan is not crowded.

  6. 6

    Brown them

    Fry 5 to 6 minutes per side over medium heat until deeply browned and cooked through. They must reach an internal temperature of 160°F (71°C) on an instant-read thermometer. Move them to a plate and keep warm while you fry the second batch.

  7. 7

    Make the gravy

    Pour off all but a thin film of fat from the skillet. Add the butter, let it melt, then stir in the flour and cook for 1 minute, scraping up the browned bits. Whisk in the hot beef stock a little at a time until smooth.

  8. 8

    Finish the gravy

    Add the cream and molasses and simmer until the gravy coats a spoon, 4 to 5 minutes. Season with salt and black pepper.

  9. 9

    Serve

    Toss the drained potatoes with the butter and parsley. Serve the frikadeller with the potatoes and the gravy poured over.

A couple of tips

Keep the pan at medium, not high. Frikadeller need time for the inside to cook before the crust goes too dark, and they are flat for exactly that reason.

Dip the spoon in the hot fat before each scoop and the farce will slide off cleanly instead of sticking.

Fry one small test patty first, taste it, and adjust the salt in the rest of the farce before shaping.

What you need

  • an instant-read thermometer
  • a box grater

Serving

Boiled potatoes, brown gravy and something pickled or sharp on the side: cucumber salad, red cabbage, or a spoonful of mustard. Cold leftovers go on rye bread with pickled beets or dill pickle.

Storing it

Cooked frikadeller keep 3 days in an airtight container in the refrigerator and are eaten cold as often as reheated. The gravy keeps 3 days and thickens as it cools; loosen it with a splash of stock or milk when reheating. Frikadeller freeze well for up to 3 months.

Nutrition per serving

Calories900 kcal
Fat57 g
of which saturated26 g
Carbohydrates54 g
of which sugars6 g
Fiber4 g
Protein43 g
Salt3 g

Guideline values, worked out from the ingredients.

Questions and answers

Can you freeze frikadeller?
Yes. Cool them completely, freeze in a single layer, then bag them for up to 3 months and reheat in a 325°F (160°C) oven for about 15 minutes.
What can I use instead of ground veal?
Use all ground pork, which is common in Denmark too, or swap the veal for ground beef if you want a firmer, beefier patty. Either way the meat must reach 160°F (71°C).
Can I make the farce ahead?
Yes, and it improves. Mix it up to a day ahead, keep it covered in the refrigerator, and fry it when you need it.
Why do my frikadeller fall apart in the pan?
The farce was too wet or was not beaten enough. Work it until it turns sticky and holds together on the spoon, chill it properly, and hold back the last of the milk if it looks loose.
What is the difference between frikadeller and Swedish meatballs?
Frikadeller are flat ovals shaped with a spoon, often half veal, and served with brown gravy and potatoes. Köttbullar are small and round, served with cream sauce and lingonberry.

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.

Cost
$0.259
Time
1 min 37 sec
Model calls
5
Safety check
Passed
DateStepModelUsageTimeCost
Oct 10, 2026Wrote the recipeanthropic/claude-opus-57,761 in · 3,892 out tokens48.5 sec$0.136
Oct 10, 2026Checked food safetyanthropic/claude-sonnet-52,664 in · 19 out tokens1.3 sec$0.006
Oct 10, 2026Made the picturebfl/flux-2-max1 image25.1 sec$0.070
Oct 10, 2026Worked out the nutritionanthropic/claude-opus-51,682 in · 1,429 out tokens16.5 sec$0.044
Oct 10, 2026Set the collectionsanthropic/claude-sonnet-51,472 in · 40 out tokens1.2 sec$0.003