api proxy w/ cache and garbage collection