[metadata]
adobe-target: true
asset_id: azure-resource-manager/management/async-operations
author: Xelu86
breadcrumb_path: /azure/bread/toc.json
cmProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/2ed91286-6cf7-4b83-810d-75d0ee3b09dd
cmProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/4e834929-0ce1-4c1d-9c81-fcb14721edfb
cmProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/68ec7f3a-2bc6-459f-b959-19beb729907d
color-scheme: light dark
depot_name: Azure.azure-documents
description: Describes how to track asynchronous operations in Azure. It shows the values you use to get the status of a long-running operation.
document_id: 7b0985f3-9f69-f25a-715c-c67ab16b2274
document_version_independent_id: 84c72697-82f5-aefd-8467-7e1a4dd08290
feedback_help_link_type: get-help-at-qna
feedback_help_link_url: https://learn.microsoft.com/answers/tags/133/azure
feedback_product_url: https://feedback.azure.com/d365community/forum/9a0ece70-ff24-ec11-b6e6-000d3a4f07b8
feedback_system: Standard
git_commit_id: 3fcd0977b587522d27365fcc432cd01c8df2e7be
gitcommit: https://github.com/MicrosoftDocs/azure-docs-pr/blob/3fcd0977b587522d27365fcc432cd01c8df2e7be/articles/azure-resource-manager/management/async-operations.md
github_feedback_content_git_url: https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/azure-resource-manager/management/async-operations.md
item_type: Content
learn_banner_products: azure
locale: en-us
markdown_url: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations?accept=text/markdown
ms.author: jgao
ms.date: 2026-02-27T00:00:00Z
ms.service: azure-resource-manager
ms.subservice: management
ms.suite: office
ms.topic: article
ms.update-cycle: 365-days
og:description: Describes how to track asynchronous operations in Azure. It shows the values you use to get the status of a long-running operation.
og:image: https://learn.microsoft.com/en-us/media/open-graph-image.png
og:image:alt: Microsoft Learn
og:title: Status of asynchronous operations - Azure Resource Manager
og:type: website
og:url: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations
original_content_git_url: https://github.com/MicrosoftDocs/azure-docs-pr/blob/live/articles/azure-resource-manager/management/async-operations.md
page_type: conceptual
pdf_url_template: https://learn.microsoft.com/pdfstore/en-us/Azure.azure-documents/{branchName}{pdfName}
permissioned-type: public
platform_id: 6e726783-1b6c-c308-2cd6-002576dcf16d
previous_tlsh_hash: D8B39FC1400C8730FF82ADC5191AE91894F1A10DED303ED419157271EDDF0F7B8F1763E3ABEBA34513314A5B0642D62E46D1AE3EA82853A30959E89ED28CB152A76D33F0ED
recommendation_types: Certification
recommendation_types: Training
recommendations: true
schema: Conceptual
scope: Azure,Azure management service
site_name: Docs
source_path: articles/azure-resource-manager/management/async-operations.md
spProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/6735bd7e-4f7b-457d-b58c-29e6f0198677
spProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/75670257-a3f0-4627-9981-8046f99219e6
spProducts: https://authoring-docs-microsoft.poolparty.biz/devrel/90370425-aca4-4a39-9533-d52e5e002a5d
toc_rel: toc.json
twitter:card: summary_large_image
twitter:site: @MicrosoftLearn
uhfHeaderId: azure
updated_at: 2026-03-26T17:13:00Z
viewport: width=device-width, initial-scale=1.0
word_count: 1007

[canonical-links]
https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations

