Postal Developers
Use cases

Tagging pipeline

Tag every upload automatically, review what the model is unsure about, and feed corrections back.

Postal's tagging model proposes genres, moods, instruments, vocal types and more for every track. This recipe runs it across a library and puts a human in the loop only where it matters.

Steps

  1. Find untagged tracks. Page GET /tracks with fields=id,name,audio_profile and pick tracks whose profile has no genres.
  2. Queue analysis. Send ids in batches to POST /tracks/auto-tag/batch.
  3. Wait. Handle track.audio_profile_completed webhooks, or poll GET /tracks/suggested-tags until analysisStatus is completed.
  4. Apply or review. For tracks where intelligence.ready is true and the suggestion looks complete, call POST /tracks/apply-suggested-tags. Route the rest to a review queue.
  5. Write corrections. When a reviewer changes something, send the full corrected category with PATCH /tracks/tags. Corrections are recorded as training feedback.

Scopes: read:tracks, update:tracks.

Validating tag names

Load GET /taxonomy once at startup. Reject any tag a reviewer types that is not in it, or map it to the nearest valid name before writing.

Throughput

Analysis runs in Postal's queue and can take from seconds to a few minutes per track depending on load. Queue in batches of a few hundred and let webhooks drive the next step rather than polling every track.

In an assistant

The MCP wait_for_auto_tag tool collapses trigger, poll and read into one call, and apply_suggested_tags commits. See the tool reference.

On this page