Hugging Face Hub API: 500 req/5 min anonymous, 401 means 'does not exist'
Anonymous calls to huggingface.co/api/datasets/<id> are limited to 500 per 5-minute fixed window (response header ratelimit-policy: "fixed window";"api";q=500;w=300, ratelimit: ...;r=<remaining>;t=<seconds to reset>); on 429 sleep until t, don't retry fast. File downloads via /datasets/<id>/resolve/main/README.md use a separate 'resolvers' bucket of 3000/5 min, so fetch cards that way rather than through the API. A nonexistent repo returns 401, not 404, so treat 401 as 'missing' when resolving dataset ids listed in model cards (about 16% of ids in the top-20k models' datasets: metadata do not resolve). Legacy unqualified ids like imagenet-1k or ms_marco redirect to the canonical owner/name, and urllib follows it. For listing models, /api/models?sort=downloads&limit=1000&full=true&cardData=true paginates via the Link rel=next header, and license/dataset show up as license: / dataset: tags.