Music Delivery

80

Manifests

The canonical JSON manifest is the business description of a delivery. Assets are declared by metadata and checksum, then uploaded separately through scoped intents.

Package structure

kasty.music.delivery.v1 contains a message, optional defaults, parties, recordings, releases, assets and deals. Objects are strict: unknown fields fail validation instead of disappearing. Start from the listening-only example.

Single Release Listening OnlyValidated JSON example
JSON
{
  "schemaVersion": "kasty.music.delivery.v1",
  "message": {
    "id": "example_delivery_listening_001",
    "type": "NEW_RELEASE",
    "createdAt": "2026-07-16T00:00:00.000Z"
  },
  "defaults": {
    "videoUse": {
      "mode": "DISABLED"
    }
  },
  "parties": [
    {
      "ref": "example_artist_001",
      "kind": "ORGANIZATION",
      "displayName": "Example Northern Signal"
    }
  ],
  "recordings": [
    {
      "ref": "example_recording_001",
      "title": "First Light",
      "artistRefs": [
        "example_artist_001"
      ],
      "identifiers": {
        "senderRecordingId": "example_track_001"
      },
      "masterAssetRef": "example_asset_master_001"
    }
  ],
  "releases": [
    {
      "ref": "example_release_001",
      "title": "First Light",
      "type": "SINGLE",
      "primaryArtistRef": "example_artist_001",
      "coverAssetRef": "example_asset_cover_001",
      "tracks": [
        {
          "recordingRef": "example_recording_001",
          "discNumber": 1,
          "trackNumber": 1,
          "sequence": 1
        }
      ],
      "identifiers": {},
      "labelName": "Example Records",
      "releaseDate": "2026-07-16",
      "dealRefs": [
        "example_deal_001"
      ]
    }
  ],
  "assets": [
    {
      "ref": "example_asset_master_001",
      "fileName": "canary-master.wav",
      "contentType": "audio/wav",
      "sizeBytes": 176444,
      "checksumSha256": "9e7d1ee7be1fe98a6d6fa46159666e7fc49ce044d44fe3a8153bafa76a25d18a"
    },
    {
      "ref": "example_asset_cover_001",
      "fileName": "canary-cover.png",
      "contentType": "image/png",
      "sizeBytes": 20726,
      "checksumSha256": "ad8ab180c85527e603f83e4b79a13a7a1a94597415d3f7f0478d1b35ce455bc5"
    }
  ],
  "deals": [
    {
      "ref": "example_deal_001",
      "use": "LISTENING",
      "territories": [
        "WORLDWIDE"
      ],
      "startsAt": null,
      "endsAt": null,
      "recordingRefs": [
        "example_recording_001"
      ],
      "releaseRefs": [
        "example_release_001"
      ]
    }
  ]
}
Download exact JSON

Identifiers

Sender refs are stable inside the authenticated sender namespace and are not Kasty database IDs. ISRC is exactly twelve separator-free characters. UPC or EAN remains release identity evidence. Names alone never merge people, recordings or releases.

Versions and corrections

NEW_RELEASE, METADATA_UPDATE, ASSET_UPDATE, DEAL_UPDATE and TAKEDOWN append history. Corrections use a new sender-scoped message ID and preserve prior source and evidence. A deluxe release may reuse an existing recording while receiving a separate appearance.

See the metadata correction example and the canonical API schema.

