json API implementation