[document-links]
AI Disclaimer: https://learn.microsoft.com/en-us/principles-for-ai-generated-content
Blog: https://techcommunity.microsoft.com/t5/microsoft-learn-blog/bg-p/MicrosoftLearnBlog
Consumer Health Privacy: https://go.microsoft.com/fwlink/?linkid=2259814
Contribute: https://learn.microsoft.com/en-us/contribute
Deploy resources with Resource Manager templates and Resource Manager REST API: ../templates/deploy-rest
Download Microsoft Edge: https://go.microsoft.com/fwlink/p/?LinkID=2092881
Edit: https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/azure-resource-manager/management/async-operations.md
More info about Internet Explorer and Microsoft Edge: https://learn.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge
Previous Versions: https://learn.microsoft.com/en-us/previous-versions/
Privacy: https://go.microsoft.com/fwlink/?LinkId=521839
REST API documentation: /en-us/rest/api/azure/
Terms of Use: https://learn.microsoft.com/en-us/legal/termsofuse
Trademarks: https://www.microsoft.com/legal/intellectualproperty/Trademarks/
Your Privacy Choices: https://aka.ms/yourcaliforniaprivacychoices
create operation for storage accounts: /en-us/rest/api/storagerp/storageaccounts/create
deployments operation for deploying resources: /en-us/rest/api/resources/deployments/createorupdate
implement your own retry logic: /en-us/azure/architecture/best-practices/retry-service-specific#general-rest-and-retry-guidelines
start operation for virtual machines: /en-us/rest/api/compute/virtualmachines/start

