Add API caching