def parsed_response
      return @response.headers["location"] if @response.code >= 300 && @response.code < 400
      raise APIConnectionError.new(@response) if @response.code >= 500 && @response.code < 600
      case @response.parsed_response['status']
      when 'OK', 'ZERO_RESULTS'
        @response.parsed_response
      when 'OVER_QUERY_LIMIT'
        raise OverQueryLimitError.new(@response)
      when 'REQUEST_DENIED'
        raise RequestDeniedError.new(@response)
      when 'INVALID_REQUEST'
        raise InvalidRequestError.new(@response)
      when 'UNKNOWN_ERROR'
        raise UnknownError.new(@response)
      when 'NOT_FOUND'
        raise NotFoundError.new(@response)
      end
    end
def parsed_response
      return @response.headers["location"] if @response.code >= 300 && @response.code < 400
      raise APIConnectionError.new(@response) if @response.code >= 500 && @response.code < 600
      case @response.parsed_response['status']
      when 'OK', 'ZERO_RESULTS'
        @response.parsed_response
      when 'OVER_QUERY_LIMIT'
        raise OverQueryLimitError.new(@response)
      when 'REQUEST_DENIED'
        raise RequestDeniedError.new(@response)
      when 'INVALID_REQUEST'
        raise InvalidRequestError.new(@response)
      when 'UNKNOWN_ERROR'
        raise UnknownError.new(@response)
      when 'NOT_FOUND'
        raise NotFoundError.new(@response)
      end
    end
Parse errors from the server respons, if any
 @raise [OverQueryLimitError] when server response object includes status 'OVER_QUERY_LIMIT'
 @raise [RequestDeniedError] when server response object includes 'REQUEST_DENIED'
 @raise [InvalidRequestError] when server response object includes 'INVALID_REQUEST'
 @raise [UnknownError] when server response object includes 'UNKNOWN_ERROR'
 @raise [NotFoundError] when server response object includes 'NOT_FOUND'
 @return [String] the response from the server as JSON