Generify ApiRequest to enforce type consistency with ApiResponses