> ## 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.

# List data migrations

> List the migrations of your platform, newest first

This endpoint returns the migrations of your platform, newest first, whoever started them and wherever: the API, the AI connector or the Data Migration page of your administration panel. Each one is a summary: [Get data migration](https://docs.autocalls.ai/api-reference/white-label/get-data-migration.md) returns its results, warnings and the items that did not start. Use it to find a migration whose ID you lost, or to see whether one is still queued or running before you start another.

Migrations made before this endpoint existed are not listed. Their rows are in [List data migration history](https://docs.autocalls.ai/api-reference/white-label/list-data-migration-history.md), with `run_id` set to `null`.

> [!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. Every administrator sees all the migrations of your platform.

### Query Parameters

**per\_page** `integer` (default: 15)

Migrations per page, from 1 to 100.

**page** `integer` (default: 1)

The page number.

Unknown fields are refused.

### Response

**data** `object[]`

The migrations of this page, newest first. Each one has the fields of [Get data migration](https://docs.autocalls.ai/api-reference/white-label/get-data-migration.md) without `results`, `warnings` and `not_started`: `id`, `status`, `channel`, `error`, `initiated_by`, `source_user`, `destination_user`, `counts`, `succeeded`, `failed`, `created_at`, `started_at` and `finished_at`

**current\_page** `integer`

The current page

**last\_page** `integer`

The last page

**per\_page** `integer`

Migrations per page

**total** `integer`

The number of migrations

**from** `integer | null`

The position of the first migration of this page

**to** `integer | null`

The position of the last migration of this page

**first\_page\_url** `string`

The first page

**last\_page\_url** `string`

The last page

**next\_page\_url** `string | null`

The next page, or `null` on the last page

**prev\_page\_url** `string | null`

The previous page, or `null` on the first page

**path** `string`

The endpoint's URL, without the query

**links** `object[]`

Links to the pages: `url`, `label` and `active`

```json 200 Response theme={null}
{
  "current_page": 1,
  "data": [
    {
      "id": 56,
      "status": "running",
      "channel": "panel",
      "error": null,
      "initiated_by": { "id": 61, "name": "Sam Lee" },
      "source_user": { "id": 12, "name": "Jane Cooper" },
      "destination_user": { "id": 34, "name": "John Smith" },
      "counts": null,
      "succeeded": null,
      "failed": null,
      "created_at": "2026-11-03T11:02:00+00:00",
      "started_at": "2026-11-03T11:02:01+00:00",
      "finished_at": null
    },
    {
      "id": 55,
      "status": "completed",
      "channel": "api",
      "error": null,
      "initiated_by": { "id": 5, "name": "Alex Morgan" },
      "source_user": { "id": 12, "name": "Jane Cooper" },
      "destination_user": { "id": 34, "name": "John Smith" },
      "counts": {
        "assistants": 1,
        "phone_numbers": 1,
        "knowledgebases": 0,
        "tools": 0,
        "widgets": 0,
        "dashboards": 0,
        "voices": 0,
        "flows": 0
      },
      "succeeded": 2,
      "failed": 0,
      "created_at": "2026-11-03T10:15:00+00:00",
      "started_at": "2026-11-03T10:15:02+00:00",
      "finished_at": "2026-11-03T10:15:21+00:00"
    }
  ],
  "first_page_url": "https://app.autocalls.ai/api/white-label/data-migration/runs?page=1",
  "from": 1,
  "last_page": 1,
  "last_page_url": "https://app.autocalls.ai/api/white-label/data-migration/runs?page=1",
  "links": [
    { "url": null, "label": "&laquo; Previous", "active": false },
    { "url": "https://app.autocalls.ai/api/white-label/data-migration/runs?page=1", "label": "1", "active": true },
    { "url": null, "label": "Next &raquo;", "active": false }
  ],
  "next_page_url": null,
  "path": "https://app.autocalls.ai/api/white-label/data-migration/runs",
  "per_page": 15,
  "prev_page_url": null,
  "to": 2,
  "total": 2
}
```

```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 422 Invalid Page Size theme={null}
{
  "message": "The per page field must not be greater than 100.",
  "errors": {
    "per_page": ["The per page field must not be greater than 100."]
  }
}
```

```json 422 Unsupported Field theme={null}
{
  "message": "The status field is not supported.",
  "errors": {
    "status": ["The status field is not supported."]
  }
}
```

```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/runs?per_page=20" \
  -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.