Who wrote it. Who controls it. Who to call.
BMI Songview registry data — writers, splits, IPIs, publisher contacts — as clean JSON. Search any song right now, no account.
In your own verbs
Clear a catalog
Loop your track list, write writers + splits + contacts to a CSV.
for title in $(cat catalog.txt); do
curl -s -X POST $BMI/title-search \
-H "Authorization: Bearer $KEY" -d "{\"title\":\"$title\"}"
done > cleared.jsonlReconcile a statement
Match each royalty line to its work by ISWC, flag the gaps.
rows = read_csv("statement.csv")
for r in rows:
work = bmi.iswc_search(r.iswc)
reconcile(r, work["data"]["results"])Enrich a roster
Resolve every writer to an IPI + affiliation, dedupe collisions.
const w = await bmi.writerSearch(name);
const ipi = w.data.results[0]?.ipiNumber;
const pro = w.data.results[0]?.affiliations?.[0];
upsertRoster({ name, ipi, pro });