Add API request level caching