code: def get_item_annotations(self, item_url, annotation_type=None, label=None):
          
          # 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
docs: 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