Magikarp is a water OPmon and has the hidden ability Rattled. It evolves into Gyarados starting at level 20. It can be encountered in almost all fishing areas with an old/good fishing rod. To get an magikarp egg you need a female magikarp and a male magikarp. (or ditto)
You can catch different Magikarp skins in Bob's Magik Pond. The rarest is the Rayquaza skinned MagiCRap which you can also get a shiny version of it. The shiny Rayquaza-Karp is the new rarest Pokémon in the game having only one known in existence. (the old one was Crystal Onix). There are many other different colours including purple, orange and white and far more , and their evolutions are stunning.