LISTN AI

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}}
FieldMeaning
wouldadd a new release, update one we have, takedown, or refuse.
errorsWhy a delivery would be refused. Fix these first.
notesThings that would not stop the delivery but that you may want to fix, or that our team checks by hand.
release, dealWhat 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 with GET /releases/{upc}.
  • Test a takedown on a test release: send a PurgeReleaseMessage, or the same message with a TakeDown deal.