I'm looking for a data provider with historical open auction prices (i.e. not opening trade as found on most providers) for SP500 stocks. This is the price obtained by a MOO order.
QuantRocket's Data Library offers two data providers, Interactive Brokers and EDI, that publish primary exchange prices rather than consolidated prices. Primary exchange prices will give you the opening and closing auctions prices, since the opening and closing cross is the first and last trade, respectively, on the primary exchange. More information on primary exchange vs consolidated prices can be found in QuantRocket's usage guide.
Many tick-level data feeds will provide condition flags which indicate which trades are the auction crosses, so that is also an option but likely overkill if you're just looking for EOD-level data.
Disclaimer: I'm affiliated with QuantRocket.
I think you should be careful in looking at your data. You say you want the auction print and not the first trade. On the US and many other exchanges with an opening auction, the first trade often does result from the opening auction.
On the NYSE and AMEX, the opening auction may yield two prints: the crossing auction trade and then the imbalance trade which traded against the specialist. Furthermore, the opening auction is how trading starts so it may not occur right at 9:30 am NY time; some stocks open later and some do not open at all. If the stock opened at 2:00 pm, there would be an opening auction held at 2:00 and that would yield the first print(s) of the trading day.
Typically, I have seen auction prints from intraday sources like TAQ or Nastraq (Nasdaq trade and quote data) or possibly from the Consolidated Tape (CT) feeds. With these sources, you can see which trades came from the opening auction by looking at condition codes on the trade.