Could be done if you assume that all challenges has challenge in the name and that only challenges hast that in the name.
Both assumption are incorrect by the way but there are no better way to identify a challenge.
I dont think but is not sure that any checker that can match cache name is able to check if the cache.
After a quick look in at the API it is impossible to check if it was archived when logged because the checker has only access to the last archived date and a cache can be archiver and unarciverd and archived again. It it was logged after the first achive bur before unarchived it will not be detected