Metadata CorrectionValidated JSON example
JSON
{
  "schemaVersion": "kasty.music.delivery.v1",
  "message": {
    "id": "example_delivery_metadata_r2",
    "type": "METADATA_UPDATE",
    "createdAt": "2026-07-17T00:00:00.000Z"
  },
  "defaults": {
    "videoUse": {
      "mode": "DISABLED"
    }
  },
  "parties": [
    {
      "ref": "example_artist_001",
      "kind": "ORGANIZATION",
      "displayName": "Example Northern Signal"
    }
  ],
  "recordings": [
    {
      "ref": "example_recording_001",
      "title": "First Light (Corrected)",
      "artistRefs": [
        "example_artist_001"
      ],
      "identifiers": {
        "isrc": "EXAAA2600001",
        "senderRecordingId": "example_track_001"
      },
      "masterAssetRef": "example_asset_master_001"
    }
  ],
  "releases": [],
  "assets": [
    {
      "ref": "example_asset_master_001",
      "fileName": "first-light.flac",
      "contentType": "audio/flac",
      "sizeBytes": 29000000,
      "checksumSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    }
  ],
  "deals": []
}
Download exact JSON

Takedowns

A takedown changes public availability through a revision; it does not destroy the audit trail or rewrite video grants that were validly consumed earlier. Use the takedown example and follow resulting issues or jobs like any other durable message.

TakedownValidated JSON example
JSON
{
  "schemaVersion": "kasty.music.delivery.v1",
  "message": {
    "id": "example_delivery_takedown_001",
    "type": "TAKEDOWN",
    "createdAt": "2026-07-18T00:00:00.000Z"
  },
  "defaults": {
    "videoUse": {
      "mode": "DISABLED"
    }
  },
  "parties": [
    {
      "ref": "example_artist_001",
      "kind": "ORGANIZATION",
      "displayName": "Example Northern Signal"
    }
  ],
  "recordings": [
    {
      "ref": "example_recording_001",
      "title": "First Light",
      "artistRefs": [
        "example_artist_001"
      ],
      "identifiers": {
        "isrc": "EXAAA2600001"
      },
      "masterAssetRef": "example_asset_master_001"
    }
  ],
  "releases": [
    {
      "ref": "example_release_001",
      "title": "First Light",
      "type": "SINGLE",
      "primaryArtistRef": "example_artist_001",
      "tracks": [
        {
          "recordingRef": "example_recording_001",
          "discNumber": 1,
          "trackNumber": 1,
          "sequence": 1
        }
      ],
      "identifiers": {
        "upc": "000000000001"
      },
      "dealRefs": []
    }
  ],
  "assets": [
    {
      "ref": "example_asset_master_001",
      "fileName": "first-light.flac",
      "contentType": "audio/flac",
      "sizeBytes": 29000000,
      "checksumSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    }
  ],
  "deals": []
}
Download exact JSON

Examples

Examples are synthetic and validated by the production backend parser. A lossy source is declared truthfully in the lossy-input example; it is never relabelled as a lossless master.

Single Release Lossy SourceValidated JSON example
JSON
{
  "schemaVersion": "kasty.music.delivery.v1",
  "message": {
    "id": "example_delivery_lossy_001",
    "type": "NEW_RELEASE",
    "createdAt": "2026-07-16T00:00:00.000Z"
  },
  "defaults": {
    "videoUse": {
      "mode": "DISABLED"
    }
  },
  "parties": [
    {
      "ref": "example_artist_lossy_001",
      "kind": "PERSON",
      "displayName": "Example Low Tide"
    }
  ],
  "recordings": [
    {
      "ref": "example_recording_lossy_001",
      "title": "Delivered As Encoded",
      "artistRefs": [
        "example_artist_lossy_001"
      ],
      "identifiers": {
        "isrc": "EXAAA2600003"
      },
      "masterAssetRef": "example_asset_master_lossy_001"
    }
  ],
  "releases": [
    {
      "ref": "example_release_lossy_001",
      "title": "Delivered As Encoded",
      "type": "SINGLE",
      "primaryArtistRef": "example_artist_lossy_001",
      "coverAssetRef": "example_asset_cover_lossy_001",
      "tracks": [
        {
          "recordingRef": "example_recording_lossy_001",
          "discNumber": 1,
          "trackNumber": 1,
          "sequence": 1
        }
      ],
      "identifiers": {
        "upc": "000000000003"
      },
      "dealRefs": [
        "example_deal_lossy_001"
      ]
    }
  ],
  "assets": [
    {
      "ref": "example_asset_master_lossy_001",
      "fileName": "delivered-as-encoded.mp3",
      "contentType": "audio/mpeg",
      "sizeBytes": 8100000,
      "checksumSha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
    },
    {
      "ref": "example_asset_cover_lossy_001",
      "fileName": "cover-lossy.jpg",
      "contentType": "image/jpeg",
      "sizeBytes": 720000,
      "checksumSha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
    }
  ],
  "deals": [
    {
      "ref": "example_deal_lossy_001",
      "use": "LISTENING",
      "territories": [
        "WORLDWIDE"
      ],
      "startsAt": null,
      "endsAt": null,
      "recordingRefs": [
        "example_recording_lossy_001"
      ],
      "releaseRefs": [
        "example_release_lossy_001"
      ]
    }
  ]
}
Download exact JSON