Skip to content

migrationUsers

Migration Users. Individual users in a migration batch and their status. The migrationUsers entity set lives under /exchange/v1.0/migrationUsers in the Migration & jobs category.

Fact Value
Path /exchange/v1.0/migrationUsers
Category Migration & jobs
Tier Tier 6, Mailbox jobs
Read role MailboxJobs.Read.All (Community)
Write role MailboxJobs.ReadWrite.All (Pro)
Backing cmdlets Get-MigrationUser, Set-MigrationUser, Remove-MigrationUser, Get-MigrationUserStatistics, Start-MigrationUser, Stop-MigrationUser
Method Path Synopsis Role Plan
GET /exchange/v1.0/migrationUsers List migrationUsers entries. MailboxJobs.Read Community
GET /exchange/v1.0/migrationUsers/{key} Get a single migrationUsers entry by Identity. MailboxJobs.Read Community
POST /exchange/v1.0/migrationUsers/{key}/start POST /migrationUsers/{key}/start - resume a stopped or queued migration user via Start-MigrationUser. The migration service restarts the data copy for this user within its batch. 204 on success; pass ?dryRun=true to preview (-WhatIf) without changing state. MailboxJobs.ReadWrite Pro
GET /exchange/v1.0/migrationUsers/{key}/statistics Get-MigrationUserStatistics - per-user migration progress + diagnostics. MailboxJobs.Read Community
POST /exchange/v1.0/migrationUsers/{key}/stop POST /migrationUsers/{key}/stop - stop an in-progress migration user via Stop-MigrationUser. Halts the data copy; the user can be resumed later with POST /migrationUsers/{key}/start. 204 on success; pass ?dryRun=true to preview (-WhatIf) without changing state. MailboxJobs.ReadWrite Pro

List migrationUsers entries.

Backing cmdlet: Get-MigrationUser. Role: MailboxJobs.Read (Community).

Parameter In Type Required Description
batchId query string Limit results to users in the named migration batch (Get-MigrationUser -BatchId).
status query string Filter users by detailed status (Get-MigrationUser -Status). One of: Completed, CompletedWithWarnings, Completing, CompletionFailed, CompletionSynced, Corrupted, Failed, IncrementalFailed, IncrementalStopped, IncrementalSynced, IncrementalSyncing, Provisioning, ProvisionUpdating, Queued, Removing, Starting, Stopped, Stopping, Synced, Syncing, Validating.
statusSummary query string Filter users by coarse-grained roll-up status (Get-MigrationUser -StatusSummary). One of: Active, Completed, Failed, Stopped, Synced.
all query bool (switch) Return all results instead of the EXO default of 1000. Maps -ResultSize Unlimited on Get-MigrationUser; prevents silent truncation in large tenants.
emailAddress query string
mailboxGuid query string

Stub auto-generated example for the migrationUsers collection. Backing cmdlet: Get-MigrationUser. Live-verify with ?$top=3&$select=Id,Name and replace the synthetic body before promoting to Tier 1.

GET /exchange/v1.0/migrationUsers?$top=3 HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#migrationUsers",
"value": []
}

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

Related: GET /exchange/v1.0/migrationUsers/{key}

Get a single migrationUsers entry by Identity.

Backing cmdlet: Get-MigrationUser. Role: MailboxJobs.Read (Community).

Stub auto-generated example for GET /migrationUsers/{key}. Backing cmdlet: Get-MigrationUser with -Identity {key}. Returns the full entity body; 404 if the identity doesn’t resolve.

GET /exchange/v1.0/migrationUsers/{key} HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#migrationUsers/$entity"
}

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

Related: GET /exchange/v1.0/migrationUsers

POST /exchange/v1.0/migrationUsers/{key}/start

Section titled “POST /exchange/v1.0/migrationUsers/{key}/start”

POST /migrationUsers/{key}/start - resume a stopped or queued migration user via Start-MigrationUser. The migration service restarts the data copy for this user within its batch. 204 on success; pass ?dryRun=true to preview (-WhatIf) without changing state.

Backing cmdlet: Start-MigrationUser. Role: MailboxJobs.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Sub-resource of the migration user at GET /migrationUsers/{key} - bound action that resumes a stopped or queued migration user via Start-MigrationUser. The migration service restarts the data copy for this user within its batch. Returns 204. Pass ?dryRun=true to preview (-WhatIf).

POST /exchange/v1.0/migrationUsers/{key}/start HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 204 No Content

Notes: Route + auth + cmdlet wiring live-verified 2026-05-29 (token carries the newly-minted MailboxJobs.ReadWrite.All; Start-MigrationUser executes and returns a clean 404 for a non-existent migration user). No active migration batches existed on the tenant to exercise a full 204.

Related: GET /exchange/v1.0/migrationUsers/{key}, POST /exchange/v1.0/migrationUsers/{key}/stop

GET /exchange/v1.0/migrationUsers/{key}/statistics

Section titled “GET /exchange/v1.0/migrationUsers/{key}/statistics”

Get-MigrationUserStatistics - per-user migration progress + diagnostics.

Backing cmdlet: Get-MigrationUserStatistics. Role: MailboxJobs.Read (Community).

Parameter In Type Required Description
includeReport query bool (switch) Return additional troubleshooting detail in the Report field (Get-MigrationUserStatistics -IncludeReport).
includeSkippedItems query bool (switch) Include skipped items for the user in the statistics (Get-MigrationUserStatistics -IncludeSkippedItems).

POST /exchange/v1.0/migrationUsers/{key}/stop

Section titled “POST /exchange/v1.0/migrationUsers/{key}/stop”

POST /migrationUsers/{key}/stop - stop an in-progress migration user via Stop-MigrationUser. Halts the data copy; the user can be resumed later with POST /migrationUsers/{key}/start. 204 on success; pass ?dryRun=true to preview (-WhatIf) without changing state.

Backing cmdlet: Stop-MigrationUser. Role: MailboxJobs.ReadWrite (Pro).

Parameter In Type Required Description
dryRun query bool (switch)

Sub-resource of the migration user at GET /migrationUsers/{key} - bound action that stops an in-progress migration user via Stop-MigrationUser. Halts the data copy; the user can be resumed later with POST /migrationUsers/{key}/start. Returns 204. Pass ?dryRun=true to preview (-WhatIf).

POST /exchange/v1.0/migrationUsers/{key}/stop HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 204 No Content

Notes: Route + auth + cmdlet wiring live-verified 2026-05-29 (MailboxJobs.ReadWrite.All accepted; Stop-MigrationUser loads + executes). No active migration batches existed on the tenant to exercise a full 204.

Related: GET /exchange/v1.0/migrationUsers/{key}, POST /exchange/v1.0/migrationUsers/{key}/start

?dryRun=true previews of any write stay on Community.