Skip to the content
  1. API reference
  2. Managed Transfers

List unmatched items of a transfer

GET/public/transfers/{transferUuid}/unmatched
Managed TransfersAuthBasicDocsSession

The unmatched and failed items of one transfer of your account, one page at a time, in a stable order. Send nextCursor back as cursor until it is null. Requires Client Secret authentication. The match.report_ready and transfer.completed webhooks carry this address as resultsUrl.

Path parameters

transferUuid
uuidrequired

The transferUuid from a webhook or from the Transfers page of the dashboard.

Query parameters

reason
notFound | lowConfidence | regionLocked | error | cannotMatch | limitReached

Return only the rows with this reason. error also returns the failed items.

limit
number · 100

Rows per page.

cursor
string

The nextCursor of the previous page. Leave it out for the first page. Opaque: do not build or change it.

Response

200application/json · MatchResultsPageOne page of rows.
unmatched
MatchResultRow[]
unmatched[].transferUuid
uuid
unmatched[].title
string
unmatched[].artist
string
The source artists, joined with a comma.
unmatched[].playlistName
string
unmatched[].reason
string
One of: notFound, lowConfidence, regionLocked, error, cannotMatch, limitReached
unmatched[].bestGuess
string | null
The best guess as one readable line.
unmatched[].bestGuessUrl
string | null
The web address of the best guess on the destination service. Null when there is no guess or the service gives no address.
unmatched[].status
string
One of: unmatched, failed
unmatched[].itemType
string
One of: track, album, artist
unmatched[].matchingPercentage
number | null
unmatched[].source
object
unmatched[].source.id
string
The id of the item on the source service.
unmatched[].source.entryId
string | null
The id of the playlist entry, when the source service has one.
unmatched[].source.name
string
unmatched[].source.artists
string[]
unmatched[].source.album
string | null
unmatched[].source.isrc
string | null
unmatched[].source.durationMs
number | null
unmatched[].group
object
unmatched[].group.type
string
One of: playlist, likedTracks, albums, artists, podcasts
unmatched[].group.name
string
unmatched[].group.sourceId
string | null
The source playlist id. Null for the other types.
unmatched[].bestGuessCandidate
object | null
The closest item on the destination service. Not added.
unmatched[].bestGuessCandidate.id
string
unmatched[].bestGuessCandidate.name
string
unmatched[].bestGuessCandidate.artists
string[]
unmatched[].bestGuessCandidate.album
string | null
unmatched[].bestGuessCandidate.isrc
string | null
unmatched[].bestGuessCandidate.url
string | null
nextCursor
string | null
Send it back as cursor. null on the last page.
Example answer
{
  "unmatched": [
    {
      "transferUuid": "5b0c6f0e-2c8a-4d0e-9a51-7e3f1c2d9b44",
      "title": "string",
      "artist": "string",
      "playlistName": "string",
      "reason": "notFound",
      "bestGuess": "string",
      "bestGuessUrl": "string",
      "status": "unmatched",
      "itemType": "track",
      "matchingPercentage": 0,
      "source": {
        "id": "string",
        "entryId": "string",
        "name": "string",
        "artists": [
          null
        ],
        "album": "string",
        "isrc": "string",
        "durationMs": 0
      },
      "group": {
        "type": "playlist",
        "name": "string",
        "sourceId": "string"
      },
      "bestGuessCandidate": {
        "id": "string",
        "name": "string",
        "artists": [
          null
        ],
        "album": "string",
        "isrc": "string",
        "url": "string"
      }
    }
  ],
  "nextCursor": "string"
}

Errors

400

A parameter or the cursor is not valid.

401

The request has no credentials.

403

The request does not use Client Secret authentication, or the transfer service is not on for your account.

404

Your account has no transfer with this UUID.