DeleteMessageBatch
Deletes up to ten messages from the specified queue. This is a batch version of DeleteMessage. The result of the action on each message is reported individually in the response.
Important
Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.
Request Syntax
{ "Entries": [ { "Id": "string", "ReceiptHandle": "string" } ], "QueueUrl": "string" } Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- Entries
-
Lists the receipt handles for the messages to be deleted.
Type: Array of DeleteMessageBatchRequestEntry objects
Required: Yes
- QueueUrl
-
The URL of the Amazon SQS queue from which messages are deleted.
Queue URLs and names are case-sensitive.
Type: String
Required: Yes
Response Syntax
{ "Failed": [ { "Code": "string", "Id": "string", "Message": "string", "SenderFault": boolean } ], "Successful": [ { "Id": "string" } ] } Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- Failed
-
A list of
BatchResultErrorEntryitems.Type: Array of BatchResultErrorEntry objects
- Successful
-
A list of
DeleteMessageBatchResultEntryitems.Type: Array of DeleteMessageBatchResultEntry objects
Errors
For information about the errors that are common to all actions, see Common Errors.
- BatchEntryIdsNotDistinct
-
Two or more batch entries in the request have the same
Id.HTTP Status Code: 400
- EmptyBatchRequest
-
The batch request doesn't contain any entries.
HTTP Status Code: 400
- InvalidAddress
-
The specified ID is invalid.
HTTP Status Code: 400
- InvalidBatchEntryId
-
The
Idof a batch entry in a batch request doesn't abide by the specification.HTTP Status Code: 400
- InvalidSecurity
-
The request was not made over HTTPS or did not use SigV4 for signing.
HTTP Status Code: 400
- QueueDoesNotExist
-
Ensure that the
QueueUrlis correct and that the queue has not been deleted.HTTP Status Code: 400
- RequestThrottled
-
The request was denied due to request throttling.
-
Exceeds the permitted request rate for the queue or for the recipient of the request.
-
Ensure that the request rate is within the Amazon SQS limits for sending messages. For more information, see Amazon SQS quotas in the Amazon SQS Developer Guide.
HTTP Status Code: 400
-
- TooManyEntriesInBatchRequest
-
The batch request contains more entries than permissible. For Amazon SQS, the maximum number of entries you can include in a single SendMessageBatch, DeleteMessageBatch, or ChangeMessageVisibilityBatch request is 10.
HTTP Status Code: 400
- UnsupportedOperation
-
Error code 400. Unsupported operation.
HTTP Status Code: 400
Examples
The following examples show how a DeleteMessageBatch request deletes two messages. You must URL-encode the entire URL. However, in this example only the message body is URL-encoded to make the example easier to read. The structure of AUTHPARAMS depends on the signature of the API request. For more information, see Examples of Signed Signature Version 4 Requests in the AWS General Reference.
Example
Using AWS JSON protocol (Default)
Sample Request
POST / HTTP/1.1 Host: sqs.us-east-1.amazonaws.com X-Amz-Target: AmazonSQS.DeleteMessageBatch X-Amz-Date: <Date> Content-Type: application/x-amz-json-1.0 Authorization: <AuthParams> Content-Length: <PayloadSizeBytes> Connection: Keep-Alive { "QueueUrl": "https://sqs.us-east-1.amazonaws.com/177715257436/MyQueue/", "Entries": [ { "Id": "msg1", "ReceiptHandle": "AQEBaZ+j5qUoOAoxlmrCQPkBm9njMWXqemmIG6shMHCO6fV20JrQYg/AiZ8JELwLwOu5U61W+aIX5Qzu7GGofxJuvzymr4Ph53RiR0mudj4InLSgpSspYeTRDteBye5tV/txbZDdNZxsi+qqZA9xPnmMscKQqF6pGhnGIKrnkYGl45Nl6GPIZv62LrIRb6mSqOn1fn0yqrvmWuuY3w2UzQbaYunJWGxpzZze21EOBtywknU3Je/g7G9is+c6K9hGniddzhLkK1tHzZKjejOU4jokaiB4nmi0dF3JqLzDsQuPF0Gi8qffhEvw56nl8QCbluSJScFhJYvoagGnDbwOnd9z50L239qtFIgETdpKyirlWwl/NGjWJ45dqWpiW3d2Ws7q" }, { "Id": "msg2", "ReceiptHandle": "AQEB3LQoW7GQWgodQCEJXHjMvO/QkeCHiRldRfLC/E6RUggm+BjpthqxfoUOUn6Vs271qmrBaufFqEmnMKgk2n1EuUBne1pe+hZcrDE8IveUUPmqkUT54FGhAAjPX3oEIryz/XeQ/muKAuLclcZvt2Q+ZDPW8DvZqMa1RoHxOqSq+6kQ4PwgQxB+VqDYvIc/LpHOoL4PTROBXgLPjWrzz/knK6HTzKpqC4ESvFdJ/dkk2nvS0iqYOly5VQknK/lv/rTUOgEYevjJSrNLIPDgZGyvgcLwbm6+yo1cW/c9cPDiVm96gIhVkuiCZ1gtskoOtyroZVPcY71clDG2EPZJeY8akMd3u+sXEMWhiOPFs1cgWQs2ugsL+vdwMCbsZRkXbJv7" } ] } Sample Response
HTTP/1.1 200 OK x-amzn-RequestId: <requestId> Content-Length: <> Date: <Date> Content-Type: application/x-amz-json-1.0 { "Failed": [], "Successful": [ { "Id": "msg2" }, { "Id": "msg1" } ] } Example
Using AWS query protocol
Sample Request
POST /177715257436/MyQueue/ HTTP/1.1 Host: sqs.us-east-1.amazonaws.com Content-Type: application/x-www-form-urlencoded X-Amz-Date: <Date> Authorization: <AuthParams> Content-Length: <PayloadSizeBytes> Connection: Keep-Alive Action=DeleteMessageBatch &DeleteMessageBatchRequestEntry.1.Id=msg1 &DeleteMessageBatchRequestEntry.1.ReceiptHandle=gfk0T0R0waama4fVFffkjPQrrvzMrOg0fTFk2LxT33EuB8wR0ZCFgKWyXGWFoqqpCIiprQUEhir%2F5LeGPpYTLzjqLQxyQYaQALeSNHb0us3uE84uujxpBhsDkZUQkjFFkNqBXn48xlMcVhTcI3YLH%2Bd%2BIqetIOHgBCZAPx6r%2B09dWaBXei6nbK5Ygih21DCDdAwFV68Jo8DXhb3ErEfoDqx7vyvC5nCpdwqv%2BJhU%2FTNGjNN8t51v5c%2FAXvQsAzyZVNapxUrHIt4NxRhKJ72uICcxruyE8eRXlxIVNgeNP8ZEDcw7zZU1Zw%3D%3D &DeleteMessageBatchRequestEntry.2.Id=msg2 &DeleteMessageBatchRequestEntry.2.ReceiptHandle=gfk0T0R0waama4fVFffkjKzmhMCymjQvfTFk2LxT33G4ms5subrE0deLKWSscPU1oD3J9zgeS4PQQ3U30qOumIE6AdAv3w%2F%2Fa1IXW6AqaWhGsEPaLm3Vf6IiWqdM8u5imB%2BNTwj3tQRzOWdTOePjOjPcTpRxBtXix%2BEvwJOZUma9wabv%2BSw6ZHjwmNcVDx8dZXJhVp16Bksiox%2FGrUvrVTCJRTWTLc59oHLLF8sEkKzRmGNzTDGTiV%2BYjHfQj60FD3rVaXmzTsoNxRhKJ72uIHVMGVQiAGgB%2BqAbSqfKHDQtVOmJJgkHug%3D%3D Sample Response
HTTP/1.1 200 OK <?xml version="1.0"?> <DeleteMessageBatchResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"> <DeleteMessageBatchResult> <DeleteMessageBatchResultEntry> <Id>msg1</Id> </DeleteMessageBatchResultEntry> <DeleteMessageBatchResultEntry> <Id>msg2</Id> </DeleteMessageBatchResultEntry> </DeleteMessageBatchResult> <ResponseMetadata> <RequestId>d6f86b7a-74d1-4439-b43f-196a1e29cd85</RequestId> </ResponseMetadata> </DeleteMessageBatchResponse> See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: