Дима, как я говорил, надо именно POST-запросы слат

Дима, как я говорил, надо именно POST-запросы слать. GET-это возвращает HTML самого API-интерфейса. Более того, слать надо с заголовками json. Вот рабочий пример (выполняется через MODX-console)

<?php

print "<pre>";

$query = '
    query users (
      $first: Int = 3
      $orderBy: UserOrderByInput = createdAt_DESC
      $where: UserWhereInput
      $withPlaces: Boolean = false
    ){
      users(
        first: $first
        orderBy: $orderBy
        where: $where
      ){
        ...user
      	Places(
          first: 3
        ) @include(if: $withPlaces)
        {
          id
          name
        }
      }
    }
    
    fragment user on User{
      id
      user_id
      username
      fullname
      email
    }
';

$params = [
    "query" => $query,
    "variables" => [
        "first" => 1,
        "orderBy"   => "fullname_ASC",
        "withPlaces"    => true,
        "where" => [
            "Places_some" => []
        ],
    ],
];

$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://pivkarta.ru', '/api/', 'POST', $params, [
    "contentType"   => "json",
]);

//  print_r($result);

$result = json_decode($result, true);

print_r($result);

Обрати внимание, я в запрос прописал параметры firstиfirst и orderBy со значениями по умолчанию. Теперь эти параметры можно передавать в запросе (см. variables).

Я еще улучшил по ходовой запрос, добавив для примера конструкцию @include(if: $withPlaces). Если передать параметр withPlaces = true, то будут получены еще и данные заведений пользователя. Если нет, то соответственно нет. А where в моем примере запрашивает только тех пользователей, которые создали хоть одно заведение.