internal/...: create new structure for api

As mentioned in the hangout, this seems to require at least a version string to be passed.