a base API class