You can substitute all sorts of things if you don't have cooked crab on hand. In order of preference, I'd choose crawfish, lobster, shrimp, octopus or regular fish. This is best eaten soon after it's made, although it will keep a day or so in the fridge.
Gently mix the crab with the lime juice. Mince the onion first and fold that in before you chop the other vegetables; this helps take the sting out of the raw onion.
Fold in the remaining ingredients and serve on the tostadas. It is important to not let them sit around, or the tostadas will get soggy.
NOTE:If you are making your own tostadas, fry them in 350°F oil until they mostly stop bubbling, about 2 minutes. Drain on paper towels and salt lightly when they come out. Keep them on a wire rack in the oven set to "warm."
Keys to Success
Ceviche as a sweet spot in terms of marinating time. For most of us, that's 30 minutes. Shorter, and you have a different dish, Mexican aguachile. Longer, and you've basically pickled your seafood. It'll still be OK after a long marination, but it will adversely affect the other ingredients.
Definitely make your own tostadas if you can -- they will be a lot sturdier. I find store bought tostadas to shatter on the first bite.
I prefer blue crab or Dungeness for this recipe, but really any crab will do.