shadcnregistry APIshadcnregistry.com ↗
Access shadcn/ui registries, components, source code, install commands, and creator data via the shadcnregistry.com API. 8 endpoints for discovery and inspection.
What is the shadcnregistry API?
The shadcnregistry.com API gives developers programmatic access to shadcn/ui component registries through 8 endpoints covering discovery, search, and full component detail retrieval. The get_component_detail endpoint returns file-level source code, npm dependencies, install commands, and registry dependencies for any component by its namespace/name ID. You can also list creators, filter components by type, and inspect arbitrary external registry JSON files.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/bf7a9ba5-264f-42cc-9f5e-fa8cbff5fcb2/get_all_registries' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace shadcnregistry-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ShadcnRegistry SDK — discover registries, inspect components, search."""
from parse_apis.shadcnregistry_api import ShadcnRegistry, ComponentType, Slug, ComponentNotFound
client = ShadcnRegistry()
# List all registries — single-page, capped for demo
for registry in client.registries.list(limit=5):
print(registry.name, registry.slug, registry.item_count)
# Get a specific registry by slug, then list its components
reg = client.registries.get(slug=Slug._8BITCN)
for comp in reg.components.list(limit=3):
print(comp.id, comp.name, comp.namespace)
# Drill into one component's full details
comp_summary = reg.components.list(limit=1).first()
if comp_summary:
try:
detail = comp_summary.details()
print(detail.name, detail.install_command, detail.description)
for f in detail.files:
print(f.path, f.type, f.target)
except ComponentNotFound as exc:
print(f"Component gone: {exc.component_id}")
# Search across all registries with a type filter
for result in client.searchresults.search(query="button", type=ComponentType.COMPONENT, limit=5):
print(result.id, result.name, result.namespace, result.source)
# Inspect an external registry JSON directly
item = client.externalregistryitems.inspect(url="https://8bitcn.com/r/accordion.json")
print(item.name, item.title, item.description)
print("exercised: registries.list / registries.get / components.list / details / searchresults.search / externalregistryitems.inspect")
Retrieve all listed shadcn/ui registries from the homepage. Each registry includes name, slug, description, item count, and thumbnail URL. No pagination — the full catalog is returned in a single response.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer count of registries returned",
"registries": "array of registry objects with name, slug, description, itemCount, thumbnail, and url"
},
"sample": {
"data": {
"total": 84,
"registries": [
{
"url": "https://shadcnregistry.com/8bitcn",
"name": "8bitcn",
"slug": "8bitcn",
"itemCount": 0,
"thumbnail": "https://shadcnregistry.com/_next/image?url=%2Fapi%2Fog%2F8bitcn&w=3840&q=75",
"description": "A set of 8-bit styled retro components. Works with your favorite frameworks. Open Source. Open Code."
},
{
"url": "https://shadcnregistry.com/aceternity",
"name": "aceternity",
"slug": "aceternity",
"itemCount": 0,
"thumbnail": "https://shadcnregistry.com/_next/image?url=%2Fapi%2Fog%2Faceternity&w=3840&q=75",
"description": "A modern component library built with Tailwind CSS and Motion for React."
}
]
},
"status": "success"
}
}About the shadcnregistry API
Registry and Component Discovery
get_all_registries returns every registry listed on shadcnregistry.com, including each registry's name, slug, description, itemCount, and thumbnail URL. From there, get_registry_detail accepts a slug parameter (e.g. 'aceternity' or 'animate-ui') and returns the registry's component list as an array of summaries with id, name, and namespace fields. These IDs are in namespace/name format and feed directly into get_component_detail.
Component Detail and Source Code
get_component_detail is the most data-dense endpoint. Pass a component_id like '@kokonutui/button' and the response includes the full files array — each entry has path, content (source code), type, and target — plus dependencies (npm packages), registryDependencies, installCommand, and a description. This makes it possible to inspect component source without visiting the site.
Search and Filtering
search_components accepts a query string and an optional type filter. The type parameter accepts values such as 'component', 'ui', 'hook', 'block', 'theme', 'page', 'lib', and 'file'. Use get_all_component_types to retrieve the authoritative list of accepted type strings at any time. Each search result includes id, name, description, type, slug, namespace, source, and accessible fields.
Creators and External Registry Inspection
get_creators returns all creators producing shadcn/ui content, with each creator's name and social links across github, youtube, and x. inspect_external_registry lets you pass any external shadcn/ui registry JSON URL and get back structured fields including files, dependencies, devDependencies, categories, schema, and title — useful for auditing third-party registries not indexed on shadcnregistry.com. get_all_components_bulk aggregates full component data across all registries and accepts an optional limit parameter to cap how many registries are processed.
The shadcnregistry API is a managed, monitored endpoint for shadcnregistry.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when shadcnregistry.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official shadcnregistry.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a component search tool that filters shadcn/ui components by type using
search_componentswith thetypeparameter - Automate extraction of component source code and file paths via
get_component_detailfor code generation pipelines - Audit npm dependencies across an entire registry using
get_registry_detailfollowed by bulkget_component_detailcalls - Generate install command scripts for multiple components by collecting
installCommandfields in bulk - Populate a creator directory with GitHub, YouTube, and X profile links from
get_creators - Inspect and validate any external shadcn/ui registry JSON file using
inspect_external_registrywithout manual parsing - Compare component coverage across registries by combining
get_all_registriesitemCounts with per-registry component lists
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does shadcnregistry.com have an official developer API?+
What does `get_component_detail` return beyond a component's name?+
files array with each file's path, raw content (source code), type, and target; the installCommand string; dependencies (npm packages); registryDependencies; and a description. You need a component_id in namespace/name format, which you can obtain from get_registry_detail or search_components.Can I retrieve component usage statistics or download counts?+
Does `get_all_components_bulk` return paginated results?+
limit integer to cap the number of registries processed, but it does not expose page/offset pagination. For large-scale collection, use limit to process registries in batches across multiple calls.Is it possible to filter `get_all_registries` by registry category or tag?+
get_all_registries returns all listed registries without a filter parameter; the response includes name, slug, description, itemCount, thumbnail, and url for each. You can fork this API on Parse and revise it to add filtering logic over those fields.