> ## Documentation Index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Messages

Messages are removed from the database shortly after they're delivered, so you
will not be able to retrieve a message after. This endpoint is intended to be used
for accessing messages that are in the process of being delivered/retried.

#### Retrieve a message

```typescript theme={"system"}
import { Client } from "@upstash/qstash";

const client = new Client({ token: "<QSTASH_TOKEN>" });
const messages = client.messages
const msg = await messages.get("msgId");
```

#### Cancel a message

```typescript theme={"system"}
import { Client } from "@upstash/qstash";

const client = new Client({ token: "<QSTASH_TOKEN>" });
await client.messages.cancel("msgId");
```

#### Cancel multiple messages

```typescript theme={"system"}
import { Client } from "@upstash/qstash";

const client = new Client({ token: "<QSTASH_TOKEN>" });

// cancel two messages at once
await client.messages.cancel(["message-id-1", "message-id-2"])

// cancel all messages
let cancelled: number;
do {
  const result = await client.messages.cancel({ all: true });
  cancelled = result.cancelled;
} while (cancelled > 0);
```

#### Cancel messages with filters

```typescript theme={"system"}
import { Client } from "@upstash/qstash";

const client = new Client({ token: "<QSTASH_TOKEN>" });

// cancel messages matching a URL and label
let cancelled: number;
do {
  const result = await client.messages.cancel({
    filter: {
      url: "https://example.com",
      label: "my-label",
    }
  });
  cancelled = result.cancelled;
} while (cancelled > 0);

```

<Note>
  `client.messages.delete()`, `client.messages.deleteMany()`, and `client.messages.deleteAll()`
  are deprecated. Use `client.messages.cancel()` instead.
</Note>
