public function fetch($query, $params = null, $options = [])
    {
        $unfilteredResponse = isset($options['filterResponse']) && $options['filterResponse'] === false;

        $serializedParams = $params ? ParameterSerializer::serialize($params) : [];
        $queryParams = array_merge(['query' => $query], $serializedParams);

        $body = $this->request([
            'url' => '/data/query/' . $this->clientConfig['dataset'],
            'query' => $queryParams,
            'cdnAllowed' => true
        ]);

        return $unfilteredResponse ? $body :  $body['result'];
    }