#398 RESTful API

Resolves #398, #429, #430, #431, #432