[content]
Status of asynchronous operations - Azure Resource Manager | Microsoft Learn
Skip to main content
Skip to Ask Learn chat experience
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Download Microsoft Edge
More info about Internet Explorer and Microsoft Edge
Table of contents
Exit editor mode
Ask Learn
Ask Learn
Reading mode
Table of contents
Read in English
Add
Add to Plans
Edit
Copy Markdown
Print
Note
Access to this page requires authorization. You can try
signing in
or
changing directories
.
Access to this page requires authorization. You can try
changing directories
.
Track asynchronous Azure operations
Feedback
Summarize this article for me
In this article
Some Azure REST operations run asynchronously because the operation can't be completed quickly. This article describes how to track the status of asynchronous operations through values returned in the response.
Status codes for asynchronous operations
An asynchronous operation initially returns an HTTP status code of either:
201 (Created)
202 (Accepted)
However, that status code doesn't necessarily mean the operation is asynchronous. An asynchronous operation also returns a value for
provisioningState
that indicates the operation isn't finished. The value can vary by operation but doesn't include
Succeeded
,
Failed
, or
Canceled
. Those three values indicate the operation finished. If no value is returned for
provisioningState
, the operation finished and succeeded.
When the operation successfully completes, it returns either:
200 (OK)
204 (No Content)
Refer to the
REST API documentation
to see the responses for the operation you're executing.
After getting the 201 or 202 response code, you're ready to monitor the status of the operation.
URL to monitor status
There are two different ways to monitor the status of the asynchronous operation. You determine the correct approach by examining the header values that are returned from your original request. First, look for:
Azure-AsyncOperation
- URL for checking the ongoing status of the operation. If your operation returns this value, use it to track the status of the operation.
Retry-After
- The number of seconds to wait before checking the status of the asynchronous operation.
If
Azure-AsyncOperation
isn't one of the header values, then look for:
Location
- URL for determining when an operation is completed. Use this value only when
Azure-AsyncOperation
isn't returned.
Retry-After
- The number of seconds to wait before checking the status of the asynchronous operation.
When the
Retry-after
header isn't returned,
implement your own retry logic
.
Note
Your REST client must accept a minimum URL size of 4 KB for
Azure-AsyncOperation
and
Location
.
Permission for tracking async status
To track the status of an asynchronous operation, you need sufficient permission at the resource group level. If you only have permission at the resource level, you can start the operation but you can't track its status. Resource group-level permission is required because the URL for tracking status isn't scoped to the resource.
For example, to start a virtual machine, you need the Virtual Machine Contributor role for the resource group that contains the virtual machine. The URL for tracking a start request doesn't include the virtual machine in its path.
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01
Azure-AsyncOperation request and response
If you have a URL from the
Azure-AsyncOperation
header value, send a GET request to that URL. Use the value from
Retry-After
to schedule how often to check the status. You get a response object that indicates the status of the operation. A different response is returned when checking the status of the operation with the
Location
URL. For more information about the response from a location URL, see
Create storage account (202 with Location and Retry-After)
.
The response properties can vary but always include the status of the asynchronous operation.
{ "status": "{status-value}" }
The following example shows other values that might be returned from the operation:
{ "id": "{resource path from GET operation}", "name": "{operation-id}", "status" : "Succeeded | Failed | Canceled | {resource provider values}", "startTime": "2017-01-06T20:56:36.002812+00:00", "endTime": "2017-01-06T20:56:56.002812+00:00", "percentComplete": {double between 0 and 100 }, "properties": { /* Specific resource provider values for successful operations */ }, "error" : { "code": "{error code}", "message": "{error description}" } }
The error object is returned when the status is Failed or Canceled. All other values are optional. The response you receive might look different than the example.
provisioningState values
Operations that create, update, or delete (PUT, PATCH, DELETE) a resource typically return a
provisioningState
value. When an operation completes, one of the following three values is returned:
Succeeded
Failed
Canceled
All other values indicate the operation is still running. The resource provider can return a customized value that indicates its state. For example, you receive
Accepted
when the request is received and running.
Example requests and responses
Start virtual machine (202 with Azure-AsyncOperation)
This example shows how to determine the status of
start operation for virtual machines
. The initial request is in the following format:
POST https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Compute/virtualMachines/{vm-name}/start?api-version=2019-12-01
It returns status code 202. Among the header values, you see:
Azure-AsyncOperation : https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01
To check the status of the asynchronous operation, send another request to that URL.
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01
The response body contains the status of the operation:
{ "startTime": "2017-01-06T18:58:24.7596323+00:00", "status": "InProgress", "name": "9a062a88-e463-4697-bef2-fe039df73a02" }
Deploy resources (201 with Azure-AsyncOperation)
This example shows how to determine the status of
deployments operation for deploying resources
to Azure. The initial request is in the following format:
PUT https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.resources/deployments/{deployment-name}?api-version=2020-06-01
It returns status code 201. The body of the response includes:
"provisioningState":"Accepted",
Among the header values, you see:
Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-version=2020-06-01
To check the status of the asynchronous operation, send another request to the operation URL.
GET https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-version=2020-06-01
The response body contains the status of the operation:
{ "status": "Running" }
When the deployment is finished, the response contains:
{ "status": "Succeeded" }
Create storage account (202 with Location and Retry-After)
This example shows how to determine the status of the
create operation for storage accounts
. The initial request is in the following format:
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-name}?api-version=2019-06-01
The request body contains properties for the storage account:
{ "location": "South Central US", "properties": {}, "sku": { "name": "Standard_LRS" }, "kind": "Storage" }
It returns status code 202. Among the header values, you see the following two values:
Location: https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01 Retry-After: 17
After waiting for number of seconds specified in
Retry-After
, check the status of the asynchronous operation by sending another request to that URL.
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01
If the request is still running, you receive a status code 202. If the request is completed, you receive a status code 200. The body of the response contains the properties of the storage account that was created.
Next steps
For documentation about each REST operation, see
REST API documentation
.
For information about deploying templates through the Resource Manager REST API, see
Deploy resources with Resource Manager templates and Resource Manager REST API
.
Feedback
Was this page helpful?
Yes
No
No
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?
Ask Learn
Ask Learn
Suggest a fix?
Additional resources
Last updated on
2026-02-27
In this article
Was this page helpful?
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?
Ask Learn
Ask Learn
Suggest a fix?
en-us
Your Privacy Choices
Theme
Light
Dark
High contrast
AI Disclaimer
Previous Versions
Blog
Contribute
Privacy
Consumer Health Privacy
Terms of Use
Trademarks
© Microsoft 2026
