def get_item_annotations(self, item_url, annotation_type=None, label=None):
        """ Retrieve the annotations for an item from the server

        :type item_url: String or Item
        :param item_url: URL of the item, or an Item object
        :type annotation_type: String
        :param annotation_type: return only results with a matching Type field
        :type label: String
        :param label: return only results with a matching Label field

        :rtype: String
        :returns: the annotations as a dictionary, if the item has
            annotations, otherwise None
            The annotation dictionary has keys:
            commonProperties - properties common to all annotations
            @context - the url of the JSON-LD annotation context definition
            alveo:annotations - a list of annotations, each is a dictionary


        :raises: APIError if the request was not successful


        """
        # get the annotation URL from the item metadata, if not present then there are no annotations
        item_url = str(item_url)
        metadata = self.get_item(item_url).metadata()

        try:
            annotation_url = metadata['alveo:annotations_url']
        except KeyError:
            return None


        req_url = annotation_url
        if annotation_type is not None:
            req_url += '?'
            req_url += urlencode((('type', annotation_type),))
        if label is not None:
            if annotation_type is None:
                req_url += '?'
            else:
                req_url += '&'
            req_url += urlencode((('label',label),))
        try:
            return self.api_request(req_url)
        except KeyError:
            return None
Retrieve the annotations for an item from the server

        :type item_url: String or Item
        :param item_url: URL of the item, or an Item object
        :type annotation_type: String
        :param annotation_type: return only results with a matching Type field
        :type label: String
        :param label: return only results with a matching Label field

        :rtype: String
        :returns: the annotations as a dictionary, if the item has
            annotations, otherwise None
            The annotation dictionary has keys:
            commonProperties - properties common to all annotations
            @context - the url of the JSON-LD annotation context definition
            alveo:annotations - a list of annotations, each is a dictionary


        :raises: APIError if the request was not successful