Skip to main content
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

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

import { Client } from "@upstash/qstash";

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

Cancel multiple messages

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
await client.messages.cancel({ all: true })

Cancel messages with filters

import { Client } from "@upstash/qstash";

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

// cancel messages matching a URL and label
await client.messages.cancel({
  filter: {
    url: "https://example.com",
    label: "my-label",
  }
})
client.messages.delete(), client.messages.deleteMany(), and client.messages.deleteAll() are deprecated. Use client.messages.cancel() instead.