code: def _do_api_call(self, method, data):
          
  
          # Developer API keys, auth tokens, and other standard, required args.
          data.update({
              "key": self.api_key,
              # No API methods currently use this, but we're ready for it,
              # should that change.
              "token": self.api_auth_token,
          })
  
          # Ends up being a full URL+path.
          url = "%s%s" % (self.endpoint, method)
          # Bombs away!
          response = requests.get(url, params=data)
  
          # Parse and return an ElementTree instance containing the document.
          root = etree.fromstring(response.content)
  
          # If this is anything but '100', it's an error.
          status_code = root.find("header/status/code").text
          # If this comes back as non-None, we know we've got problems.
          exc_class = _get_exception_class_from_status_code(status_code)
          if exc_class:
              # Sheet, sheet, errar! Raise the appropriate error, and pass
              # the accompanying error message as the exception message.
              error_message = root.find("header/status/message").text
              #noinspection PyCallingNonCallable
              raise exc_class(error_message)
  
          return root
docs: Convenience method to carry out a standard API call against the
          Petfinder API.
  
          :param basestring method: The API method name to call.
          :param dict data: Key/value parameters to send to the API method.
              This varies based on the method.
          :raises: A number of :py:exc:`petfinder.exceptions.PetfinderAPIError``
              sub-classes, depending on what went wrong.
          :rtype: lxml.etree._Element
          :returns: The parsed document.