I'm assuming 90% of these API requests are reads. Is there a reason Apollo couldn't develop an intermediate proxy server and cache all the responses for a short period of time? I assume that would cut the API usage significantly and potentially the cost.
I didn't check, but I think their back-end already cached stuff somewhat; the dev open sourced it so you can take a look*