Fetch an artist and their public Catalog with two simple GET endpoints. Build an artist site, discography, portfolio embed, public-data tool, or read-only agent integration in the framework you already use.
Deployed alpha, not production-supported. The unauthenticated routes may intentionally fail closed with 503 ResourceUnavailable, and no uptime, availability, or production-use commitment is offered. Start with the exact mocks or local route.
SDK fixture excerpt · not a live-route checkNo audio · no artwork URL · no user id
Start with the outcome you need
Choose your path.
I want public artist data
Build beyond Casset.
Use public Artist and Catalog data for an artist website, metadata-only discography, portfolio embed, public-data tool, or read-only agent context. The caller does not become an installed App and receives no playback, private data, or media access.
Use a host-seeded Profile or observation-only Track context for a profile experience, visualizer, game, collector experience around an existing Casset purchase, or artist-native extension. Casset keeps navigation, safe areas, permissions, checkout, playback, and the sole MediaFooter.
The versioned, unauthenticated public identity route is deployed but is not available for supported production use; it may fail closed with 503 RESOURCE_UNAVAILABLE, with no uptime or availability commitment. The versioned, unauthenticated public Catalog route is deployed but is not available for supported production use; it may fail closed with 503 RESOURCE_UNAVAILABLE, with no uptime or availability commitment.
Development / local sandbox
Framework-neutral TypeScript SDK + React adapter
Repository-local contracts, parsers, typed errors, and HTTP client; not published to npm. Repository-local React bindings over the framework-neutral client.
Development / local sandbox
Sandbox credentials + Sandbox webhooks
Development-only credential issuance and immediate local revocation. Development-only signed delivery, retry, idempotency, and replay rehearsal.
Unavailable
Third-party App submission
Per-developer production issuance, persistence, grants, and revocation are unavailable. External submission, arbitrary bundle execution, and public package distribution are unavailable.
Public contract
Small enough to trust.
Both reads use explicit schema versions, strict response parsing, privacy-preserving 404s, and one typed error contract. Sparse or unavailable data stays explicit; clients never fill gaps with invented artist history. Versioned release data and production integration data are unavailable in this alpha.
GET /api/v1/artists/{handle}Exact local mock
Public Profile identity
canonical handle + display name
authored bio + verified state
canonical profile and Catalog links
no database identifier
GET /api/v1/artists/{handle}/catalogExact local mock
Public Catalog index
active Track title
ORIGINAL or GENERATION provenance
bounded duration
2 fictional fixture rows in this local mock
TypeScript boundary
Core first. React optional.
Use @casset/apps for the framework-neutral Headless API client and native host contract. Add @casset/react when your outside-Casset frontend is React. The same public data boundary stays consistent in either case.
import { createCassetClient } from "@casset/apps"const casset = createCassetClient({ baseUrl: "http://127.0.0.1:3000"})const artist = await casset.getArtist("connor")const catalog = await casset.getCatalog(artist.artist.handle)
Local only · resets with the process
Rehearse the dangerous parts safely.
The authenticated Developer Portal includes a separate Headless API sandbox. It lets you rehearse credentials, revocation, and signed webhooks for a server-side integration against the exact public contract—without claiming production persistence or turning an API key into native App authority.
One-time credential
Plaintext is revealed once. A hash, prefix, status, timestamps, and nonsecret binding metadata persist in process memory; revocation is checked on every request.
Sanitized inspection
Method, path, status, timing, and request ID—never authorization headers or response bodies.
The alpha is honest about its edge: the public read routes are deployed, while exact mocks and credentialed rehearsal remain local. The deployed reads are not supported for production use, may intentionally fail closed with 503 ResourceUnavailable, and carry no uptime or availability commitment. Durable production developer identity, credentials, grants, and webhook delivery remain unavailable and require an authorized normalized PostgreSQL migration plus operational controls. Deployment of the two unauthenticated GET routes does not create a supported developer platform or imply production access.