How to send an Azure REST API request
Sometimes, user will need to send out REST API request to manage their resources in Azure platform, for example, when the REST API is upgraded but corresponding PowerShell module or User Interface are not upgraded yet. In this blog, it will contain three main parts:
- Common points of both ways to send request
- Send request manually with User Interface such as Postman
- Send request manually with command line, such as PowerShell in Windows and Curl in Linux
Common points of both ways to send request:
No matter user wants to send request by which way, the next three points are always the most important:
- The request URL and HTTP method
- The authorization
- The header and the request body (payload)
The request URL and HTTP method
From the official document, there will always be the information as following one. (Resources - List - REST API (Azure Resource Management) | Microsoft Learn as example here)
It's easy to find out the HTTP method here is GET and the complete URL to be called. The only thing to pay attention is to verify if there is any part with "{}". If there is such kind of part, it means that it needs to be replaced by your own resource/environment data. For example, for the above REST API, when we call it, it will be like:
https://management.azure.com/subscriptions/5102xxxx-xxxx-xxxx-xxxx-xxxxa4473453/resources?api-version=2021-04-01
P.S. Please pay attention to the format. If the final request URL is like https://management.azure.com/subscriptions//5102xxxx-xxxx-xxxx-..., then this request must be failed.
The authorization
For different REST API servers, we need to use different ways to authenticate. For example, here are some special situations:
- For Storage REST API, Authorize requests to Azure Storage (REST API) | Microsoft Learn
- For Azure Batch REST API, Authenticate Requests to the Azure Batch Service | Microsoft Learn
But most of the REST API requests in Azure will be sent to ARM (Azure Resource Manager). The most important point to identify this is the first part of the URL. If the first part of the URL is https://management.azure.com, then this must be an ARM REST API. For such kind of requests, we can always use the following way to authenticate.
- From Azure Portal, open the Cloud Shell window. (For the users not allowed to use Cloud Shell, you can also install the CLI in local machine. How to install the Azure CLI | Microsoft Learn)
- Make sure the mode is PowerShell, then after it automatically login, run command az account get-access-token. (For the users installing the Azure CLI in local machine, please run az login before running the above command)
- Please copy out the value of the accessToken from the response and remove all the line breaker to make them as a simple but long word. Then, the header needed for the authorization will be with name Authorization and be with value Bearer {tokenvalue}. (The space between keyword Bearer and first letter of token value is necessary) For the above example, the header will be like:
The header and the request body (payload)
This part is not always required. But for some REST API to create/update a resource, such as Resource Groups - Create Or Update - REST API (Azure Resource Management) | Microsoft Learn, there will be a request body or/and request header part with explanation. We can find out which headers/request body parts are necessary and what they stand for.
Send request manually with User Interface such as Postman
To be able to follow this part, please kindly do confirm that the Postman is already installed in your computer. Postman can be downloaded from Download Postman | Get Started for Free
We need to setup the HTTP method and URL at first:
Then setup the header used for authorization:
Add headers and request body if they are required: (Added headers already showing in last image.)
P.S. The request body of most Azure official REST API is blank or JSON format.
Once all the above steps are done, we can simply click on send request button and see the response code, response time and response body if there is.
Send request manually with command line, such as PowerShell in Windows and Curl in Linux
The way of sending request by command is similar to the above part. User only needs to make sure the important information mentioned in first part and put it into the command. The following part is the example script in both Windows and Linux system: (Using Resource Groups - Create Or Update - REST API (Azure Resource Management) | Microsoft Learn as example here)
PowerShell in Windows:
Result:
Curl in Linux:
Result:
Published on:
Learn moreRelated posts
Azure Storage - TLS 1.0 and 1.1 retirement
Overview TLS 1.0 and 1.1 retirement on Azure Storage was previously announced for Nov 1st, 2024, and it was postponed recently to 1 year later...
Efficient Management of Append and Page Blobs Using Azure Storage Actions
Overview In Azure Storage, Blob Lifecycle Management (BLM) allows you to automate the management of your data based on rules defined by...
[Azure AI Search] Internal Server Error when creating CMK encrypted objects
Scenario Customers follow the Microsoft doc to create CMK encrypted objects (data source, index etc.), but get the 500 Internal Serv...
Optimizing Azure Table Storage: Automated Data Cleanup using a PowerShell script with Azure Automate
Scenario This blog’s aim is to manage Table Storage data efficiently. Imagine you have a large Azure Table Storage that accumulates logs from ...
Optimizing Azure Table Storage: Automated Data Clean-up using a PowerShell script with Azure Automat
Scenario This blog’s aim is to manage Table Storage data efficiently. Imagine you have a large Azure Table Storage that accumulates logs from ...
Restoring Soft-Deleted Blobs with multithreading in Azure Storage Using C#
Blob soft delete is an essential feature that safeguards your data against accidental deletions or overwrites. By retaining deleted data for a...
Performing simple Azure Table Storage REST API operations using curl command.
The blog provides guidance to perform simple Table Storage REST API operations such as Create table, Delete Table, Insert entity, Delete entit...
Bulk delete all the old jobs from the batch account
Deleting a Job also deletes all Tasks that are part of that Job, and all Job statistics. This also overrides the retention period for Task dat...
Utilizing Azure Storage and Runbooks for scheduled automated backups of Azure SQL Databases
In this article, we are going to provide detailed steps to create a scheduled Azure SQL Database backup to storage account using automation. T...
[Azure Service Bus] JMS messages getting dead-lettered
The article discusses a problem where numerous messages end up in the dead letter queue (DLQ) when the JMS service bus consumer connects to th...