> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autocalls.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get data migration items

> List what can be migrated from one of your users

This endpoint returns what can be migrated from one user: their assistants, phone numbers, knowledgebases, tools, widgets, dashboards and voices. These are the lists of the Data Migration page of your administration panel once a source user is selected. Send their IDs to [Preview data migration](https://docs.autocalls.ai/api-reference/white-label/preview-data-migration.md) and [Start data migration](https://docs.autocalls.ai/api-reference/white-label/start-data-migration.md). Automation flows have their own endpoint, [List data migration flows](https://docs.autocalls.ai/api-reference/white-label/list-data-migration-flows.md).

> [!NOTE]
>
> This endpoint is available to the **account owner** (with an active plan) and to team members with **Platform Admin**. Other users receive a 403 Forbidden error. The owner's own account can be read only by the owner and by team members with **Allow impersonate owner**. Any other user, and a user outside your platform, returns 404.

### Phone numbers

Each number has an `action`:

* **`grant`**, for normal numbers: the number is **shared**. The source user keeps it and keeps paying for it, and only the destination user can use it. `blockers` lists what stops it from being shared: a WhatsApp sender on the number, or a missing or cancelled subscription.
* **`transfer`**, for SIP and Caller ID numbers: the number **changes owner**. A WhatsApp sender on the number stops it. `notes` lists the source user's assistants that will be unassigned from it.

A number the source user already shares with someone is not listed. A number used by assistants that are not migrated with it cannot be shared: [Preview data migration](https://docs.autocalls.ai/api-reference/white-label/preview-data-migration.md) shows it for your selection.

### Path Parameters

**id** `integer` *required*

The ID of the source user, from [List data migration users](https://docs.autocalls.ai/api-reference/white-label/list-data-migration-users.md).

### Response

**data** `object`

What can be migrated from this user. Names are on one line and at most 100 characters

**data properties**

**assistants** `object[]`

All the user's assistants, by name: `id`, `name`, `type` (`inbound` or `outbound`), `knowledgebase_id`, `custom_tool_ids`, `phone_number_id`, `voice_id`, and `automate_flows`, which says for each webhook whether it points to an automation flow: `postcall`, `conversation_ended`, `inbound`, `conversation` and `whatsapp_voice`. The first two are copied with `include_postcall_flows`, the other three with `include_inbound_flows`

**phone\_numbers** `object[]`

The numbers the user owns: `id`, `phone_number`, `country_code`, `type` (`normal`, `sip` or `callerid`), `action` (`grant` or `transfer`), `attached_assistant_ids` (the assistants that use it), `blockers` and `notes`, as described above

**knowledgebases** `object[]`

`id` and `name`

**tools** `object[]`

`id`, `name` and `type`

**widgets** `object[]`

`id`, `name` and `type` (`stat`, `chart` or `table`)

**dashboards** `object[]`

`slug`, `name`, and `referenced_assistant_ids`: the user's assistants that the dashboard's widgets show. Migrate them in the same migration so the copied widgets show their copies

**voices** `object[]`

The user's own voices: `id`, `name` and `provider`

```json 200 Response theme={null}
{
  "data": {
    "assistants": [
      {
        "id": 101,
        "name": "Bella",
        "type": "inbound",
        "knowledgebase_id": 21,
        "custom_tool_ids": [31],
        "phone_number_id": 7,
        "voice_id": 3,
        "automate_flows": {
          "postcall": true,
          "conversation_ended": false,
          "inbound": false,
          "conversation": false,
          "whatsapp_voice": false
        }
      }
    ],
    "phone_numbers": [
      {
        "id": 7,
        "phone_number": "+14155550123",
        "country_code": "US",
        "type": "normal",
        "action": "grant",
        "attached_assistant_ids": [101],
        "blockers": [],
        "notes": []
      },
      {
        "id": 8,
        "phone_number": "+442071234567",
        "country_code": "GB",
        "type": "sip",
        "action": "transfer",
        "attached_assistant_ids": [102],
        "blockers": [],
        "notes": ["Assistants of the source user using this number will be unassigned: 102."]
      }
    ],
    "knowledgebases": [
      { "id": 21, "name": "Bella FAQ" }
    ],
    "tools": [
      { "id": 31, "name": "Check availability", "type": "http" }
    ],
    "widgets": [
      { "id": 41, "name": "Calls this week", "type": "stat" }
    ],
    "dashboards": [
      { "slug": "sales", "name": "Sales", "referenced_assistant_ids": [101] }
    ],
    "voices": [
      { "id": 3, "name": "Bella voice", "provider": "ElevenLabs" }
    ]
  }
}
```

```json 401 Unauthenticated theme={null}
{
  "message": "Unauthenticated."
}
```

```json 403 Not Administrator theme={null}
{
  "message": "You are not an administrator."
}
```

```json 403 No Data Migration Access theme={null}
{
  "message": "You do not have access to data migration."
}
```

```json 404 User Not Found theme={null}
{
  "message": "User not found."
}
```

```json 429 Too Many Requests theme={null}
{
  "message": "Too Many Attempts."
}
```

### Rate limit

The data migration endpoints count toward the limit of 60 requests per minute for each account that the administration endpoints share. Above it they return `429`, and the `Retry-After` response header tells you how many seconds to wait.

### Example

```bash theme={null}
curl -X GET https://app.autocalls.ai/api/white-label/data-migration/users/12/items \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.