protected function fetchApi1($result, $valuesKey = 'values')
    {
        /** @var Request $request */
        $request = $this->client->getLastRequest();

        if (!array_key_exists($valuesKey, $result)) {
            throw new \RuntimeException(
                sprintf(
                    'No values-key "%s" found in resource "%s", please report this bug to the Gush developers.',
                    $valuesKey,
                    $request->getResource()
                )
            );
        }

        $fullResult = $result[$valuesKey];
        if ($this->perPage !== null && $this->perPage <= 50) {
            return $fullResult;
        }

        // The api is limited to 50 per page
        // So everything higher then 50 requires additional call(s)

        $urlComponents = parse_url($request->getResource());
        parse_str($urlComponents['query'], $query);
        $urlComponents['query'] = $query;

        $url = $request->getHost().$urlComponents['path'].'?';
        $limit = $urlComponents['query']['limit'];
        $count = isset($result['count']) ? $result['count'] : $urlComponents['limit'];
        $pages = ceil($count / $limit);

        for ($page = $this->page + 1; $page <= $pages; ++$page) {
            $urlComponents['query']['start'] = abs($page - 1) * $limit;

            $response = $this->client->get($url.http_build_query($urlComponents['query'], '', '&'));
            $result = json_decode($response->getContent(), true);

            $fullResult = array_merge($fullResult, $result[$valuesKey]);

            // We only wanted one, so stop now
            if ($this->perPage !== null) {
                break;
            }
        }

        return $fullResult;
    }