         _fetchData = =>
             request.get _options, (error, response, data) =>
                 if error
-                    console.log _url, @_ua
-                throw error if error
+                    console.error(_url)
+                    throw error
                 # This API client is **read-only** and MUST only ever receive
                 # a 200 from the API (or an error status), NEVER 201 or 204.
                 unless response.statusCode is 200
                     throw new SDKError('api', "Content API error: #{ response.statusCode }\n\n#{ data }", response.statusCode)
-                @_setCacheItem(cache_key, data)
-                next_url = parseLinkHeader(response.headers.link)?.next?.url
+                { headers } = response
+                @_setCacheItem(cache_key, { data, headers })
+                next_url = parseLinkHeader(headers.link)?.next?.url
                 _returnData(data, next_url)
 
         if @_CACHE_DIRECTORY

                    _fetchData()
                    return
                SDKError.log(SDKError.colors.grey("Using response from API cache (#{ data.length } bytes)."))
                _returnData( JSON.parse( data.toString() ) )
        else
            _fetchData()


                    callback    : (_results, _next_url) ->
                        next_url = _next_url
                        results.push(_results...)
                        _makeRequest()
        _makeRequest()
        return deferred_result.promise
