Profiling

Persisted MusiProfile generations under /v1/profiling/profiles.

Use MusiProfile to generate aggregate listener profiles for a set of analysed tracks and keep them as organisation history. Create with POST /v1/profiling/profiles, list with GET /v1/profiling/profiles, and retrieve one with GET /v1/profiling/profiles/{profile_id}.

Analysed catalogue required

Tracks must exist in an accessible catalogue and have completed MusiTag analysis. Tracks without analysis are listed in unresolved_tracks; resolved tracks still contribute to aggregate profiles.

OAuth scopes

  • profiling.write: create a persisted profile generation (consumes profiling credits).
  • profiling.read: list and retrieve persisted profiles (reads do not consume credits).

Track identifiers

Each item in tracks must include exactly one of:

  • musimap_uid: MusiMap canonical track UUID
  • isrc: ISRC string
  • outer_id: your catalogue outer identifier

Create a persisted profile

curl -X POST "https://api.musimap.com/v1/profiling/profiles" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "catalog_id": "0190…",
    "profiles": ["musical", "ocean"],
    "tracks": [
      { "musimap_uid": "0190…" },
      { "isrc": "GBUM71904911" },
      { "outer_id": "client-track-42" }
    ]
  }'

The response returns aggregate profile objects, resolved track summaries, unresolved items, and a profile_id for later retrieval. Optional profiles selects types; when omitted, all supported types are returned (musical, musical_abridged, ocean, mbti, enneagram, ego_equilibrium, ego_description).

List profile history

curl "https://api.musimap.com/v1/profiling/profiles?page=1&page_size=20" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Get one profile

curl "https://api.musimap.com/v1/profiling/profiles/$PROFILE_ID" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Monitor remaining profiling capacity with Credits.