casset
featuresDropsAPIaboutSign in

Casset API

Don't just upload your music. Give your artist world an API.

Casset turns tracks, drops, media, moments, identities, and context into structured first-party data that apps, agents, labels, and fans can build around.

Request API accessExplore features

A song on a streaming platform is a file. A song in Casset is part of a living archive — with the drops, visuals, moments, identities, and lineage still attached.

GET /api/agents/artists/connor200 OK · 112 KB
  "handle": "connor",
  "name": "Connor James",
  "isVerified": false,
  "url": "https://casset.fm/connor",
  "counts": { tracks: 58, visuals: 10, releases: 1 },
  "tracks": [{
    "id": "connor-lose-you",
    "title": "lose you",
    "kind": "ORIGINAL"
  }],   // +57 more
  "endpoints": { ask: "https://casset.fm/api/agents/artists/connor/ask" }

Live response from GET /api/agents/artists/connor — fetched server-side so the key never touches the browser.

The distinction

Streaming is for playback. Casset is for context.

Streaming platforms are incredible distribution systems — they make songs available everywhere. But they flatten the artist into release metadata: title, artwork, duration, credits, and a play button. That's enough to listen. It isn't enough to build rich fan experiences, agentic tools, campaign systems, or living artist worlds. Casset keeps the surrounding world intact — the drops, visuals, media, moments, identities, lineage, and source material that make a song legible.

Streaming metadata

  • · title
  • · artwork
  • · duration
  • · credits
  • · ▶ play

Casset context

  • + tracks + stable IDs
  • + drops + pre-release context
  • + media · visuals · BTS
  • + moments · identities
  • + lineage · provenance · deep links

One artist bundle. A whole creative system.

The catalog is the code. Read the whole world in one call.

Every category below is either a live endpoint or a first-class concept already present in the product. Fetch one artist bundle and you have the songs, the media, the releases, and the links between them — structured, stable, and first-party.

GET/api/agentspublic

Discovery

A public, self-describing catalog of agent-readable artists — plus /openapi.json, an OpenAPI 3.1 document apps read to learn what Casset exposes and how to route in.

GET/api/agents/artists/{handle}API key

Artist bundle

The creator bundle: profile, counts, tracks, visuals, releases, and links — the whole artist world as one structured object.

GET· tracks[]API key

Tracks

Stable track IDs, titles, kind (original vs generation), durations, posters, and lyric state — addressable objects apps and fans can point into.

GET· visuals[]API key

Media

Covers, behind-the-scenes, and hook visuals with posters and types — the visual world connected to the songs.

POST/api/agents/artists/{handle}/askAPI key

Ask the Room

Grounded Q&A over the artist's actual archive — an assistant that reasons from source material, not scraped vibes.

GET/api/agents/releases/{id}/lineageopen · rate-limited

Lineage & provenance

Per-release manifest, DNA, provenance, and lineage — how demos, samples, and ideas connect into finished releases.

LINKcasset.fm/{handle}?trackId={id}public

Deep links

Link straight into a specific track on a live profile. Track IDs are stable, addressable objects — treat them as first-class references.

Emerging — first-class in the product, shaping into the agent layer

GETdrops · pre-releasepublic

Drops

Campaign-aware release and pre-release context (drop plans, presaves) — first-class in the product today, designed for the agent layer next.

GETmomentspublic

Moments

Fan-submitted memories and context tied to specific tracks and drops — real today, being shaped into the agent surface.

GETidentities · projectspublic

Identities & projects

Alter-egos, B-side personas, and creative containers that group songs, visuals, and drops into larger worlds.

Try it live

No sandbox. No signup. Just call the real thing.

The discovery endpoint is public and self-describing — run it right here and read the actual response Casset returns. It documents every data endpoint, the auth scheme, and current rate limits, so an agent can learn the whole API in one request.

GET /api/agents

Then: fetch any artist bundle

curl https://www.casset.fm/api/agents/artists/connor \
  -H "Authorization: Bearer $CASSET_API_KEY"
Returns the full creator bundle.

The discovery call is public — that response above is live. Data endpoints take a server-side key; keep CASSET_API_KEY on your backend.

What you can build

One archive. Every audience builds on it.

The same structured bundle powers very different products. Pick who you are — the archive doesn't change, only what you build on top of it.

For artists

Turn your catalog, drops, media, and identity into an ownable, structured archive.

  • A programmable artist profile
  • Contextual drops and pre-release worlds
  • Linkable track worlds via stable IDs
  • AI assistants grounded in your real archive
  • Unlockable experiences around specific songs

Why agents need this

Agents need source material, not scraped vibes.

A generic model looking at a streaming link can guess what a song means. An agent connected to Casset can inspect the artist bundle, find real tracks, follow relationships, use stable IDs, and link back to exact objects. That means better writing, better recommendations, better fan experiences, and fewer hallucinations.

Stable IDs

Track and release IDs that don't move — safe to store, cite, and link back to.

Structured data

Typed bundles, not HTML to parse. The shape is the contract.

First-party context

Artist-approved source material, not third-hand scraping.

Track-level links

Point straight at a song with ?trackId= — no ambiguity.

Connected media

Visuals, releases, and lineage attached to the same object.

Safer generation

Grounded answers via the Room ask endpoint — less hallucination.

Example flow

Discover, fetch, link. Three calls to the whole world.

01Discover what Casset exposes
discovery
# public — no key required
curl https://www.casset.fm/api/agents
02Fetch an artist bundle by handle
artist bundle
curl https://www.casset.fm/api/agents/artists/connor \
  -H "Authorization: Bearer $CASSET_API_KEY"
03Link into a specific track, drop, or object
deep link
# stable, addressable — opens the track live
https://casset.fm/connor?trackId=<track_id>

The key is a server-side secret. Keep CASSET_API_KEY on your backend — never ship it to the browser.

Built for artist-owned context

Don't rebuild your world on every platform. Give it an address.

An artist shouldn't have to reconstruct their context everywhere they go. Songs, drops, visuals, identities, and moments should form a durable archive that belongs to the artist — and Casset becomes the structured layer other apps build from.

Durable

A structured archive that grows with a career, not a per-platform rebuild.

Portable

Stable endpoints and IDs mean other apps can build on the same source of truth.

Owned

The artist's world stays theirs — Casset is the programmable layer around it.

Make your artist world programmable.

Request API accessExplore features
Read the docsView the catalog
casset
FeaturesDropsDocsPrivacyTerms

© Casset 2026