This post may contain affiliate links. Please read our disclosure policy.

This amazing Ceviche Recipe is made by “cooking” cubes of fresh snapper and halibut in fresh lime juice and then combining them with shallots, chili peppers, bell peppers, and fresh cilantro. Serve this delicious summer appetizer or light dinner with fresh corn tortillas, avocado, or plantain chips.

Large white shallow bowl filled with fish ceviche and garnished with fresh cilantro.

Easy Ceviche Recipe

I remember the first time I ever tried ceviche. My husband (then boyfriend) and I had just landed in San Jose, Costa Rica after what felt like the longest flight of my life. We ventured out of our hotel for dinner where he introduced me to the tangy and delicious world of ceviche.

I’ve been hooked ever since.

Save this recipe!
Get this sent to your inbox, plus get new recipes from us every week!
Please enable JavaScript in your browser to complete this form.

Ceviche is actually really easy to make and can be ready in as little as one hour. If you love this fish ceviche, be sure to check out my awesome shrimp ceviche recipe next.

Overhead view of a white bowl filled with fish ceviche served with tortilla chips.

What is Ceviche?

Ceviche (pronounced “seh-VEE-chay”) is a popular and well-known Latin American seafood recipe for raw fish marinated in citrus juice, primarily lime and lemon. Also known as cebiche, seviche, or sebiche, ceviche often includes onions, chiles, cilantro, and tomatoes

Ceviche recipes vary by region. Peru claims the origin of the dish to be nearly 2000 years ago in Lima.

Regardless of its origin, ceviche is now a popular international dish prepared in many different ways throughout the world (I have personally enjoyed this dish in California, Mexico, Tahiti, Fiji, and Costa Rica), with the greatest varieties found in Ecuador, Colombia, Chile, and Peru.

Close-up image of fresh fish ceviche.

Is Ceviche Safe to Eat?

Yes, when made properly. Let’s discuss how citrus juice “cooks” raw fish.

Here’s how it works: The acid from the citrus juice denatures the proteins in the fish. In other words, proteins are made up of long chains of amino acids (adenine, guanine, thymine, etc) which are the most fundamental building blocks of life. Place the fish chunks in a bowl of citrus acid and it causes these perfectly configured chains to reconfigure or break apart. Heat also accomplishes this (usually much faster).

But is it safe? This can’t be answered with a yes or a no. Citrus does kill many of the nasty bits that can make you sick; however, it will not protect you from things such as salmonella, certain parasites, and worms.

Making Ceviche Safe to Eat

  • ALWAYS purchase sushi-grade fish suitable for raw consumption. The safest choices include tuna, rockfish, halibut, lingcod, snapper, and seabass.
  • Make sure to chop the fish into small chunks to create more surface area for the citrus juice to cover.
  • If you’re really nervous, blanch the fish in boiling water for 1 minute before cooking in the citrus juice.
  • Enjoy within 24 hours…48 hours at the absolute MAX!
Limes cut in half.

Key Ingredients in Fish Ceviche

  • Fish—As I mentioned above, tuna, rockfish, halibut, lingcod, snapper, and seabass are all great options. The quality of your fish matters. Fresh fish caught that day is best; otherwise, look for sushi-grade frozen fish.
  • Chili peppers—Ají Amarillo is a type of chili used in many authentic Peruvian ceviche recipes. It may be used as a paste or finely minced. Unfortunately, I could not find Ají Amarillo, so I added serrano peppers, but jalapeño peppers would also work.
  • Garlic cloves—The garlic is left whole and smashed, and it is used primarily to season the marinade. However, it is optional, so feel free to leave it out.
  • Fresh cilantro—As part of the marinade and sprinkled fresh at serving.
  • Salt—It’s necessary. Trust me.
  • Limes—Making homemade ceviche will make you wish you had lime trees. That said, do not even think about making this with lime juice concentrate. Fresh lime juice only. Also, if you have an electric citrus juicer, definitely use it.
  • Grapefruit and Oranges—The main citrus for ceviche should always be limes or lemons or a combination of both, as they have a much higher acidity than grapefruit and oranges. That said, these other citrus fruits add a nice fruity flavor to the marinade, so I always like to add one or two.
  • Shallots—Ceviche almost always contains some kind of onion variety. I added thinly sliced shallots, but feel free to add red or white onion.
  • Tomatoes—I’ve learned that tomatoes are one of the less common ingredients. That said, I always add a few because they add a nice, mellow contrast to the other ingredients.
  • Bell pepper—I have made this recipe with bell peppers, cucumbers, and a mix of each. It’s entirely up to you. 
  • Olive oil—You don’t technically need the olive oil, but a little drizzle just before serving adds a nice touch of flavor (especially if you’re using a high-quality EVOO).
  • Hot sauce—Optional.
