Disclosure: As an Amazon Associate I earn from qualifying purchases. Some links in this post are affiliate links, meaning I may earn a small commission at no extra cost to you.
I am going to be upfront: ceviche is not my favorite dish. I grew up in Lima, where ceviche is a “religion”, and I still approach it with a healthy amount of caution. Raw fish and I have a complicated history.
My mother loved ceviche. She ordered it whenever she could, but she rarely made it at home because cleaning fresh fish was a project and buying fillets in Lima was more expensive than other proteins. So ceviche was something we ate out, not something that came out of our kitchen. My father would go along to the cevicheria and order something else. That was our family’s relationship with the dish.
Things changed for me in the US. Here the default at any grocery store or fish market is the clean fillet, already boneless, already prepared. In Lima fresh fish was available but it usually came whole, and cleaning it was part of the deal. I could do it, but it was not my favorite part. Here I just pick up the fillet and get to work. That made ceviche a much easier dish to approach.
Raw fish is something I approach carefully and I only make this dish with fish I trust from a reputable source. But when I make it, I make it properly. And this version, with a blended citrus and ají marinade that builds more flavor than lime juice alone, is the one worth making.
Peruvian ceviche is one of the most recognized dishes in Latin American cuisine and Peru’s most iconic export to the world. At its most basic it is fresh white fish cut into cubes, marinated in an acid element, typically lime juice, with salt, pepper, and a hot pepper. That is the classic version and it is good.
This version adds a few steps that build more complexity without overcomplicating the dish. Instead of squeezing lime directly over the fish, you build a blended citrus marinade using ají amarillo, cilantro, celery, scallions, and a combination of lime and lemon juice. You let it rest, blend it, strain it, and use that as the marinade for the fish. The result has layers of flavor and aroma that plain lime cannot achieve on its own.
It is not a restaurant technique. It is a couple of extra steps that make a real difference.
This is the question US readers ask most and it is a fair one. The acid in lime juice denatures the proteins in the fish, which changes its texture and color similarly to how heat would, but it does not eliminate pathogens the way cooking does. That means the quality and freshness of the fish is the most important variable in this recipe.
If you eat sushi or sashimi, you already eat raw fish from a trusted source and the concept is the same here. The key is buying from a reputable fish market or grocery store with high turnover, not a sketchy counter where the fish has been sitting out. Ask when the fish came in. Look for bright eyes if buying whole, or firm flesh with no smell if buying fillets.
In the US, most large grocery stores with a fish counter are a safe bet. Whole Foods, Asian fish markets, and any market with visible high turnover are your best options. I buy tilapia from my local market in Queens and it works well for this dish.
One of the questions I get the most: where do I find Peruvian ingredients here in the US? I get the frustration. Walking into an American supermarket and not finding ají panca is enough to discourage anyone. Here’s what I use and where I find it:
Ají Panca Paste: The key ingredient of the filling. It gives the beef its dark color and lightly smoky flavor, and this is what makes a Peruvian papa rellena taste different from any other stuffed potato. I use Inca’s Food, a Peruvian brand with good reviews and fast shipping on Amazon. You can order it here: “Inca’s Food Ají Panca Paste” on Amazon.
Ají Amarillo Paste: If you want to make a more authentic dipping sauce on the side (or my ají de pollería when that post is live), ají amarillo is essential. Also easy to get on Amazon. Look for “Inca’s Food Ají Amarillo Paste” or Doña Isabel.
Black olives: Botija olives are ideal; Kalamata are a great stand-in. Pitted black olives as a last resort. You’ll find them at any American supermarket in the canned goods or international aisle, no special order needed.
For ceviche, you want a white fish with lean, firm flesh that holds its shape when cut into cubes and does not release too much water when the acid hits it. Fatty fish like salmon have too strong a flavor and the texture does not work the same way with citrus.
The most accessible options in the US are tilapia, mahi mahi, flounder, and sea bass. Tilapia is the most widely available and the most affordable. It is mild, firm, and works well here. Mahi mahi has a slightly more pronounced flavor that stands up well to the ají amarillo. Either one is a good starting point.
Whatever you choose, buy fillets. No bones, no skin, no guesswork. That is the version that makes ceviche accessible regardless of your history with fish.
Ají amarillo paste is the ingredient that makes this taste Peruvian. It goes into the marinade and gives the ceviche its characteristic fruity heat and golden color. Find it at Latin grocery stores or online. [Affiliate link: ají amarillo paste on Amazon]
Ají limo is the other pepper traditionally used in Peruvian ceviche. It has a more floral, citrusy heat than ají amarillo and is harder to find outside of Peru. If you cannot find it fresh, look for it frozen or jarred form at a Peruvian specialty store or online. (Affiliate link: Aji Limo)
Canchita, the Peruvian toasted corn, is the accompaniment that most US readers will not find at a regular grocery store. It is worth seeking out because the crunchy texture is part of the ceviche experience. Find it at Latin markets or on Amazon. (Affiliate link: canchita on Amazon)
Chifles are green plantain chips. You can find these at any Latin grocery store or in the international snack aisle of larger supermarkets. No Amazon link needed.
Buy the freshest fish you can find: Ask when it came in. High turnover is more important than the brand or the price. Fresh fish for ceviche is not optional.
Use fillets, always: Bones in ceviche are not a problem to work around. They are a reason to use a different cut. Fillets only.
Keep everything cold: The fish goes on ice as soon as it is cut. The marinade gets ice added before blending. Cold temperatures preserve the texture of the fish and the brightness of the citrus.
Save the fish scraps for the marinade: The trim and smaller pieces that do not make it into the main cubes go into the marinade before blending. They add an oceanic depth that citrus alone cannot provide. Do not throw them away.
Cut the fish into uniform cubes: Same size means even marinating. Large and small pieces together means some are overdone and some are underdone when you serve it.
Do not over-marinate: Two to three minutes in the marinade is enough. Beyond that the fish starts releasing water and the texture turns mealy. Ceviche is made to order and eaten immediately.
Soak the onions before using: Five minutes in cold water with a tablespoon of brown sugar pulls out the sharp bitterness of raw red onion without losing the crunch.
Serve immediately: Once the fish hits the marinade, the clock starts. Plate it, bring it to the table, eat it. Ceviche does not hold.
This marinade starts releasing so many aromas, you can taste it. Be patient, this step is worth the wait.
Blending will make sure the marinade is smooth; don’t forget to strain it!
Ceviche is a simple dish that you will find all over Peru and South America. This version has few ingredients, but it has a lot of flavor.
The accompaniments are not garnish. Each one plays a role in the balance of the plate.
Boiled sweet potato adds sweetness that offsets the acidity of the marinade. Canchita provides crunch and absorbs some of the liquid. Chifles add a salty, crispy element with a different texture than the canchita. Fresh cilantro leaves on top add aroma right before eating.
Serve everything together in the bowl and make sure each spoonful has a little of each element. That combination is how ceviche is eaten in Peru and it is the right way to eat it.
Ceviche does not store. Make only what you will eat immediately. The fish continues to cook in the acid and the texture deteriorates quickly. Leftover ceviche is not the same dish. Some sites will tell you to do the marinate ahead of time, but I will tell you that the lime and other flavors won’t taste the same, just trust me on this one.
Is ceviche safe to eat if the fish is raw?
The lime juice changes the texture and appearance of the fish but does not eliminate pathogens the way heat does. The safety comes from the quality of the fish, not the acid. Buy from a reputable source with high turnover, keep everything cold, and eat it immediately. If you eat sushi from a good restaurant the risk level is comparable.
Can I use frozen fish?
Yes, with conditions. Thaw completely in the refrigerator, never at room temperature. Pat dry thoroughly before cutting because excess water dilutes the marinade and changes the texture. The flavor will be milder than fresh but the dish still works, especially with a well-built marinade.
What is the difference between Peruvian ceviche and Mexican ceviche?
Mexican ceviche typically marinates the fish for longer, sometimes hours, until it is fully opaque and firm throughout. Peruvian ceviche marinates for minutes and is meant to be eaten with the fish still partially raw in the center. The texture and flavor profile are quite different. Peruvian ceviche is brighter, more acidic, and more immediate.
Why do you use both lime and lemon juice?
In Peru the limes are smaller, juicier, and more acidic than US limes. The combination of lime and lemon juice here approximates that flavor profile better than either one alone. If you are in Peru or somewhere with excellent limes, you can skip the lemon entirely.
What is canchita and where do I find it?
Canchita is Peruvian toasted corn, similar to a corn nut but lighter and less dense. It is the classic crunchy element served with ceviche in Lima. Find it at Latin grocery stores or on Amazon. Do not substitute popcorn, the texture and flavor are too different.

Made this at home? Leave a comment below. And if you want to keep exploring Peruvian fish dishes, the Escabeche de Pescado recipe uses a completely different technique with a flavor profile that is just as complex.