read_api; untested