Welcome, today I’m sharing my full Peruvian ceviche recipe, the way I actually like to make it at home.
It’s bright, spicy, clean, and super fresh tasting, with a proper leche de tigre (tiger’s milk) that makes the whole bowl feel like something you’d order in Lima.

I’m keeping it realistic for U.S. kitchens too, so you can use aji limo if you find it, but you can still make an amazing ceviche with habanero, serrano, or even Fresno chile.
Overview
- Cuisine: Peruvian
- Prep Time: 25 minutes
- Chill Time: 45 minutes
- Cook Time: 15 minutes (sweet potato + corn)
- Servings: 4
Hi, my name is Dipendra Kumar. I like cooking food for my family and relatives. I am a pro chef, and I make my own method recipes. I uploaded my recipes videos on social media.
Peruvian Ceviche Recipe
Peruvian ceviche is one of those dishes that looks fancy, but honestly, it’s mostly about ingredients and timing.
The biggest secret is not overthinking it. You want very fresh fish, lime juice squeezed right before you use it, crisp onion that doesn’t overpower, and a little heat from chile.
The other big thing is that Peruvian ceviche is not usually marinated for hours like some other styles.
The fish is “cooked” quickly in citrus and served right away. That’s why it tastes so clean and alive.
What is it?
Ceviche is raw fish that becomes firm and opaque because of citrus juice.
It’s not cooked by heat, but the proteins change structure due to the acid. That’s why it turns white and feels “done” even though it never touched a pan.
Peru has made ceviche famous for a reason. The flavor profile is sharp and fresh, with a salty edge and a little chile heat.
And the side garnishes (sweet potato, corn, cancha) aren’t just for decoration. They balance the acidity and spice.
“Cooking” Ceviche
When you pour lime juice over fresh fish, the acid starts denaturing the proteins right away.
That’s why you’ll see the fish go from translucent to opaque. But here’s the important part: if you leave it too long, the texture changes and can become rubbery or dry.
For classic Peruvian ceviche, I personally like the fish to marinate for around 10–15 minutes once everything is mixed, but the leche de tigre can chill longer.
How to Master the Art of Ceviche
I’ve learned the hard way that ceviche is one of those recipes where small details matter more than complicated technique.
Fresh fish is non-negotiable. If the fish smells fishy, don’t use it. It should smell like the ocean, clean and almost sweet. Also, cut the fish evenly so it “cooks” at the same speed.
Another thing is the lime juice. You want fresh squeezed, strained, and you don’t want to squeeze the lime too aggressively because that can pull bitterness from the pith.
If your limes are very sharp (common outside Peru), a tiny pinch of sugar in the leche de tigre can balance it without making it sweet.
Ingredients
This is my go-to version that combines what’s most authentic with what’s easiest to actually pull off at home.
Ingredients Table (Serves 4)
| Amount | Unit | Name | Notes |
|---|---|---|---|
| 1 1/2 | lb | very fresh white fish | sea bass, halibut, fluke, snapper, cod, or grouper |
| 1/2 | cup | fresh lime juice | plus more if needed; strain it |
| 1/2 | cup | fresh lime juice (for leche de tigre) | squeezed right before blending |
| 1 | cup | ice | divided |
| 1/2 | cup | celery | chopped |
| 1/2 | cup | white onion | chopped for leche de tigre |
| 1 | cup | red onion | thinly sliced for serving |
| 2 | tsp | kosher salt | plus more to taste |
| 1/2 | tsp | black pepper | optional but I like it |
| 1 | tsp | fresh ginger | peeled and grated |
| 1 | small | garlic clove | grated or minced |
| 1 | small | chile pepper | aji limo, habanero, serrano, or Fresno |
| 2 | tbsp | cilantro | chopped leaves and tender stems |
| 1 | medium | sweet potato | boiled or broiled |
| 1 | ear | corn | Peruvian choclo if possible, or regular corn |
| 1/2 | cup | cancha | toasted corn, for serving |
| 1 | tbsp | olive oil | optional drizzle, not traditional everywhere but delicious |
Equipment
You don’t need much, but what you do need matters.
| Amount | Name | Notes |
|---|---|---|
| 1 | sharp chef’s knife | Makes lime juice fast and clean |
| 1 | cutting board | preferably non-porous |
| 1 | citrus juicer | makes lime juice fast and clean |
| 1 | fine-mesh strainer | for silky leche de tigre |
| 1 | blender | for the leche de tigre base |
| 2 | mixing bowls | one for fish, one for onions |
| 1 | small pot | for boiling sweet potato and corn |
| 1 | measuring cups | helps keep the balance right |
| 1 | serving platter | chilled if possible |
What is leche de tigre
Leche de tigre is basically the soul of Peruvian ceviche. It’s the tangy, salty, slightly spicy lime mixture that the fish sits in.
A lot of people think it’s just lime juice, but in the more classic restaurant-style version, it’s blended with aromatics and a tiny bit of fish trimming.
That blending is what makes it look a little cloudy and “milky.” It also makes the flavor deeper and more rounded instead of just a straight lime punch.
Is there milk in leche de tigre?
Nope. Traditional leche de tigre does not contain milk. Some modern recipes add evaporated milk for creaminess, but it’s not the classic version.
In this recipe, the cloudy look comes from fish proteins and blended onion/celery, not dairy. And personally, I think it tastes cleaner without milk.
The fish for ceviche
For Peruvian ceviche, I always recommend a firm, lean white fish.
Fatty fish like salmon can work in other ceviche styles, but it’s not the same vibe. You want something that stays clean and bouncy once it hits the lime.
Good options in the U.S. include sea bass, halibut, cod, flounder, snapper, grouper, and fluke. If you’re unsure, ask the fish counter what they’d serve raw that day.
Also, keep the fish cold. I literally put the fish bowl over ice sometimes because warm fish plus lime can turn mushy fast.
Chile Pepper Options
If you can find aji limo, use it. It’s so bright and fruity. But it’s not easy to find everywhere.
Here’s what works well:
- habanero (closest heat + aroma)
- Serrano (sharp and clean)
- Fresno (milder and fruity)
- jalapeño (works, but a bit more grassy)
I remove the seeds and inner ribs most of the time, because I want flavor more than pain.
Simple Peruvian Ceviche vs. Restaurant Style
A simple Peruvian ceviche is usually fish, lime, salt, onion, and chile. That’s the purest form. It’s honestly amazing, and it’s what many people in Peru consider the real deal.
Restaurant-style ceviche often includes leche de tigre blended with celery, ginger, garlic, and fish trimmings.
That’s the version I’m making here because it’s so flavorful, and it makes the dish feel extra special.
Authentic Peruvian Ceviche
To keep this recipe authentic, I stick to the traditional flavor balance: strong lime, salty backbone, crisp onion, and chile. I also serve it with sweet potato, corn, and cancha.
The timing is also part of authenticity. Peruvian ceviche is meant to be eaten right away. This is not the dish you prep at 10 a.m. for a 6 p.m. party. It will not love you for that.
Classic Peruvian Ceviche
Classic Peruvian ceviche is bright, fast, and clean. The fish pieces are usually around 3/4 inch to 1-inch cubes.
The onion is thin and crisp. The lime is aggressive. And the sides calm everything down.
It’s a very simple dish, but it tastes like something you remember.
Peruvian Fish Ceviche
This version is a fish ceviche, which is the most traditional. Shrimp ceviche is also popular, but fish ceviche is the classic base.
Fish ceviche is also the one that’s most sensitive to time. Once the fish is “cooked” in lime, it starts changing texture quickly, so serving fast is key.
Peruvian Ceviche with Leche de Tigre
This recipe includes leche de tigre, and I’m doing it the blended way with celery, onion, ginger, garlic, ice, and fish trimming. That’s what gives it a restaurant taste.
And yes, you can absolutely sip the extra leche de tigre from the plate. I do. No shame.
Peruvian Ceviche with White Fish, Red Onion & Ají Sauce
This ceviche is built around white fish, red onion, and ají flavor. If you don’t have ají amarillo paste, you can still create that Peruvian chile vibe with habanero or serrano.
If you do have ají amarillo paste, you can add 1 teaspoon into the leche de tigre for a deeper flavor. It’s optional, but it’s so good.
Ingredients (again, but the important details)
I know I already gave the table, but these details matter.
Use fresh lime juice, not bottled. Use a thin red onion, and rinse it. Use fish that you’d actually feel comfortable eating raw.
If you’re nervous, you can freeze the fish first (some people do this for safety), but it can slightly change the texture.
How do I make this recipe? “Method”
This is the method that gives you a consistent ceviche, not a random one.
Step 1: Prep the onion
Thinly slice the red onion and place it in a strainer. Rinse under cold running water for about 45–60 seconds. Taste one slice. If it still bites too hard, rinse a little longer. Set aside in the fridge.
Step 2: Cook the sweet potato and corn
Boil the sweet potato until fork tender, about 12–15 minutes depending on thickness. Boil the corn until tender, about 6–8 minutes. Drain both and let cool.
If you want a more modern twist, you can broil the sweet potato slices instead of boiling. I do this when I want slightly caramelized edges.
Step 3: Make the leche de tigre
In a blender, combine celery, white onion, ginger, garlic, 1–2 ounces of fish trimming (or a small piece of the fillet), 3/4 cup water, and 1 cup ice. Blend until mostly smooth.
Add lime juice and blend for 2 seconds just to mix. Strain through a fine mesh sieve into a bowl. Taste and adjust salt. Chill for at least 30–45 minutes if you can.
Step 4: Cut and chill the fish
Cut the remaining fish into even cubes. Place the fish in a bowl set over ice (or put the fish bowl into the fridge). Sprinkle with a pinch of salt and toss gently.
Step 5: Mix the ceviche
Add the rinsed red onion, chopped cilantro, and chopped chile to the fish. Pour in about 3/4 cup of leche de tigre and toss gently.
Let it sit for about 10–15 minutes until the fish looks opaque on the outside. Don’t walk away and forget it.
Step 6: Serve immediately
Plate the ceviche right away. Add sweet potato slices, corn, and cancha on the side. Pour a little extra leche de tigre over the top and drizzle with olive oil if you want.
Directions (Serving Style)
Peruvian ceviche is traditionally served on a flat plate rather than swimming in a bowl of juice.
I like to spoon some of the fish mixture onto the plate, then pour the leche de tigre around it and slightly over it.
That way, the fish stays textured, but you still get that juicy tang.
To serve
Serve ceviche with:
- boiled sweet potato (or broiled slices)
- boiled corn (choclo if possible)
- cancha (toasted corn nuts)
- lettuce leaves if you want a classic presentation
- extra lime wedges for people who always want more tang
For the Garnish
For garnish, I keep it simple:
- extra cilantro
- a few thin onion slices
- a little chopped chile
- cancha for crunch
Pro Cooking Tips for Success
The best ceviche I’ve ever made came down to cold temperature and good timing.
Keep the fish cold the entire time. Chill the plates if you can. Make the leche de tigre ahead and refrigerate it so you’re not blending while the fish warms up.
Also, don’t drown the fish in lime juice and leave it for an hour unless that’s the style you personally want. For Peruvian ceviche, quick is the point.
Serving Suggestions
I love serving this with an ice-cold beer, sparkling water with lime, or even a pisco sour if it’s a weekend situation.
If you’re turning it into a meal, serve it with:
- plantain chips (chifles)
- tortilla chips (not traditional, but people love it)
- steamed rice (also not traditional, but works)
Storage & Make-Ahead Tips
Ceviche is not a great leftover dish. The fish will continue changing texture, and by the next day, it can become dry and chalky.
If you want to prep ahead, you can:
- Slice and rinse onions up to 24 hours in advance
- Cook sweet potato and corn earlier in the day
- Make leche de tigre 1–2 hours ahead and chill it
But the fish should always be cut and mixed close to serving.
Delicious Variations
If you want to play around, these variations are fun:
- Add diced avocado for creaminess (not traditional, but delicious)
- Add a small spoon of ají amarillo paste into the leche de tigre
- Top with crispy squid (ceviche carretillero style)
- Add shrimp for a ceviche mixto vibe
Substitutes for Common Ingredients
If you can’t find certain ingredients, here’s what I do.
Aji limo: substitute habanero, serrano, Fresno, or jalapeño.
Cancha: substitute roasted corn nuts, or even crushed tortilla chips.
Choclo: substitute regular corn or canned hominy (drained).
Key limes: use regular limes, but taste and adjust.
Healthier Options
Ceviche is already one of the lighter dishes you can make. But if you want to keep it extra clean:
- skip the olive oil drizzle
- use more fish and less sweet potato
- serve with lettuce and corn instead of chips
- go easy on salt if you’re watching sodium
Nutritional Information
Here’s the nutrition breakdown (estimated per serving, based on 4 servings). Values will change depending on fish type and how much sweet potato/corn you add.
- Calories: ~170–220
- Protein: ~28–35g
- Carbohydrates: ~12–20g
- Fat: ~2–6g
- Fiber: ~2–4g
- Sodium: varies depending on salt added
Nutrition benefits
One reason I love ceviche is that it feels refreshing and light but still filling. Fish is a great source of lean protein, and the lime juice adds vitamin C.
The onion and chile bring antioxidants, and the sweet potato adds fiber and potassium.
It’s one of those meals that leaves you satisfied without feeling heavy, and honestly, I appreciate that so much.
Personal tips (what I do)
I always taste the leche de tigre before I add it to the fish. If it doesn’t taste good on its own, the ceviche won’t taste good either. I want it punchy, salty, and just slightly spicy.
I also rinse the onions every single time. I used to skip it and then wonder why my ceviche tasted harsh. Rinsing makes a huge difference, and it takes one minute.
And lastly, I don’t make ceviche when I’m rushed. It’s fast, yes, but it needs your attention for that short window where it’s perfect.
Where to Try the Best Ceviche in Lima
If you ever travel to Lima, you’ll notice something immediately: Ceviche is not just food, it’s part of the city’s identity.
The best ceviche is usually eaten earlier in the day, because the fish is at its freshest.
Even small casual restaurants can serve unforgettable ceviche. And once you taste it there, you’ll understand why people become obsessed with getting the flavor right at home.

