I'm interested in quotes of current ATM options for 30 stocks, without regard to the rest of the chain. Is there a simple way to track the ATM option quote without loading the entire chain for each symbol? I'm interested in doing this through either TWS, or one of the Excel APIs. Or other software if that's the only viable choice. The problem is that the particular ATM option is always changing, so I can't simply monitor one particular strike for each symbol.
I think that you would need to write code that monitors the price of the stock and then determine what the nearest option is. Then monitor the price of that option. You could make it more fancy to also load the options which are one step lower and higher. In that case you can easily switch over when the stock price crosses that boundary.
In TDA API you can get with a single call multiple quotes of stocks, options or whatever, also mixed. The API function for getting such multiple quotes is named get_quotes (beware there is also a get_quote for getting a single quote). https://developer.tdameritrade.com/quotes/apis/get/marketdata/quotes I think the limit is 100 symbols per call, IIRC. Or was it just 10? Hmm. dunno anymore, sorry. BUT a drawback is: you as the caller must specify the strike (encoded in the "symbol") you are interested in, ie. your said current ATM strike... For this you need to know all the strikes, ie. keep a database of them by once daily or so getting the full strike tables (ie. the "chain"). W/o API programming this is not possible, IMO. I don't know any broker or data provider where you can get the quote for the current ATM strike w/o explicitly specifying the strike. I think it's the same with IB API / TWS.
what are you trying to do it for? When I built it, I picked the atm for the beginning of the day and just looked at that no matter what. I also looked at floating strike intraday as a separate screener.