code: def get_all_observations(params: Dict) -> List[Dict[str, Any]]:
      
  
      # According to the doc: "The large size of the observations index prevents us from supporting the page parameter
      # when retrieving records from large result sets. If you need to retrieve large numbers of records, use the
      # per_page and id_above or id_below parameters instead.
  
      results = []  # type: List[Dict[str, Any]]
      id_above = 0
  
      while True:
          iteration_params = merge_two_dicts(params, {
              'order_by': 'id',
              'order': 'asc',
              'per_page': PER_PAGE_RESULTS,
              'id_above': id_above
          })
  
          page_obs = get_observations(params=iteration_params)
          results = results + page_obs['results']
  
          if page_obs['total_results'] <= PER_PAGE_RESULTS:
              return results
  
          sleep(THROTTLING_DELAY)
          id_above = results[-1]['id']
docs: Like get_observations() but handles pagination so you get all the results in one shot.
  
      Some params will be overwritten: order_by, order, per_page, id_above (do NOT specify page when using this).
  
      Returns a list of dicts (one entry per observation)