Prepare a refreshing and vibrant fish ceviche using fresh white fish and a potent blend of citrus juices. This light dish is an ideal appetizer or healthy meal for warm weather, utilizing a traditional curing process to achieve a tender texture.

List of ingredients
- 2 pounds white fish fillet (cod, halibut, mahi mahi, tilapia, snapper, or sea bass), chopped into small, bite-size square pieces
- 2 serrano peppers, sliced thin for heat
- 4 cloves garlic, smashed to release oils
- 2 tablespoon fresh cilantro, chopped
- 2 teaspoon salt for the fish marinade
- 10 limes, juiced (enough to fully cover the fish)
- 1 large grapefruit, juiced for depth
- 2 oranges, juiced for a hint of sweetness
- 2-3 shallots, thinly sliced
- 3 teaspoon salt, divided for soaking and marinating
- warm water for soaking shallots
- 5 Roma tomatoes, seeded and diced
- 2 small bell peppers, seeded and diced
- 10 limes, juiced for the vegetable mix
- 1 small bunch fresh cilantro, chopped for finishing
- 1 tablespoon olive oil for richness
- hot sauce, to taste
step-by-step instructions
- Marinate the fish: Place the diced fish in a large bowl. Add the sliced serrano peppers, smashed garlic, chopped cilantro, and salt. Pour the juice from 10 limes, 1 grapefruit, and 2 oranges over the fish. Ensure the fish is completely submerged; add more lime or lemon juice if necessary.
- Cure the fish: Cover the bowl tightly with plastic wrap. Place it in the refrigerator to keep the fish cold. Let it “cook” for 1 to 4 hours, stirring the mixture every hour to ensure even marination.
- Prepare the shallots: In a separate bowl, combine the sliced shallots with warm (not boiling) water and 2 teaspoons of salt. Mix well and let them soak for 10 to 15 minutes. Drain the water and rinse the shallots thoroughly with cold water before refrigerating.
- Marinate the vegetables: About 30 minutes before serving, combine the soaked shallots, diced tomatoes, and diced bell peppers in a large mixing bowl. Add the juice from 5 to 10 limes and 1 teaspoon of salt. Mix well and let the mixture rest for 15 minutes, then drain about half of the liquid and refrigerate.
- Verify doneness: Check the fish pieces. The exterior should be completely white and opaque. Depending on preference, you can leave the center slightly translucent for a “medium rare” effect or wait until it is white throughout for a “well done” finish.
- Final assembly: Remove the smashed garlic cloves from the fish bowl. Fold in the marinated tomato, shallot, and bell pepper mixture. Stir in the fresh chopped cilantro, olive oil, and several dashes of hot sauce if desired.
Selecting the Best Seafood
Prioritize Sushi-Grade White Fish
When making ceviche, it is essential to use sushi-grade fish intended for raw consumption. This grade of fish is typically frozen at very low temperatures to kill any potential parasites. Always verify the quality with your fishmonger to ensure the safest results.
The Texture of Halibut and Snapper
Snapper and halibut are excellent choices because they have a firm texture that resists becoming mushy. Cod and tilapia are also options, though they are softer and may require a shorter marination time. Choosing a firmer fish helps maintain a pleasant bite after the curing process.
Identifying Freshness by Scent and Sight
Fresh fish should have a mild, oceanic scent rather than a strong “fishy” odor. The flesh should be translucent and spring back when lightly pressed. Avoid any fillets that appear dull, slimy, or have bruising on the meat.
Citrus Marination Science
The Role of Lime Juice in Curing
Lime juice contains citric acid, which denatures the proteins in the fish. This process changes the structure of the protein chains, making the fish opaque and firm, similar to the effects of heat. The higher the acidity, the faster the fish “cooks.”
Adding Depth with Grapefruit Juice
Grapefruit juice provides a sophisticated balance to the sharp acidity of the lime. Its slight bitterness and floral notes add complexity to the marinade. This helps prevent the dish from tasting one-dimensionally sour.
Using Orange Juice for Balance
Orange juice introduces a natural sweetness that mellows out the intensity of the citrus blend. This sweetness contrasts with the salt and heat from the peppers. It creates a more rounded flavor profile that appeals to a wider range of palates.
The Necessity of Freshly Squeezed Juice
Bottled lime juice concentrates often contain preservatives and lack the volatile oils found in fresh fruit. Freshly squeezed juice provides a brighter flavor and the correct pH level for effective curing. An electric juicer is recommended due to the quantity of fruit required.
Customizing Your Flavor Profile
Adjusting Heat with Different Peppers
Serrano peppers provide a crisp, sharp heat that is traditional for this dish. If you prefer a milder taste, you can substitute them with jalapeños. For those who enjoy extreme heat, a finely minced habanero can be added in small quantities.
Incorporating Fresh Cucumber for Crunch
Finely diced cucumber is a wonderful addition that adds a cooling element to the dish. It provides a refreshing crunch that contrasts with the tender fish. Ensure you seed the cucumber first to prevent the ceviche from becoming too watery.
Adding Sweet Corn Kernels
Adding fresh or roasted corn kernels introduces a pop of sweetness and a different texture. This is a common variation in Peruvian-style ceviches. Corn pairs exceptionally well with the acidic lime juice and salty fish.
Experimenting with Onion Varieties
While shallots provide a mild, sweet flavor, red onions are a popular alternative for a bolder taste and vibrant color. White onions can also be used, though they have a sharper bite. Always soak your onions in salt water to remove the harsh raw sulfur flavor.
Serving and Presentation
Traditional Pairing with Corn Tortillas
Serving ceviche with warm corn tortillas allows guests to scoop the fish easily. The earthy flavor of the corn complements the bright citrus. Lightly toast the tortillas for added texture.
Utilizing Plantain Chips for Contrast
Plantain chips offer a sturdier base than corn chips and a unique sweet-and-salty flavor. The density of the plantain chip prevents it from breaking under the weight of the marinated fish. This is a favorite pairing in many Caribbean regions.
Balancing Acid with Creamy Avocado
Sliced or cubed avocado adds a rich, creamy fat that balances the high acidity of the lime juice. This creates a more satisfying mouthfeel and rounds out the sharp edges of the citrus. Add avocado just before serving to prevent browning.
Plating for Guest Presentation
For a formal appetizer, serve individual portions in chilled martini glasses or small glass bowls. Garnish with an extra sprig of cilantro and a lime wedge on the rim. Keeping the serving vessels cold helps maintain the freshness of the seafood.
Storage and Preservation
Maximum Refrigeration Time
Ceviche is best enjoyed within 24 to 48 hours of preparation. Because the fish continues to cure in the acid, it can become rubbery if left too long. Consuming it quickly ensures the best texture and flavor.
Using Airtight Glass Containers
Store leftovers in glass containers with an airtight seal to prevent the fish from absorbing other refrigerator odors. Glass is preferable to plastic as it does not retain scents and keeps the contents colder. Ensure the fish remains fully submerged in its liquid.
Avoiding the Freezer
Do not freeze ceviche once it has been cured in citrus juice. Freezing alters the protein structure further, resulting in a mushy and unappealing texture upon thawing. It is better to make smaller batches as needed.
Troubleshooting Your Ceviche
Fixing Over-Marinated Fish
If the fish has been in the lime juice too long and feels rubbery, you cannot reverse the process. To improve the experience, add more fresh vegetables like cucumber or avocado. This adds moisture and a softer texture to balance the firm fish.
Balancing Excess Acidity
If the dish tastes too sour, you can balance the flavor by adding a small amount more olive oil. A pinch of extra salt or a touch of honey can also neutralize the sharp acidic notes. Adjusting the ratio of vegetables to fish can also help.
Reducing Intense Pepper Heat
If the serrano peppers made the dish too spicy, add more diced tomatoes or bell peppers. The water content and sweetness in these vegetables dilute the capsaicin. You can also add more orange juice to mellow the heat.
Common Questions About Ceviche
Can I use frozen fish?
Yes, as long as the fish was flash-frozen at a professional facility to be sushi-grade. In many cases, frozen fish is safer than fresh fish because the freezing process kills parasites. Thaw the fish slowly in the refrigerator before dicing.
Is it safe for everyone to eat?
While the acid cures the fish, it does not kill all bacteria or viruses in the same way heat does. People with compromised immune systems or pregnant women should avoid raw or acid-cured seafood. For an extra safety step, some prefer to blanch the fish in boiling water for one minute first.
Can I make this without grapefruit?
Yes, grapefruit is used for flavor complexity but is not essential for the curing process. You can replace it with a small amount of lemon juice or simply increase the amount of orange juice for sweetness. The lime juice is the only mandatory citrus for the cure.
How do I know when the fish is done?
Look for a color change from translucent pink or clear to an opaque, milky white. The fish should feel firmer to the touch than raw fish. The exact time varies based on the thickness of the cubes and the acidity of your limes.
Print
Fresh and Tangy White Fish Ceviche
- Total Time: 90 minutes
- Yield: 8 servings 1x
- Diet: Seafood
Description
A perfect summer appetizer or light dinner, this Classic Fish Ceviche Recipe is made with cubes of fresh snapper and halibut cooked in lime juice and mixed with shallots, chili peppers, bell peppers, and fresh cilantro.
Ingredients
- 2 pounds white fish fillet (cod, halibut, mahi mahi, tilapia, snapper, sea bass), chopped into small, bite-size square pieces
- 2 serrano peppers, sliced thin
- 4 cloves garlic, smashed
- 2 tablespoon fresh cilantro, chopped
- 2 teaspoon salt
- 10 limes, juiced
- 1 large grapefruit, juiced
- 2 oranges, juiced
- 2–3 shallots, thinly sliced
- 3 teaspoon salt, divided
- warm water
- 5 Roma tomatoes, seeded and diced
- 2 small bell peppers, seeded and diced
- 10 limes, juiced
- 1 small bunch fresh cilantro, chopped
- 1 tablespoon olive oil
- hot sauce, to taste
Instructions
- Marinate (“cook”) the fish: Transfer the diced fish to a large bowl. Add the serrano peppers, garlic, cilantro, and salt. Cover with the juice from approximately 10 limes, 1 grapefruit, and 2 oranges. If your fish is not completely covered, add more lime (or lemon juice) as needed until it is.
- Allow the fish to cook: Cover the bowl with plastic wrap and transfer to the refrigerator to keep cold. Allow your fish to “cook” for 1-4 hours. Stir every hour.
- Soak the shallots: Add the shallots to a separate bowl and cover with hot (not boiling) water and 2 teaspoons salt. Mix well. Allow the shallots to soak for approximately 10-15 minutes before draining and rinsing with cold water. Cover and set aside in the refrigerator until ready to use.
- Marinate the tomatoes: Approximately 30 minutes before serving, add the shallots, tomatoes, and bell pepper to a new, larger, mixing bowl. Add the juice from approximately 5-10 limes and sprinkle with approximately 1 teaspoon of salt. Mix well to combine. Allow the tomatoes, shallots, and bell pepper to rest for approximately 15 minutes. Drain approximately half the liquid from the bowl, cover, and set aside in the refrigerator.
- Check the fish: Check the doneness of your fish. The fish should, at the very least, be completely white around the outside.
- Put it together: Once the fish is ready, remove the smashed garlic cloves. Add the tomato, shallots, and bell peppers to the fish, mixing well to combine. Stir in the chopped cilantro and olive oil and several dashes of hot sauce, if desired.
Notes
The level of doneness is personal; check fish every 30 minutes. The primary citrus should always be lime or lemon. Keep leftovers stored in an airtight container in the refrigerator for up to 2 days.
- Prep Time: 30 minutes
- Cook Time: 60 minutes
- Category: Appetizer
- Method: Marinating
- Cuisine: Mexican, Peruvian
Nutrition
- Serving Size: 1 serving
- Calories: 227 kcal
- Sugar: 11 g
- Sodium: 1520 mg
- Fat: 4 g
- Saturated Fat: 0 g
- Unsaturated Fat: 4 g
- Trans Fat: 0 g
- Carbohydrates: 30 g
- Fiber: 7 g
- Protein: 25 g
- Cholesterol: 56 mg