# List DLQ messages

> List and paginate through all messages currently in the DLQ

## Endpoint

`GET https://qstash-{region}.upstash.io/v2/dlq`

## Parameters

- `cursor` (query, string): By providing a cursor you can paginate through all of the messages in the DLQ
- `messageId` (query, string): Filter DLQ messages by message ID
- `url` (query, string[]): Filter DLQ messages by destination URL. Supports multiple values.
- `topicName` (query, string[]): Filter DLQ messages by URL Group name. Supports multiple values.
- `scheduleId` (query, string[]): Filter DLQ messages by schedule ID. Supports multiple values.
- `queueName` (query, string[]): Filter DLQ messages by queue name. Supports multiple values.
- `fromDate` (query, integer): Filter DLQ messages by starting date, in milliseconds (Unix timestamp). This is inclusive.
- `toDate` (query, integer): Filter DLQ messages by ending date, in milliseconds (Unix timestamp). This is inclusive.
- `responseStatus` (query, integer[]): Filter DLQ messages by HTTP response status code of the last delivery attempt. Supports multiple values.
- `callerIp` (query, string[]): Filter DLQ messages by IP address of the publisher. Supports multiple values.
- `label` (query, string[]): Filter DLQ messages by label. Supports multiple values. You can pass multiple values to match messages with any of the given labels (OR logic).

Examples:
- `label=my_label`
- `label=label_1&label=label_2`
- `label=label_1,label_2`

- `count` (query, integer): The number of messages to return.

## Responses

### 200 - List of DLQ messages

- `cursor` (string): A cursor which you can use in subsequent requests to paginate through all messages. 
If no cursor is returned, you have reached the end of the messages.

- `messages` (object[])
  - `messageId` (string): Unique identifier for the message
  - `url` (string): The URL to which the message should be delivered.
  - `topicName` (string): The URL Group (a.k.a. topic) name if this message was sent to a URL Group.
  - `endpointName` (string): The endpoint name of the message if the endpoint is given a name within the URL group.
  - `method` (string): The HTTP method to use for the message.
  - `header` (object): The HTTP headers sent to your API.
  - `body` (string): The body of the message if it is composed of utf8 chars only, empty otherwise.
  - `bodyBase64` (string): The base64 encoded body if the body contains a non-utf8 char only, empty otherwise.
  - `maxRetries` (integer): The number of retries that should be attempted in case of delivery failure.
  - `notBefore` (integer): The unix timestamp in milliseconds before which the message should not be delivered.
  - `createdAt` (integer): The unix timestamp in milliseconds when the message was created.
  - `callback` (string): The url where we send a callback each time the message is attempted to be delivered.
  - `failureCallback` (string): The url where we send a callback to after the message is failed
  - `queueName` (string): The name of the queue if the message is enqueued to a queue.
  - `scheduleId` (string): The scheduleId of the message if the message is triggered by a schedule
  - `callerIP` (string): IP address of the publisher of this message.
  - `label` (string): The label of the message assigned by the user. Deprecated in favor of `labels`.
  - `labels` (string[]): The list of labels assigned to the message by the user.
  - `flowControlKey` (string): The flow control key used for rate limiting.
  - `rate` (integer): The rate value used for flow control.
  - `period` (integer): The period value used for flow control.
  - `parallelism` (integer): The parallelism value used for flow control.
  - `responseStatus` (integer): The HTTP status code received from the destination API.
  - `responseHeader` (object): The HTTP response headers received from the destination API.
  - `responseBody` (string): The body of the response if it is composed of utf8 chars only, empty otherwise.
  - `responseBodyBase64` (string): The base64 encoded body of the response if the body contains a non-utf8 char only, empty otherwise.

## cURL

```bash
curl --request GET \
  --url https://qstash-{region}.upstash.io/v2/dlq \
  --header 'Authorization: Bearer <token>'
```
