No key, no account, CORS open to everyone. Every screen on this site makes exactly one call, and these are the calls.
Items counts every entry across every indexed manifest. Each registry is addressable by its slug. access=free filters to exactly the verified free items. The corpus is rebuilt once a night, so a cache shorter than that adds load without freshness.
Endpoints
8 calls, every one read-only, unauthenticated and cross-origin readable. Each row runs its example.
Search it from the shadcn CLI
BlockDex is a shadcn registry namespace, so the whole index is searchable and installable from the terminal without opening this site. Add it to your components.json:
Then search across every registry at once, and install from the one that has it:
The install does not come from here. A namespaced item resolves to a 307 pointing at the registry's own endpoint, so the component is fetched from whoever published it, at whatever it says today. This index holds no copy of anybody's source and cannot serve a stale one. Filter with --type and page with --offset. The ranking and the match count come from the same query the search on this site runs.
/api/search
Anything not listed is ignored rather than rejected, so an unknown parameter never turns a working call into an error.
/api/registries
Anything not listed is ignored rather than rejected, so an unknown parameter never turns a working call into an error.
Example: /api/registries?sort=stars&limit=20
/r/registry.json
Anything not listed is ignored rather than rejected, so an unknown parameter never turns a working call into an error.
What the data is, and is not
Everything here is derived from what a registry actually served. The access verdict is a measurement: an item endpoint was fetched and either answered or returned 401. unknown means the registry serves no item endpoint we could ask, which is neither free nor paid.
There is no quality score, no rating and no ranking of registries against each other, because a crawler cannot establish any of those. Ordering by stars orders by GitHub stars and means nothing more. Licence fields are the string the repository published. They are not a licence interpretation and not advice.
Errors are JSON too, { "error": "..." }, so a consumer never has to parse an HTML error page. A call that times out is the database waking up rather than a result, and the same call a moment later will answer.
BlockDex is not affiliated with shadcn or with any registry it indexes. How the index is built.
The counts above were served on 2026-09-13 and are stored in this repository. The routes themselves read the live index, so a call made now answers with tonight's crawl.