API Client class