def street_addresses(self, addresses):
        """
        API method for verifying street address and geolocating

        Returns an AddressCollection always for consistency. In common usage it'd be simple and
        sane to return an Address when only one address was searched, however this makes
        populating search addresses from lists of unknown length problematic. If that list
        returns only one address now the code has to check the type of return value to ensure
        that it isn't applying behavior for an expected list type rather than a single dictionary.

        >>> client.street_addresses(["100 Main St, Anywhere, USA"], ["6 S Blvd, Richmond, VA"])
        >>> client.street_addresses([{"street": "100 Main St, anywhere USA"}, ... ])

        :param addresses: 1 or more addresses in string or dict format
        :return: an AddressCollection
        """

        # While it's okay in theory to accept freeform addresses they do need to be submitted in
        # a dictionary format.
        if type(addresses[0]) != dict:
            addresses = [{"street": arg for arg in addresses}]

        return AddressCollection(self.post("street-address", data=addresses))
API method for verifying street address and geolocating

        Returns an AddressCollection always for consistency. In common usage it'd be simple and
        sane to return an Address when only one address was searched, however this makes
        populating search addresses from lists of unknown length problematic. If that list
        returns only one address now the code has to check the type of return value to ensure
        that it isn't applying behavior for an expected list type rather than a single dictionary.

        >>> client.street_addresses(["100 Main St, Anywhere, USA"], ["6 S Blvd, Richmond, VA"])
        >>> client.street_addresses([{"street": "100 Main St, anywhere USA"}, ... ])

        :param addresses: 1 or more addresses in string or dict format
        :return: an AddressCollection