supports *both* archive and API JSON