api: initial implementation

Signed-off-by: Pierre-Alexandre Meyer <pierre@mouraf.org>