This should probably be memoized, with an appropriate expiration.  Based on the HTTP cache headers returned from the servers. :)