def get_series(self, security_symbols, calculation_codes, query_start_date=None, query_end_date=None,
        resample_frequency=None, resample_function=None, fill_method=None, aggregate_function=None):
        """
        Queries data from a /<security_type>/series endpoint.

        Args:
            security_symbols (list): List of string symbols
            calculation_codes (list): List og string calculation codes
            query_start_date
                (datetime): date after which the endpoint will query data for.
                (int): Negative integer representing relative periods(as it relates to each calc code) in the past.
            query_end_date
                (datetime): date on or before which the endpoint will query data for. 
                (int): Negative integer representing relative periods(as it relates to each calc code) in the past.

        Returns:
            dict of the decoded json from server response.

        Notes:
            The max length of any list arg is 100
        """
        security_symbols = self._str_or_list(security_symbols)
        calculation_codes = self._str_or_list(calculation_codes)

        url_path = self._build_url_path(security_symbols, 
            'series', calculation_codes)

        params = {}
        if query_start_date:
            params['start_date'] = self._format_query_date_for_url(query_start_date)
        if query_end_date:
            params['end_date'] = self._format_query_date_for_url(query_end_date)
        if resample_frequency:
            params['resample_frequency'] = resample_frequency
        if resample_function:
            params['resample_function'] = resample_function
        if fill_method:
            params['fill_method'] = fill_method
        if aggregate_function:
            params['aggregate_function'] = aggregate_function

        return self._get_data(url_path, params)