White bowl filled with raw fish, garlic cloves, chili peppers, and fresh cilantro.

How to Make Ceviche

1. Marinate (“cook”) the fish: Add the cubes of raw fish, serrano peppers, garlic, cilantro, and salt to a large bowl. Cover with the juice from approximately 10 limes, 1 grapefruit, and 2 oranges. Mix well to combine. If the fish is not completely covered with lime juice, continue adding additional lime juice until it is.

2. Allow the fish to “cook”: Cover with plastic wrap and transfer to the refrigerator to keep cold. Allow your fish to “cook” for 1-4 hours. Stir and check on the doneness of the fish every 30 minutes to 1 hour.

3. Soak the shallots: Add the sliced shallots to a separate bowl and cover with hot (not boiling) water and 2 teaspoons of salt. Mix well. Soak for approximately 10-15 minutes before draining and rinsing with cold water. Set aside in the refrigerator until ready to use.

4. Marinate the tomatoes: Approximately 30 minutes before serving (this can also be done ahead of time) add the shallots, tomatoes, and bell pepper to a new and much 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 mixture to rest for approximately 15 minutes. Drain approximately half of the liquid from the bowl, cover, and set aside in the refrigerator.

Large white bowl filled with chunks of raw fish, cilantro, chili peppers, and fresh lime juice.

5. Check the fish: Check the doneness of your fish. The fish should, at the very least, be completely white around the outside. I prefer my fish to be almost “well done”, but if you prefer a more “medium rare” that’s ok, too.

6. 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.

Chef’s Note

I marinated my fish ceviche for 4 hours.

Many people (maybe you?) would find this “cook” time to be too long. That’s fine. For me, it was the right amount of time as I wasn’t interested in completely raw fish on the inside. Some people like that sort of thing and that’s ok. I prefer to save that for actual sushi.

My fish was not rubbery or flaky. However, I highly recommend checking on your fish every 30 minutes or so. Give it a taste, and check on its progress.

How Long Does Ceviche Last?

Ceviche made using fresh fish is best enjoyed within 24-48 hours. Always keep leftovers stored in the refrigerator in a sealed container.

Chunks of raw fish cooking in lime juice.

Recipe Tips

  • The primary citrus should always be lime juice (or lemon). Grapefruit and orange juice are added for extra flavor.
  • Other delicious additions include finely chopped cucumber and corn kernels.
  • You will be juicing a lot of limes. I highly recommend investing in an electric citrus juicer.
  • Speaking of citrus, make friends with someone who has a lime tree because you will need A LOT of limes to get FRESH LIME JUICE. Concentrated bottled lime juice will not work to make fish ceviche.
  • Although this should go without saying, remove any fish bones before marinating.
Mixing bowl filled with prepared fish ceviche.

What to Serve With Fish Ceviche?

Traditionally, ceviche is served with sweet potatoes and corn-on-the-cob, especially when ordering as the main course.

As an appetizer, serve ceviche with tortillas, fried tortilla chips, tostadas, plantain chips, or simply scoop it right from the bowl with a spoon. Other delicious pairings include this classic margarita or mojito recipe. Serve it with my favorite chicken enchiladas, chicken mole, or even this Peruvian chicken soup.

More Fish Recipes

If you make this Fish Ceviche Recipe, please leave me a comment below! I always love to read your thoughts and feedback!

WHite shallow bowl filled with fish ceviche.

Wide shallow serving bowl filled with white fish ceviche and small diced pieces of tomato, shallot, and bell pepper, garnished with fresh minced parsley.
4.90 from 102 votes

Ceviche Recipe


Close up photo of Chef Jessica Randhawa of The Forked Spoon in a blue spotted dress, in the sunlightJessica Randhawa
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. 
Prep: 30 minutes
Cook: 1 hour
Total: 30 minutes
Servings: 8 servings
Save this recipe!
Get this sent to your inbox, plus get new recipes from us every week!
Please enable JavaScript in your browser to complete this form.

Ingredients 

