Berliner (Krapfen) – Pillowy Jam-Filled German Doughnuts
Quick Recipe Version (TL;DR)
Quick Ingredients
- 500 g all-purpose flour (about 4 cups)
- 7 g instant yeast (2 1/4 tsp)
- 75 g granulated sugar (1/3 cup + 1 tbsp), plus extra for rolling
- 1/2 tsp fine salt
- 200 ml whole milk, lukewarm (3/4 cup + 2 tbsp)
- 2 large eggs, room temperature
- 60 g unsalted butter, very soft (4 tbsp)
- 1 tsp vanilla extract; optional 1 tsp lemon zest
- 1.5–2 L neutral oil for deep-frying
- 300–350 g smooth raspberry or plum jam (about 1 1/4 cups) or thick custard
Do This
- 1. Whisk warm milk, yeast, a spoonful of sugar, eggs, vanilla, then mix in flour, remaining sugar, and salt. Knead in soft butter to form a smooth, soft dough.
- 2. Knead 8–10 minutes until very elastic. Shape into a ball, place in a greased bowl, cover, and let rise until doubled, 60–90 minutes.
- 3. Punch down, divide into 16 pieces, and shape into tight, smooth balls. Place on floured parchment, flatten slightly, cover, and let rise until puffy, 30–45 minutes.
- 4. Meanwhile, warm jam to loosen (or chill custard). Fill a piping bag fitted with a long, narrow tip.
- 5. Heat oil to 170–175°C (340–350°F). Fry 3–4 dough balls at a time, 2–3 minutes per side, until golden with a pale ring. Drain on paper towels.
- 6. While still warm, pipe jam or custard into each Berliner from the side until slightly heavy.
- 7. Roll immediately in granulated sugar to coat. Serve warm or within a few hours.
Why You’ll Love This Recipe
- Classic German bakery flavor at home: fluffy, buttery dough with a soft, tender crumb.
- Generously filled: plenty of fruit jam or silky custard in every bite, not just a tiny dot in the middle.
- Simple ingredients: flour, milk, eggs, sugar, and oil you likely already have.
- Perfect for celebrations: ideal for carnival season, New Year’s, or any cozy weekend baking project.
Grocery List
- Produce: 1 lemon (for optional zest)
- Dairy: Whole milk, unsalted butter, eggs (plus extra egg yolks if making custard)
- Pantry: All-purpose flour, instant yeast, granulated sugar, fine salt, vanilla extract or paste, neutral frying oil (sunflower, canola, rapeseed), raspberry or plum jam (or ingredients for custard: cornstarch)
Full Ingredients
For the Dough
- 500 g all-purpose flour (about 4 cups), plus extra for dusting
- 7 g instant yeast (2 1/4 tsp) or 21 g fresh yeast, crumbled
- 75 g granulated sugar (1/3 cup + 1 tbsp)
- 1/2 tsp fine sea salt
- 200 ml whole milk, lukewarm (3/4 cup + 2 tbsp; about 35–38°C / 95–100°F)
- 2 large eggs, room temperature
- 60 g unsalted butter, very soft but not melted (4 tbsp)
- 1 tsp vanilla extract
- Optional but traditional: 1 tsp finely grated lemon zest or 1/4 tsp ground nutmeg
Classic Jam Filling
- 300–350 g smooth raspberry jam or plum jam (about 1 1/4 cups)
- If your jam is very thick, 1–2 tbsp water to loosen slightly
Optional Vanilla Custard Filling (Pastry Cream)
- 400 ml whole milk (1 2/3 cups)
- 3 large egg yolks
- 80 g granulated sugar (1/3 cup + 1 tbsp)
- 25 g cornstarch (about 3 tbsp, level)
- 1 tsp vanilla bean paste or 2 tsp vanilla extract
- Pinch of fine salt
For Frying & Finishing
- 1.5–2 L neutral oil with high smoke point (sunflower, rapeseed, canola) – enough for 5–7 cm depth in your pot
- 150–200 g granulated sugar (3/4–1 cup) for rolling
- Optional: powdered sugar for a light dusting just before serving

