Catalogue Ingest API

Overview

Push a catalogue of musical works into Record over HTTPS.

Send your catalogue of musical works to Record over HTTPS. We validate it, normalise it, and store it against your account. It is then ready to prepare for the MLC, the PROs and other destinations.

Base URL: https://ingest.takerecord.com

What this API is#

  • One endpoint. POST/api/v1/catalogue/works upserts one to 500 works into a catalogue.
  • Inbound only. The API accepts your data. It does not return your stored catalogue. There is no list or download here. You get outputs from the Record app.
  • No self-service retraction yet. You cannot withdraw a work through the API. Ask us, and a person here withdraws it. See "To withdraw a work" below.
  • Strict. The request schema rejects a misspelled field. It does not ignore it.
  • Honest. We report every transformation we apply to your data in the response.
  • Idempotent. A retry is safe when you send an Idempotency-Key.

To withdraw a work#

Send us the client_work_ref values. A person here runs the withdrawal.

A withdrawn work stops being eligible for every destination. We keep the record, because we may need to show a society what we sent and when. We do not delete it.

We refuse a work that already reached a destination. Those values are live and a society may pay against them. Such a work needs a correction sent upstream, which is a different process. Ask us and we will start it.

An endpoint for you to call is on the roadmap.

The rule that matters most#

A writer's ownership of a song and a publisher's collection share are different numbers. So are performance share and master ownership. Never copy one into another, and never default one from another.

Read Share semantics before you map any percentage. It is the mistake that costs the most to undo.

How a request is shaped#

json
{
  "catalog_name": "Q3 Catalogue Sync",
  "client_artist_ref": "your-artist-123",
  "works": [
    {
      "primary_title": "Midnight Drive",
      "client_work_ref": "ACME-0001",
      "recording": { "artist_name": "Nova Ray", "isrc": "USRC12345678" },
      "writers": [{ "writer_first_name": "Alex", "writer_last_name": "Stone", "writer_ownership_pct": 100, "writer_controlled": true }],
      "publishers": [
        { "publisher_name": "Acme Publishing", "publisher_collection_share": 50, "linked_writer_index": 0, "publisher_controlled": true }
      ]
    }
  ]
}

Three ids do the work:

IdWhosePurpose
client_work_refYoursIdentifies one work. Re-sending it updates that work.
client_artist_refYoursGroups an artist's works into one catalogue.
catalog_idOursNames an existing catalogue directly. Optional.

You can integrate using only your own ids. You never have to store ours.