APIv2: instead of passing `req` to callback, passing response object so API can return the object when wrapped on the server