Step-by-Step Instructions
Step 1: Make the enriched yeast dough
In a small saucepan or microwave-safe jug, gently warm the milk until just lukewarm (35–38°C / 95–100°F). It should feel pleasantly warm, not hot. Too hot will damage the yeast.
In a large mixing bowl (or the bowl of a stand mixer), whisk together the lukewarm milk, yeast, 1 tbsp of the sugar, eggs, and vanilla. Let sit for 5 minutes if using active dry or fresh yeast, until slightly foamy. If using instant yeast, you can proceed right away.
Add the remaining sugar, flour, salt, and optional lemon zest or nutmeg. Mix with a wooden spoon or the dough hook on low speed until a shaggy dough forms and no dry flour remains.
Step 2: Knead until soft, smooth, and elastic
Add the very soft butter in small pieces. Knead by hand on a lightly floured surface or with a dough hook on medium-low speed for 8–10 minutes. The dough will start out sticky but will gradually turn smooth and elastic.
Resist the urge to add lots of extra flour; a slightly soft, tacky dough is what gives you pillowy Berliners. Scrape the bowl or your work surface as needed and keep kneading until the dough can be stretched into a thin “windowpane” without tearing easily.
Shape the dough into a smooth ball by tucking the edges underneath.
Step 3: Let the dough rise until doubled
Lightly grease a clean bowl with a little oil or butter. Place the dough ball inside, seam side down. Cover tightly with plastic wrap or a clean damp kitchen towel.
Let rise in a warm, draft-free spot until doubled in size, about 60–90 minutes, depending on room temperature. The dough is ready when a gently pressed fingertip leaves an indentation that slowly springs back.
If you plan to make the optional custard filling, prepare it now while the dough rises so it has time to cool completely before piping.
Step 4: Prepare the custard filling (if using)
In a medium saucepan off the heat, whisk together egg yolks, sugar, cornstarch, and salt until smooth and pale. Gradually whisk in the milk, making sure there are no lumps.
Place the pan over medium heat and cook, whisking constantly, until the mixture thickens and just begins to bubble, 4–6 minutes. Once thick and pudding-like, cook for 30 seconds more, then remove from heat and whisk in the vanilla.
Immediately pour the custard into a shallow dish, press plastic wrap directly onto the surface to prevent a skin forming, and chill in the fridge until cold and thick enough to pipe (at least 45 minutes).
Step 5: Shape the Berliners
Gently punch down the risen dough to release excess gas. Turn it out onto a lightly floured surface. Weigh or visually divide the dough into 16 equal pieces (each roughly 55–60 g).
To shape, cup your hand over a piece of dough and roll it on the counter with a gentle circular motion, tucking the edges underneath to create a tight, smooth ball. A smooth surface helps them fry evenly and look bakery-perfect.
Place the balls on a parchment-lined baking sheet lightly dusted with flour, spacing them a few centimeters apart. Gently press each ball down slightly to form a thick disc about 2–2.5 cm high. Cover loosely with a lightly oiled piece of plastic wrap or a clean towel.
Step 6: Proof the doughnuts a second time
Let the shaped dough rise again at room temperature until noticeably puffy and about 50–75% larger, 30–45 minutes. They should feel airy and delicate if you nudge them gently with a fingertip.
Near the end of this rising time, place a wide, heavy pot or Dutch oven on the stove and pour in enough oil to reach a depth of 5–7 cm. Begin heating the oil over medium heat until it reaches 170–175°C (340–350°F). Use a thermometer if possible for accuracy.
Step 7: Fry until golden with a pale ring
Line a tray with paper towels for draining and pour the granulated sugar for rolling into a shallow bowl or dish.
Once the oil reaches 170–175°C (340–350°F), carefully slide 3–4 dough pieces into the hot oil, turning them upside down as you add them so the delicate top goes in first. Avoid overcrowding; they need space to puff.
Fry for 2–3 minutes on the first side until golden brown, then gently flip with a slotted spoon and fry another 2–3 minutes on the second side. You should see a lighter-colored ring around the middle – the classic Berliner look.
Adjust heat as needed to keep the oil temperature in range; too hot and they will brown before cooking through, too cool and they will absorb excess oil. Remove fried Berliners with a slotted spoon, drain briefly on paper towels, then move on to the next batch.
Step 8: Fill with jam or custard and roll in sugar
While the Berliners are still warm but cool enough to handle, prepare your filling. For jam filling, if the jam is very thick, warm it gently with 1–2 tbsp water until just loose enough to pipe, then let it cool slightly. For custard, whisk the chilled pastry cream until smooth and transfer it to a piping bag.
Fit a piping bag with a long, narrow filling tip (or use a small round tip and insert it as far as you can). Poke a small hole in the side seam of each Berliner using a skewer or the piping tip.
Insert the piping tip into the center and gently squeeze until you feel the Berliner become slightly heavier and the filling just threatens to peek out of the hole. Do not overfill or it will burst.
Immediately roll each filled Berliner in granulated sugar while they are still a little warm so the sugar adheres nicely. Serve warm or at room temperature the same day for the very best texture.
Pro Tips
- Temperature is everything: Use lukewarm milk for the dough and monitor oil temperature while frying. Stable heat means evenly cooked, non-greasy doughnuts.
- Soft dough = fluffy Berliners: The dough should be soft and slightly tacky. Too much extra flour will make heavy, bread-like results.
- Proofing matters: Under-proofed doughnuts will crack and be dense; over-proofed ones may deflate when moved. They should be puffy and airy but still hold their shape.
- Pipe with patience: Fill slowly so you do not create internal gaps or burst the sides. Practice with one or two Berliners first to get a feel for the right amount.
- Fry and sugar in stages: Fill and coat each small batch while still warm. If they cool down completely, lightly mist with water so the sugar will stick.
Variations
- Different jams: Swap raspberry or plum for apricot, strawberry, red currant, or a mixed-berry jam. Just keep it fairly thick so it does not run.
- Cinnamon sugar: Stir 1–2 tsp ground cinnamon into the granulated sugar before rolling for a warmly spiced version.
- Glazed Berliners: Instead of rolling in sugar, dip cooled doughnuts in a simple glaze made from powdered sugar and a little milk or lemon juice.
Storage & Make-Ahead
Berliners are at their absolute best on the day they are fried, especially within the first 4–6 hours while the sugar coating is fresh and the crumb is ultra-soft. Store leftovers in an airtight container at cool room temperature for up to 1 day; the sugar may dissolve slightly, but they will still taste good.
For partial make-ahead, you can prepare the dough up to the first rise, then cover well and refrigerate overnight (it will rise slowly in the fridge). The next day, let the dough come back to room temperature, then shape, proof, and fry as directed. Custard filling can be made up to 2 days in advance and kept chilled.
Fried, unfilled Berliners can be frozen once cooled, well wrapped, for up to 1 month. Thaw at room temperature, warm briefly in a low oven (about 150°C / 300°F), then fill and roll in sugar just before serving.
Nutrition (per serving)
Approximate values per Berliner (assuming 16, jam-filled): about 320 kcal; 13 g fat; 45 g carbohydrates; 3 g fiber; 16–18 g sugar; 6 g protein; 210 mg sodium. Exact values will vary based on filling choice, size, and how much oil is absorbed during frying.


Leave a Reply