For the most part right now, the skipper of API/schools has a policy that a snfo can swap to sna if they're in the top 10%. If not, it's pretty much impossible to get sna. It might change with a new CO, but that's how it is right now
Had a guy when I went through API who wanted sna and was, mathematically, in the top 11% (yes, 11%). The guy who was #1 was also a snfo but was too old to get a waiver for sna, so the guy who wanted it, who even had recommendations from two O-6's to switch to sna, didn't get it even though the dude in the top 10% didn't want it.
Moral of the story? Be #1 and you'll probably get what you want.