Postal Developers
Use cases

Catalogue sync

Keep an external system of record and a Postal library in step.

A label, publisher or distributor keeps its own database of works and recordings. Postal holds the audio and the working metadata. This recipe keeps the two aligned in both directions.

Into Postal

  1. Ingest audio by URL. Put the files somewhere Postal can fetch them (a signed S3 or R2 URL is fine) and call POST /tracks/upload/url with up to 25 items per request. Pass details so ISRC, artist and album land on the first write.
  2. Create composers once. For each writer or publisher, call POST /composers with their PRO and IPI. Keep a map from your internal id to the Postal id.
  3. Patch metadata as it changes. Use PATCH /tracks/details when a title, ISRC or release year changes on your side.

Scopes: create:tracks, update:tracks, create:composer, update:composer, read:composers, read:composer.

Out of Postal

Attach a webhook to the key and handle:

EventWhat to do
track.audio_profile_completedRead BPM, key, duration and tags into your system
track.updatedPull the changed details
shareholder.linked_to_track, shareholder.track_updatedUpdate split percentages
composer.updatedRefresh PRO and IPI

Verify every delivery with the signature recipe, deduplicate on X-Postal-Event-Id, and re-fetch with the API rather than trusting the payload for anything you write to a ledger.

Reconcile

Once a day, page through GET /tracks with fields=id,name,createdAt,cid and diff against your records. Use GET /tracks/duplicates to catch the same master uploaded twice under different names.

Notes

  • Uploads are asynchronous. A track exists immediately but its audio profile is empty until analysis completes.
  • Email is unique per composer within an account. Search before you create.
  • Rate limit is 100 requests per minute per IP. Batch uploads and space reconciliation runs accordingly.

On this page