Distributor hub
Sandbox and testing
Check a message without changing anything, and test safely.
Before your first real delivery, and whenever you change how you build messages, check them in the sandbox. It reads the message exactly as a delivery would and tells you what would happen. It changes nothing on the site, and nothing you send to it is kept.
Check a message
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/xml" \
--data-binary @sample-ern-4.3.xml https://www.listnmusic.ai/api/feed/v1/validate
Start with our sample ERN 4.3 message: a single with one track, its cover and a worldwide streaming deal. It passes, so you can compare it with your own.
Reading the answer
{"sandbox": true, "changed": false,
"ok": true,
"would": "add",
"errors": [],
"notes": ["Track 1 (\"First Light\") has no ISRC."],
"message": {"ern_version": "43", "message_id": "SAMPLE-MSG-0001", "sender": "PADPIDA0000000000X", ...},
"release": {"title": "First Light", "upc": "0123456789012", "type": "Single", "artists": [...],
"cover": "resources/cover.jpg",
"tracks": [{"number": 1, "title": "First Light", "isrc": "QZXXX2600001", "file": "resources/QZXXX2600001.flac"}],
"on_site": false},
"deal": {"streaming": true, "takedown": false, "worldwide": true, "start": "2026-10-15", "end": null}}
| Field | Meaning |
|---|---|
would | add a new release, update one we have, takedown, or refuse. |
errors | Why a delivery would be refused. Fix these first. |
notes | Things that would not stop the delivery but that you may want to fix, or that our team checks by hand. |
release, deal | What we read from the message: check titles, artists, ISRCs and file paths here. |
The sandbox does not have your files, so it lists the audio and cover paths but cannot check that they arrive. A real delivery checks that, and the MD5 when you send one.
Testing a full delivery
- Mark a message
<MessageControlType>TestMessage</MessageControlType>to send it through the whole delivery path. A test message can add a new release for our team to look at, but it never changes or takes down a live one. - Ask us to keep your first deliveries in review (that is how new accounts start). Nothing goes live until our team approves it.
- Follow each delivery with
GET /deliveries/{id}or the acknowledgement files, and each release withGET /releases/{upc}. - Test a takedown on a test release: send a PurgeReleaseMessage, or the same message with a
TakeDowndeal.
