# keeping it simple with just one nested request. no improvement with more added here. my $options = [ { content => 'GET /gmail/v1/users/real_address@gmail.com/messages/165eb111fcf21503', 'Content-type' => 'application/http', # internal server error when set to 'application/json' }, ]; my $path = 'https://www.googleapis.com/batch/gmail/v1'; # this is the call to Moo Google's lower level api_query function. my $res = $s->_gapi->api_query( { httpMethod => 'POST', path => $path, options => $options, }); print Dumper $res; # then, over in Moo::Google we do some Mojolicious stuff with our api_query call # build the transactor (this function is in Moo::Google # $headers was created earlier and contains bearer token # $headers->{content-type} = 'mixed/multipart'; # tried this and many other content types with no improvement my $tx = $self->ua->build_tx( uc $http_method =>$path => $headers => multipart => $options); my $res = $self->ua->start($tx)->res; return $res;