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

List unmatched items of all transfers

GET/public/transfers/unmatched
Managed TransfersAuthBasicDocsSession

The unmatched and failed items of every transfer of your account that finished in [from, to), ordered by transfer and then by item. For a daily bulk pull. The window must not be longer than 31 days. A page can hold fewer rows than limit and still have a nextCursor: continue until nextCursor is null. Requires Client Secret authentication.

Query parameters

from
date-timerequired

A transfer is in the window when it finished at or after this time.

to
date-time

A transfer is in the window when it finished before this time. Default: now.

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

from is missing, to is not after from, the window is longer than 31 days, 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.