docs: def search_metadata(self, query):
          """ Submit a search query to the server and retrieve the results
  
          :type query: String
          :param query: the search query
  
          :rtype: ItemGroup
          :returns: the search results
  
          :raises: APIError if the API request is not successful
  
  
          """
          query_url = ('/catalog/search?' +
                       urlencode((('metadata', query),)))
  
          resp = self.api_request(query_url)
          return ItemGroup(resp['items'], self)