# Get transfer summary
URL: https://musicapi.com/docs/reference/get-transfer-result.md

`GET https://api.musicapi.com/public/transfers/{transferUuid}`

Section: Managed Transfers.
Product: MusicAPI Managed Transfers.
Auth: Basic, DocsSession (any one of them). Use Basic with your Client ID and Client Secret from your server only.

The summary of one transfer of your account: status, counters, source and target service, timestamps, and `resultsUrl`, the address of its unmatched items. Requires Client Secret authentication, so call it only from your backend.

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `transferUuid` | uuid | yes | The `transferUuid` from a webhook or from the Transfers page of the dashboard. |

## Response 200

The transfer summary.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `transfer` | TransferSummary | no |  |
| `transfer.uuid` | uuid | no |  |
| `transfer.status` | string | no | One of: created, fetching, running, paused, waitingForReauth, completed, completedWithErrors, failed, cancelled. |
| `transfer.options` | object | no | The transfer options the partner configured. |
| `transfer.counters` | object | no |  |
| `transfer.counters.total` | number | no |  |
| `transfer.counters.processed` | number | no |  |
| `transfer.counters.matched` | number | no |  |
| `transfer.counters.unmatched` | number | no |  |
| `transfer.counters.skipped` | number | no |  |
| `transfer.counters.failed` | number | no |  |
| `transfer.error` | string \| null | no |  |
| `transfer.errorType` | string \| null | no |  |
| `transfer.startedAt` | date-time \| null | no |  |
| `transfer.finishedAt` | date-time \| null | no |  |
| `transfer.createdAt` | date-time | no |  |
| `transfer.source` | TransferSide | no |  |
| `transfer.source.integrationType` | string | no |  |
| `transfer.source.name` | string \| null | no |  |
| `transfer.source.email` | string \| null | no |  |
| `transfer.target` | TransferSide | no |  |
| `transfer.target.integrationType` | string | no |  |
| `transfer.target.name` | string \| null | no |  |
| `transfer.target.email` | string \| null | no |  |
| `transfer.durationSeconds` | number \| null | no |  |
| `transfer.matchRatePct` | number \| null | no |  |
| `resultsUrl` | uri | no | The address of the unmatched items of this transfer. |

```json
{
  "transfer": {
    "uuid": "5b0c6f0e-2c8a-4d0e-9a51-7e3f1c2d9b44",
    "status": "created",
    "options": {},
    "counters": {
      "total": 0,
      "processed": 0,
      "matched": 0,
      "unmatched": 0,
      "skipped": 0,
      "failed": 0
    },
    "error": "string",
    "errorType": "string",
    "startedAt": "2026-10-16T09:41:07.000Z",
    "finishedAt": "2026-10-16T09:41:07.000Z",
    "createdAt": "2026-10-16T09:41:07.000Z",
    "source": {
      "integrationType": "spotify",
      "name": "string",
      "email": "string"
    },
    "target": {
      "integrationType": "spotify",
      "name": "string",
      "email": "string"
    },
    "durationSeconds": 0,
    "matchRatePct": 0
  },
  "resultsUrl": "https://example.com"
}
```

## Errors

- 400: transferUuid is not a valid UUID.
- 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.

## Example

```bash
curl https://api.musicapi.com/public/transfers/{transferUuid} \
  -u "$MUSICAPI_CLIENT_ID:$MUSICAPI_CLIENT_SECRET"
```
