API Reference
This page documents the public, unauthenticated endpoints developers and tooling can use to resolve a published pack, fetch install manifests, and download frozen release artifacts.
Namespace rules
Section titled “Namespace rules”Every public pack uses the same three-part identifier:
org / project / packExamples in this page use acme/brand/core-icons.
frameworkis limited toreact,vue, orreact-nativeversion_hashis a 12-character lowercase hex string such as8f3a9c2d14belatestendpoints are moving targets- Versioned endpoints are immutable release artifacts
Resolve the latest release
Section titled “Resolve the latest release”Use this when you need the current published release hash before fetching the full manifest.
GET /api/v1/install/{org_slug}/{project_slug}/{pack_slug}Example:
GET /api/v1/install/acme/brand/core-iconsResponse shape:
{ "org_slug": "acme", "project_slug": "brand", "pack_slug": "core-icons", "pack_name": "Core Icons", "version_hash": "8f3a9c2d14be", "slot_count": 42, "published_at": "2026-03-14T10:00:00Z"}This endpoint is short-lived and should be treated as a live lookup, not a pinned artifact.
Fetch install manifests
Section titled “Fetch install manifests”Latest manifest shortcut
Section titled “Latest manifest shortcut”GET /api/v1/install/{org_slug}/{project_slug}/{pack_slug}/latest/{framework}.jsonExamples:
GET /api/v1/install/acme/brand/core-icons/latest/react.jsonGET /api/v1/install/acme/brand/core-icons/latest/vue.jsonGET /api/v1/install/acme/brand/core-icons/latest/react-native.jsonUse this when you want “whatever is currently published” for a given framework.
Pinned manifest
Section titled “Pinned manifest”GET /api/v1/install/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/{framework}.jsonExamples:
GET /api/v1/install/acme/brand/core-icons/8f3a9c2d14be/react.jsonGET /api/v1/install/acme/brand/core-icons/8f3a9c2d14be/vue.jsonGET /api/v1/install/acme/brand/core-icons/8f3a9c2d14be/react-native.jsonUse the versioned form for reproducible installs, CI, or debugging. The manifest_url inside the response always points at this pinned form.
Install manifest contract
Section titled “Install manifest contract”All JSON manifest endpoints return the same schema:
{ "schema_version": "1", "framework": "react", "pack": { "org_slug": "acme", "project_slug": "brand", "pack_slug": "core-icons", "name": "Core Icons" }, "release": { "version_hash": "8f3a9c2d14be", "published_at": "2026-03-14T10:00:00Z", "slot_count": 42 }, "install": { "file_extension": ".tsx", "barrel_exports": "default", "archive_url": "/api/v1/registry/acme/brand/core-icons/8f3a9c2d14be/react.tar.gz", "archive_hash": "sha256:..." }, "manifest_url": "/api/v1/install/acme/brand/core-icons/8f3a9c2d14be/react.json", "components": [ { "slot_name": "arrow-left", "component_name": "ArrowLeft", "file_name": "ArrowLeft.tsx", "source_url": "/api/v1/registry/acme/brand/core-icons/8f3a9c2d14be/react/ArrowLeft.tsx", "source_hash": "sha256:...", "svg": { "hash": "sha256:...", "view_box": "0 0 24 24", "width": 24, "height": 24 }, "metadata": { "label": "Arrow Left", "description": "Left arrow" } } ]}Key points:
schema_versionis currently"1"- The manifest uses
snake_casekeys packidentifies the live org/project/pack namespacerelease.version_hashis the immutable release identifierinstall.archive_urlandinstall.archive_hashpoint to the preferred bulk-download artifact when availablecomponentsis the authoritative list of installable files for that release
Registry aliases and artifacts
Section titled “Registry aliases and artifacts”The registry surface serves the same manifest contract plus frozen release artifacts.
Registry JSON aliases
Section titled “Registry JSON aliases”GET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react.jsonGET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/vue.jsonGET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react-native.jsonThese are thin aliases of the canonical install manifest. They return the same schema shown above.
Framework archives
Section titled “Framework archives”GET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react.tar.gzGET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/vue.tar.gzGET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react-native.tar.gzThese archive endpoints are the preferred bulk install path for the CLI.
Individual component source files
Section titled “Individual component source files”GET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react/{component_file}GET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/vue/{component_file}GET /api/v1/registry/{org_slug}/{project_slug}/{pack_slug}/{version_hash}/react-native/{component_file}Examples:
GET /api/v1/registry/acme/brand/core-icons/8f3a9c2d14be/react/ArrowLeft.tsxGET /api/v1/registry/acme/brand/core-icons/8f3a9c2d14be/vue/ArrowLeft.vueGET /api/v1/registry/acme/brand/core-icons/8f3a9c2d14be/react-native/ArrowLeft.tsxThese return the frozen generated source file for a single component in that release.
React Native endpoints require releases that include frozen React Native artifacts. Older releases return a clear unsupported-release error instead of generating React Native source on demand.
Cache behavior
Section titled “Cache behavior”GET /api/v1/install/{org}/{project}/{pack}and/latest/{framework}.jsonare moving targets and should be treated as live lookups- Versioned manifest, registry JSON, archive, and component-source endpoints are immutable release artifacts and can be cached aggressively
Publishing behavior that affects installs
Section titled “Publishing behavior that affects installs”The install surface reflects the current publish model:
- Only assigned slots are included in a release
- Releases are immutable once published
- Publishing the same assigned content again returns the existing release as
noop - Latest installs move forward when a new release is created; pinned installs stay on their exact
version_hash
For the authoring side of that flow, see Publishing. For CLI usage, see Installing Packs.