How to programmatically fetch the results of a view with facet filtering
Kinda old question but i just needed the same thing and here is how i did it.

use Drupal\views\Views;
use Symfony\Component\HttpFoundation\Request;


$view_id = 'VIEWID';
$display_id = 'rest_export_1';
$filters = [
  // Filters results with title `Hello` as expected.
  'field_title' =&gt; 'Hello',

  // The programatically executed View ignores
  // the following facet based values for filtering.
  'field_facet' =&gt; ['A', 'B'],
];

$view = Views::getView($view_id);
$view-&gt;setDisplay($display_id);

// Here comes the part that did the trick for my REST JSON request.
// Create a new request with your filters / url query and set that.
$request = new Request($filters);
$view-&gt;setRequest($request);

$view-&gt;execute();

//TMP debug the json decoded value
$view_result = \Drupal::service('renderer')-&gt;renderRoot($view-&gt;render());
$view_json_decode = json_decode($view_result);


The rest export view puts the exposed filter inside the view request so instead of setting the exposedfilters i made a request with the query args and it worked fine.

The documentation is missing a lot so if anyone finds a better way then let me know.