For the Fish

  • 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 (enough to fully cover the fish in lime juice)
  • 1 large grapefruit, juiced
  • 2 oranges, juiced

For the Ceviche

  • 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 (see notes). 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 (see notes) 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. I prefer my fish to be almost “well done”, but if you prefer a more “medium rare” that’s ok, too.
  • 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 very personal. Some people prefer ceviche to be just cooked around the outside and raw on the inside, while others prefer ceviche to be completely white and “cooked-through”. Depending on the length of time you decide to leave your ceviche in the lime juice will determine its overall doneness. Although I love sushi, in this recipe I allowed my fish to cook for 4 hours. Some say this will cause the fish to “flake apart” but I did not experience this.
  • You can prepare the tomato, shallot, and bell pepper mixture ahead of time. Simply marinate in the lime juice, drain half the liquid, and cover and store in the refrigerator until the fish is ready.
  • The primary citrus should always be lime (or lemon). Grapefruit and orange juice are added for extra flavor.
  • Other delicious additions include finely chopped cucumber and corn kernels.
  • Keep leftovers stored in an airtight container in the refrigerator for up to 2 days.

Nutrition

Calories: 227kcal | Carbohydrates: 30g | Protein: 25g | Fat: 4g | Saturated Fat: 0g | Cholesterol: 56mg | Sodium: 1520mg | Potassium: 796mg | Fiber: 7g | Sugar: 11g | Vitamin A: 1625IU | Vitamin C: 110mg | Calcium: 99mg | Iron: 2mg

Nutrition information is automatically calculated, so should only be used as an approximation.

Did you make this? Leave a comment below!
Close up photo of Chef Jessica Randhawa of The Forked Spoon in a blue spotted dress, in the sunlight

Jessica Randhawa

Chef | Food Photographer

I’m Chef Jessica Randhawa, bringing over 14 years of experience in creating and publishing over 1200 mouthwatering recipes, coupled with invaluable kitchen tips and professional guidance, to transform your daily cooking into a truly enriching culinary adventure.

You may also like:

Leave a comment

Your email address will not be published. Required fields are marked *

Recipe Rating




4.90 from 102 votes (92 ratings without comment)

20 Comments

  1. Diana W says:

    5 stars
    Excellent! It’s a hit every time I make it. Thank you for my new go-to!

    1. Jessica Randhawa says:

      Thanks, Diana 🙂

  2. Jenny says:

    5 stars
    OMG!!!! Incredible
    Used freshly caught black bass

    1. Jessica Randhawa says:

      Thanks for the incredible feedback and rating, Jenny 😀

  3. Solon Francisco says:

    5 stars
    Excelente gracias u make my day

  4. Amanda says:

    You don’t mention whether you drain the juice form the fish or completely remove it from the marinade? Do you drain the fish and add to the pepper mixture or leave all the marinade juices in? This seems like a lot of liquid.

    1. Jessica Randhawa says:

      Great question Amanda! There are lots of different versions of Ceviche as mentioned in the post. Some in in Central America are “Dry” as you mentioned, in which the liquid is drained after marinading.

      You can serve this ceviche recipe with as much or as little marinade as you like after it the fish is done marinading to the done level of your preference 🙂

  5. Marissa says:

    How long can this keep in the refrigerator?

    1. Jessica Randhawa says:

      Hi Marissa,

      Since its raw fish within 24 hours is best 🙂

  6. Jimmy says:

    4 stars
    this made my freezer fish from a few months ago awesome

    1. Jessica Randhawa says:

      I am happy to help with your freezer fish 🙂

  7. Dean says:

    5 stars
    this was the hit of the party last night thanks

  8. Jenny M says:

    5 stars
    Wowzers that was just like I remember in Mexico!

  9. Roger Konopasek says:

    5 stars
    Excellent and clear explanation! Congratulations, especially the picture guide, I grew up in Peru and this is authentic! We just got back from the deserts around Paracas/Peru where we came across 3 rugged fishermen making their simple ceviche on the very beach they were fishing from, adds a nice visual to your excellent blog

  10. Stacy says:

    5 stars
    How many servings does this make?

    1. Jessica Randhawa says:

      Hi Stacy,

      I listed this recipe, in the recipe card at the bottom, as making 8 servings. You can edit that number to whatever serving you like you by clicking on the box and it will modify the recipe accordingly.

      1. Anna says:

        I see it says 8 servings, but roughly how big are those servings?