Go Back
+ servings
Save This Recipe Form

Save This Recipe!

Enter your email below & we’ll send it straight to your inbox. Plus you’ll get great new recipes from us every week!


A pile of Bitterballen on a tray with mustard in front of them.
Print Pin
No ratings yet

Bitterballen Recipe

Bitterballen are crispy Dutch meatballs filled with a rich, savory beef and gravy mixture, then breaded and deep-fried until golden brown. This Bitterballen recipe takes the time to make the filling from scratch, creating a creamy, intensely flavorful center hidden inside an irresistibly crunchy crust.
Course Appetizer, Snack
Cuisine Dutch
Prep Time 45 minutes
Cook Time 3 hours 15 minutes
Chilling Time 6 hours
Total Time 10 hours
Servings 60 Bitterballen
Calories 144kcal

Ingredients

Beef & Stock Ingredients

  • 2.2 lb (1kg) chuck roast
  • 8 cups (2L) water, or enough to cover
  • 1 white onion quartered
  • 1 bay leaf
  • ½ tsp black peppercorns
  • 2 cloves

Filling Ingredients

  • 2 tbsp unflavored gelatin powder
  • ¼ cup (60 mL) water
  • ½ cup (115g) unsalted butter
  • ½ cup yellow onion minced
  • 1 cup (120g) all-purpose flour
  • 3 cups (700mL) reserved beef stock
  • 2 Tbsp finely chopped fresh flat leaf parsley
  • 1 Tbsp Dijon mustard
  • ¼ tsp ground nutmeg
  • Salt to taste
  • Freshly ground black pepper to taste

Assembly Ingredients

  • 2 cups (240g) all-purpose flour
  • 6 eggs beaten
  • 3 cups (450g) fine plain breadcrumbs
  • Vegetable oil for frying

Instructions

  • Place the 2.2 lb (1kg) chuck roast, 8 cups (2L) water, or enough to cover, 1 white onion, 1 bay leaf, ½ tsp black peppercorns, and 2 cloves in a large pot or Dutch oven. Bring to a boil, uncovered, at 212°F (100°C ), skimming off any foam that rises to the surface.
  • Reduce the heat to a gentle simmer and cook, covered, for about 3 hours, or until the beef is fork-tender.
  • Remove the beef from the stock and set it aside to cool slightly. Strain the stock and reserve it. Finely chop the beef into small pieces.
  • In a small bowl, sprinkle the 2 tbsp unflavored gelatin powder over the ¼ cup (60 mL) water (room temperature) and let it bloom for about 10 minutes.
  • In the meantime, melt the ½ cup (115g) unsalted butter in a large saucepan over medium heat. Add the ½ cup yellow onion and saute until the onions start to sweat and turn translucent.
  • Then add the 1 cup (120g) all-purpose flour and cook, stirring constantly, for 1 minute to form a roux.
  • Gradually whisk in 3 cups (700mL) reserved beef stock until smooth. Cook, stirring frequently, for about 2-5 minutes, or until the mixture has thickened considerably.
  • Add the chopped beef, 2 Tbsp finely chopped fresh flat leaf parsley, 1 Tbsp Dijon mustard, and ¼ tsp ground nutmeg. Stir until evenly combined. Taste the mixture at this point, and add salt and pepper to taste as desired.
  • Remove the beef mixture from the heat and allow the mixture to cool to 120–140°F (48–60°C), then stir in the bloomed gelatin until completely dissolved and evenly incorporated.
  • Transfer the filling to a shallow dish (I used a 9x9 pan) and press plastic wrap directly on the surface. Refrigerate for at least 4 to 6 hours, preferably overnight, until firm.
  • Once chilled completely, scoop portions of the chilled filling and roll it into balls weighing approximately 20-25g each (about 1 Tbsp in size)
  • Lay out three shallow bowls with 2 cups (240g) all-purpose flour, 6 eggs (whisked) and 3 cups (450g) fine plain breadcrumbs in their separate bowls.
  • Roll each ball in flour, dip in the beaten egg, and coat with breadcrumbs. Arrange the bitterballen on a tray and freeze for 30 minutes. Then remove the tray from the freezer and repeat the egg and breadcrumb coating once more to create a double-breaded crust (to save time you can omit the freezing step, but your breading will be a little thinner and less crunchy. In this case, simply bread a second time right away).
  • Arrange the breaded bitterballen on a tray and refrigerate for at least 2 hours.
  • Heat about 1½-2” of vegetable oil to 350°F (180°C) in a large pot.
  • Fry the bitterballen in small batches for about 3 minutes, or until deep golden brown and crisp.
  • Drain on a wire rack or paper towels and allow to cool for a few minutes before serving.
  • Serve warm with Dijon or yellow mustard and enjoy!