Peruvian Ceviche Recipe
Ingredients
Equipment
Method
- Add celery, white onion, salt, ginger, garlic, fish trimmings, 3/4 cup cold water, and 1/2 cup ice into a blender. Blend until mostly smooth.

- Add the strained lime juice and pulse 2–3 seconds just to mix.

- Strain the mixture through a fine-mesh sieve into a bowl. Press gently to extract liquid. Discard solids.

- Refrigerate the leche de tigre until very cold, about 45 minutes.

- Ceviche
- Thinly slice the red onion and rinse under cold running water for about 1 minute. Taste and rinse longer if it still bites too hard. Chill until needed.

- Cut the fish into even 3/4-inch cubes. Place into a cold bowl (I like setting it over ice). Season with a pinch of salt and gently toss.

- Add red onion, cilantro, and chopped chile to the fish. Add black pepper if using.

- Pour in about 3/4 cup of the chilled leche de tigre and toss gently. Let sit 10–15 minutes until the fish looks opaque on the outside.

- Serve
- Plate the ceviche immediately. Spoon extra leche de tigre over the top.

- Serve with sweet potato, corn, and crunchy cancha on the side. Drizzle with a little olive oil if you want.

Notes
- The #1 rule for ceviche is fresh fish. If it smells “fishy,” don’t use it.
- Don’t marinate for hours. Classic Peruvian ceviche is meant to be eaten right away.
- If your limes are extremely sour, you can add a tiny pinch of sugar to the leche de tigre to balance it (not enough to taste sweet).
- You can substitute aji limo with habanero, serrano, or Fresno without ruining the recipe.
FAQs:-
How long should Peruvian ceviche marinate?
Usually, 10 to 15 minutes is enough for classic Peruvian ceviche. The fish should look opaque on the outside but still tender inside.
What fish is best for Peruvian ceviche?
The best fish is a very fresh, firm white fish like sea bass, halibut, snapper, cod, grouper, or fluke.
Can I make Peruvian ceviche ahead of time?
Not really. Peruvian ceviche is best served immediately. You can prep onions and leche de tigre ahead, but mix the fish right before eating.
Is ceviche safe to eat?
Ceviche can be safe if you use sushi-grade or very fresh fish, keep everything cold, and follow clean food handling. Lime juice doesn’t kill all bacteria, so freshness matters a lot.
What is leche de tigre made of?
Leche de tigre is made from lime juice, fish trimmings, onion, celery, garlic, ginger, chile, cilantro stems, and salt, blended and strained until smooth.
Ceviche – Classic Peruvian Fish Recipe
Conclusion
This is one of those recipes that makes you feel like a pro with very little effort, as long as you respect freshness and timing. The leche de tigre brings everything together, and the sweet potato, corn, and cancha make it feel truly Peruvian.
If you try it, eat it right away, and enjoy it in that perfect moment, because ceviche never waits for anyone.
I hope this Peruvian ceviche recipe brings a little Lima energy into your kitchen. Thanks for cooking with me, and I’m sending you warm, happy vibes from my table to yours.
Read More:- Homemade Pimento Cheese Recipe