Edit

Create crossTenantMigrationJob

Namespace: microsoft.graph

Create a new crossTenantMigrationJob object. A job defines the migration batch but doesn't start validation or migration. After you create the job, call validate to verify tenant and resource configuration, then call migrate to begin the actual migration.

Permissions

Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.

Permission type Least privileged permissions Higher privileged permissions
Delegated (work or school account) CrossTenantContentMigration.ReadWrite.All Not available.
Delegated (personal Microsoft account) Not supported. Not supported.
Application CrossTenantContentMigration.ReadWrite.All Not available.

Important

For delegated access using work or school accounts, the signed-in user must be assigned a supported Microsoft Entra role or a custom role that grants the permissions required for this operation. This operation supports the following built-in roles, which provide only the least privilege necessary:

  • Microsoft 365 Migration Administrator
  • Global Administrator

HTTP request

POST /solutions/migrations/crossTenantMigrationJobs

Request headers

Name Description
Authorization Bearer {token}. Required. Learn more about authentication and authorization.
Content-Type application/json. Required.

Request body

In the request body, supply a JSON representation of the crossTenantMigrationJob object.

You can specify the following properties when you create a crossTenantMigrationJob.

Property Type Description
completeAfterDateTime DateTimeOffset Date and time when the migration batch should start. Required.
displayName String Name of the crossTenantMigrationJob. Must be unique per tenant. Required.
exchangeSettings exchangeOnlineCrossTenantMigrationSettings Settings for Exchange Online migrations. Optional, but required if Exchange is a specified workload.
resources String collection Object IDs (GUID) of the resources to migrate. Limit of 2,000 resources per crossTenantMigrationJob. Required.
resourceType String Type of resources to migrate. Only Users is supported at this time. Required.
sourceTenantId String Tenant ID (GUID) of the source tenant for the migration. Required.
workloads String collection Workloads to migrate on the resources. Optional. If excluded, all available workloads are included in the migration.

Response

If successful, this method returns a 201 Created response code and a crossTenantMigrationJob object in the response body.

Examples

Request

The following example shows a request.

POST https://graph.microsoft.com/v1.0/solutions/migrations/crossTenantMigrationJobs
Content-Type: application/json

{
  "displayName": "xtmigration_user_req_1",
  "completeAfterDateTime": "2024-12-09T22:48:03.092Z",
  "sourceTenantId": "12345678-1234-1234-1234-123456789012",
  "exchangeSettings": {
    "targetDeliveryDomain": "xtmigration.onmicrosoft.com",
    "sourceEndpoint": "sampleEndpointText"
  },
  "resources": [
    "4dd550d9-9ea2-4e71-a16b-60b1d1c4f506",
    "63f15b55-f61a-49cb-a599-2e3d233afb2c",
    "41d94bac-3a53-47d6-a89e-583830104e15"
  ],
  "resourceType": "Users",
  "workloads": [
    "Teams",
    "Exchange",
    "ODSP"
  ]
}

Response

The following example shows the response.

HTTP/1.1 201 Created
Content-Type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#solutions/migrations/crossTenantMigrationJobs/$entity",
  "id": "add14989-2b21-4001-81bd-a18b0bac1dea",
  "displayName": "Contoso_migration_job",
  "jobType": "validate",
  "status": "submitted",
  "message": "",
  "completeAfterDateTime": "2023-12-17T20:38:04.101Z",
  "targetTenantId": "87654321-4321-4321-4321-210987654321",
  "sourceTenantId": "12345678-1234-1234-1234-123456789012",
  "exchangeSettings": {
    "targetDeliveryDomain": "fabrikam.onmicrosoft.com",
    "sourceEndpoint": "sampleEndpointText"
  },
  "resources": [
    "4dd550d9-9ea2-4e71-a16b-60b1d1c4f506",
    "63f15b55-f61a-49cb-a599-2e3d233afb2c",
    "41d94bac-3a53-47d6-a89e-583830104e15"
  ],
  "resourceType": "Users",
  "workloads": ["Teams", "Exchange", "ODSP"],
  "createdBy": "admin@fabrikam.onmicrosoft.com",
  "createdDateTime": "2025-11-14T20:55:10.5427196Z",
  "lastUpdatedDateTime": "2025-11-14T20:55:10.5427196Z"
}