code: def find(cls, api_key=None, fetch_all=True, endpoint=None, maximum=None,
               **kwargs):
          
          exclude = kwargs.pop('exclude', None)
  
          # if exclude param was passed a a string, list-ify it
          if isinstance(exclude, six.string_types):
              exclude = [exclude, ]
  
          query_params = cls.translate_query_params(**kwargs)
  
          # unless otherwise specified use the class variable for the endpoint
          if endpoint is None:
              endpoint = cls.get_endpoint()
  
          if fetch_all:
              result = cls._fetch_all(api_key=api_key, endpoint=endpoint,
                                      maximum=maximum,
                                      **query_params)
          else:
              result = cls._fetch_page(api_key=api_key, endpoint=endpoint,
                                       maximum=maximum,
                                       **query_params)
  
          # for each result run it through an exlcusion filter
          collection = [r for r in result
                        if not cls._find_exclude_filter(exclude, r)]
          return collection
docs: Find some entities from the API endpoint.
  
          If no api_key is provided, the global api key will be used.
          If fetch_all is True, page through all the data and find every record
          that exists.
          If add_headers is provided (as a dict) use it to add headers to the
          HTTP request, eg.
  
              {'host': 'some.hidden.host'}
  
          Capitalizing header keys does not matter.
  
          Remaining keyword arguments will be passed as `query_params` to the
          instant method `request` (ClientMixin).