Queue Storage REST API Reference
This document provides a reference for the Azure Queue Storage REST API. Queue storage is a service that allows you to store large numbers of messages that can be accessed from anywhere in the world via HTTP or HTTPS.
Overview
Azure Queue Storage is a collection of REST APIs for managing queues and messages. It's designed for scenarios where you need to decouple components of an application and ensure reliable message delivery.
Authentication
All requests to the Queue Storage API must be authenticated. The most common methods are:
- Shared Key Authentication: Uses account key credentials to sign requests.
- Shared Access Signature (SAS): Provides delegated access to specific resources with fine-grained control over permissions and expiry.
- Azure Active Directory (Azure AD): For more advanced scenarios, leveraging managed identities or service principals.
Resource URIs
The base URI for Queue Storage operations is:
https://<storage-account-name>.queue.core.windows.net/<queue-name>
Common Operations
Queues
Create Queue
Creates a new queue within the specified storage account.
Headers:
| Name | Required | Type | Description |
|---|---|---|---|
| x-ms-version | Yes | String | Specifies the version of the Queue Storage API. e.g., 2020-08-04. |
| Authorization | Yes | String | Authentication credentials. |
| x-ms-date | Yes | String | The date and time in RFC 1123 format. |
Response:
Success (201 Created)
HTTP/1.1 201 Created
Content-Length: 0
Date: Tue, 29 Oct 2023 18:02:11 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 71f7d9f9-2001-4a57-9f25-110a11f214e1
x-ms-version: 2020-08-04
x-ms-service-request-id: 71f7d9f9-2001-4a57-9f25-110a11f214e1
x-ms-client-request-id: 8d7628c6-9c44-4a69-9b4f-1b5384622786
x-ms-resource-type: queue
x-ms-location: eastus
x-ms-sku-name: Standard_LRS
x-ms-content-crc: 0
x-ms-content-md5:
x-ms-lease-id:
x-ms-approximate-messages: 0
x-ms-meta-
List Queues
Lists all queues associated with the storage account.
Query Parameters:
| Name | Required | Type | Description |
|---|---|---|---|
| prefix | No | String | Filters the results to return only queues whose names begin with the specified prefix. |
| maxresults | No | Integer | Specifies the maximum number of queues to return. |
| include | No | String | Specifies whether to include a list of metadata for each queue. Possible value: metadata. |
Response:
Success (200 OK)
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 437
Date: Tue, 29 Oct 2023 18:05:00 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: a1b2c3d4-e5f6-7890-1234-567890abcdef
x-ms-version: 2020-08-04
x-ms-service-request-id: a1b2c3d4-e5f6-7890-1234-567890abcdef
x-ms-client-request-id: 9f876543-210e-4d5c-b6a5-43210fedcba9
<?xml version="1.0" encoding="utf-8"?><Queues>
<Queue>
<Name>myqueue1</Name>
<ApproximateMessagesCount>15</ApproximateMessagesCount>
<Metadata>
<LastAccess>2023-10-29T18:00:00Z</LastAccess>
</Metadata>
</Queue>
<Queue>
<Name>anotherqueue</Name>
<ApproximateMessagesCount>3</ApproximateMessagesCount>
</Queue>
</Queues>
Delete Queue
Deletes a specified queue and all the messages it contains.
Response:
Success (204 No Content)
HTTP/1.1 204 No Content
Content-Length: 0
Date: Tue, 29 Oct 2023 18:07:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: c3d4e5f6-7890-1234-5678-90abcdef1234
x-ms-version: 2020-08-04
x-ms-service-request-id: c3d4e5f6-7890-1234-5678-90abcdef1234
x-ms-client-request-id: 12345678-90ab-cdef-1234-567890abcdef
Messages
Put Message
Adds a new message to the back of a specified queue.
Query Parameters:
| Name | Required | Type | Description |
|---|---|---|---|
| messagettl | No | Integer | Specifies the time-to-live in seconds for the message. The maximum time-to-live is 7 days. If this parameter is omitted, the default value is 7 days. |
| visibilitytimeout | No | Integer | Specifies the visibility timeout in seconds after the message is dequeued. The message is invisible to other consumers during this timeout. |
Request Body:
<QueueMessage>
<MessageText>My first message.</MessageText>
</QueueMessage>
Response:
Success (201 Created)
HTTP/1.1 201 Created
Content-Type: application/xml
Content-Length: 295
Date: Tue, 29 Oct 2023 18:10:00 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: d4e5f678-90ab-cdef-1234-567890abcdef12
x-ms-version: 2020-08-04
x-ms-service-request-id: d4e5f678-90ab-cdef-1234-567890abcdef12
x-ms-client-request-id: 210e4d5c-b6a5-4321-0fed-cba987654321
<?xml version="1.0" encoding="utf-8"?><QueueMessagesList>
<QueueMessage>
<MessageId>01234567-89ab-cdef-0123-456789abcdef</MessageId>
<InsertionTime>2023-10-29T18:10:00Z</InsertionTime>
<ExpirationTime>2023-11-05T18:10:00Z</ExpirationTime>
<PopReceipt>BQIAAAAAAAAAICZkMzc5ZjYwOS1iNTY3LTQ5OWUtYTFmZi00NTBkOGJmYjY3YTU=</PopReceipt>
<DequeueCount>0</DequeueCount>
</QueueMessage>
</QueueMessagesList>
Get Messages
Retrieves one or more messages from the front of a queue.
Query Parameters:
| Name | Required | Type | Description |
|---|---|---|---|
| numresults | No | Integer | Specifies the number of messages to retrieve. Maximum is 32. |
| visibilitytimeout | No | Integer | Specifies the visibility timeout in seconds. The message will be invisible to other consumers during this period. |
| peekonly | No | Boolean | If true, messages are peeked at, not dequeued. |
Response:
Success (200 OK)
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 589
Date: Tue, 29 Oct 2023 18:12:00 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: e5f67890-1234-5678-90ab-cdef12345678
x-ms-version: 2020-08-04
x-ms-service-request-id: e5f67890-1234-5678-90ab-cdef12345678
x-ms-client-request-id: 3210fedc-ba98-7654-3210-fedcba987654
<?xml version="1.0" encoding="utf-8"?><QueueMessagesList>
<QueueMessage>
<MessageId>01234567-89ab-cdef-0123-456789abcdef</MessageId>
<InsertionTime>2023-10-29T18:10:00Z</InsertionTime>
<ExpirationTime>2023-11-05T18:10:00Z</ExpirationTime>
<PopReceipt>BQIAAAAAAAAAICZkMzc5ZjYwOS1iNTY3LTQ5OWUtYTFmZi00NTBkOGJmYjY3YTU=</PopReceipt>
<DequeueCount>1</DequeueCount>
<MessageText>My first message.</MessageText>
</QueueMessage>
<QueueMessage>
<MessageId>fedcba98-7654-3210-fedc-ba9876543210</MessageId>
<InsertionTime>2023-10-29T18:11:30Z</InsertionTime>
<ExpirationTime>2023-11-05T18:11:30Z</ExpirationTime>
<PopReceipt>BQIAAAAAAAAAIJmN5Zjk2MDktYTU2Ny00OTlmLWExZmYtNDUwZDhiZmI2N2E1</PopReceipt>
<DequeueCount>0</DequeueCount>
<MessageText>Another message.</MessageText>
</QueueMessage>
</QueueMessagesList>
Delete Message
Deletes a specific message from a queue. This operation is used after a message has been retrieved and processed successfully.
Query Parameters:
| Name | Required | Type | Description |
|---|---|---|---|
| popreceipt | Yes | String | A valid pop receipt value returned from a previous call to Get Messages. |
Response:
Success (204 No Content)
HTTP/1.1 204 No Content
Content-Length: 0
Date: Tue, 29 Oct 2023 18:15:00 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: f6789012-3456-7890-abcd-ef1234567890
x-ms-version: 2020-08-04
x-ms-service-request-id: f6789012-3456-7890-abcd-ef1234567890
x-ms-client-request-id: 43210fed-cba9-8765-4321-0fedcba98765