To get the current day's volume, a simple snapshot request via reqMktData(reqId, contract, "", true)?is sufficient, and you'll receive the volume as one of the returned data fields.
If you also want the open interest, then you need to use streaming quotes with a GenericTickList of 101 (see ?i.e.?reqMktData(reqId, contract, "101", false). Do not forget?to cancel the streaming quotes request after you receive the data!