Video

Notes

Recipe researched using Toine’s Kitchen, The Dutch Table and The Spruce Eats.
  • Don't rush the chilling process. The filling needs to become very firm before you attempt to roll it into balls. Be sure to chill the filling before shaping and then chill again before frying.
  • Don’t forget to let your gelatin bloom. Do not add gelatin powder directly into your filling. Let it bloom before adding it into your mixture.
  • Let the filling cool before adding the gelatin. Adding gelatin while the mixture is extremely hot can weaken its ability to set properly.
  • Keep your bitterballen small. Around 20–25 grams each is ideal. Smaller balls are easier to bread and fry evenly, ensuring they won’t fall apart on you!
  • Double breading matters. The second layer creates a stronger barrier between the filling and hot oil, reducing the chance of leaks. It’s also helpful to use extra fine bread crumbs for the first layer and more coarse crumbs for the exterior.
  • Don't overcrowd the frying pot. Adding too many bitterballen at once can lower the oil temperature and result in greasy rather than crispy appetizers.
  • Watch the oil temperature. Aim for about 350°F. If the oil is too cool, the crust can become greasy; if it's too hot, the outside can brown before the filling is properly heated.
  • Taste the filling before chilling it. This is your best opportunity to adjust the salt, pepper, mustard, or nutmeg before the filling firms up.
  • Chuck Roast: You can use leftover shredded beef if you have some (like this beef in a slow cooker) but chuck roast is an excellent choice because it breaks down during the long cooking process, leaving the beef incredibly tender and flavorful. Traditional recipes often use beef brisket, but chuck is easier to find in smaller quantities and makes an excellent substitute.
  • Beef Stock: The homemade stock is one of the most important components of the recipe because it becomes the base of the filling. Cooking the beef with onion, bay leaf, peppercorns, and cloves creates a flavorful stock that gives the finished bitterballen a deep beefy flavor.
  • Gelatin: Gelatin allows the filling to firm up enough to be shaped into balls while keeping its signature soft, almost gravy-like texture once heated. Let the gelatin bloom in cool water first, and allow the beef mixture to cool slightly before adding it so the gelatin can work properly.
  • Butter: Butter forms the rich base of the roux and gives the filling a silky texture. It also helps balance the leaner beef and creates a luxurious interior.
  • All-Purpose Flour: Flour combines with the butter to create a roux, which thickens the beef stock and gives the filling enough structure to hold its shape.
  • Dijon Mustard: Mustard adds a subtle tang and savory depth that cuts through the richness of the beef and butter. Yellow mustard can be substituted if that's what you have available, though Dijon provides a slightly more complex flavor.
  • Nutmeg: A small amount of nutmeg adds warmth and is a traditional seasoning in the creamy beef filling. You don't need much—just enough to give the background flavor a little extra depth.
  • Breadcrumbs: Breadcrumbs create the crisp exterior that makes bitterballen so irresistible. Fine breadcrumbs work well for the first coating, while slightly coarser breadcrumbs can be used for the second layer for an especially crunchy crust.

Nutrition

Serving: 1bitterballen | Calories: 144kcal | Carbohydrates: 18g | Protein: 7g | Fat: 5g | Saturated Fat: 2g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 2g | Trans Fat: 0.2g | Cholesterol: 32mg | Sodium: 134mg | Potassium: 125mg | Fiber: 1g | Sugar: 1g | Vitamin A: 76IU | Vitamin C: 0.2mg | Calcium: 31mg | Iron: 2mg