def query_search(self, search_query, sort=None, offset=100, page=1):
        assert page >= 1, f'Invalid page value {page}. Required page >= 1.'
        search_query['sort'] = sort
        search_query['offset'] = offset
        search_query['page'] = page
        response = self.requests_session.post(
            f'{self.url}/query',
            data=json.dumps(search_query),
            headers=self._headers
        )
        if response.status_code == 200:
            return self._parse_search_response(response.content)
        else:
            raise Exception(f'Unable to search for DDO: {response.content}')