docs: def get_nanopub_urls(ns_root_url: str = None, start_dt: str = None) -> dict:
      """Get modified and deleted nanopub urls
  
      Limited by last datetime retrieved (start_dt).  Modified includes new and updated nanopubs
  
      Returns:
          dict: {'modified': [], 'deleted': []}
      """
      if not ns_root_url:
          ns_root_url = config["bel_api"]["servers"]["nanopubstore"]
  
      url = f"{ns_root_url}/nanopubs/timed"
  
      if not start_dt:
          start_dt = get_nanopubstore_start_dt(ns_root_url)
  
      params = {"startTime": start_dt, "published": True}
  
      # TODO - this is coming back without a status code in some cases - why?
      r = bel.utils.get_url(url, params=params, cache=False)
      if r and r.status_code == 200:
          data = r.json()
          new_start_dt = data["queryTime"]
          update_nanopubstore_start_dt(ns_root_url, new_start_dt)
          nanopub_urls = {"modified": [], "deleted": []}
  
          # Deleted nanopubs
          for nid in data["deleteddata"]:
              nanopub_urls["deleted"].append(f"{ns_root_url}/nanopubs/{nid}")
  
          # Modified nanopubs
          for nid in data["data"]:
              nanopub_urls["modified"].append(f"{ns_root_url}/nanopubs/{nid}")
  
          return nanopub_urls
  
      else:
          log.error(
              f"Bad request to Nanopubstore",
              url=url,
              status=r.status_code,
              type="api_request",
          )
          return {}