Skip to main content

Install

NPM

Get QStash token

Follow the instructions here to get your QStash token and signing keys.

Usage

The token is optional. If you leave it out, the client reads QSTASH_TOKEN, QSTASH_URL and their region-prefixed variants from the environment, and only warns when it finds nothing:
Use Client.fromEnv() if you would rather fail fast:
fromEnv reads process.env, so on runtimes where credentials only exist as bindings (Cloudflare Workers) pass the token to new Client() instead.
No credentials at all? You don’t need any while developing — see Local development below.

RetryConfig

You can configure the retry policy of the client by passing the configuration to the client constructor. Note: This is for sending the request to QStash, not for the retry policy of QStash. The default number of attempts is 6 and the default backoff function is (retry_count) => (Math.exp(retry_count) * 50). You can also pass in false to disable retrying.

Local development

Pass devMode: true (or set QSTASH_DEV=true) to have the SDK download, start, and manage a local QStash dev server for you. No tokens or signing keys required — the SDK injects deterministic dev credentials.
The same flag works on the receiving side — pass devMode: true to Receiver or verifySignature* to verify signatures with the dev server’s keys. See Local Development for the full walkthrough, including the registerQStashDev() helper for Next.js edge routes.

Telemetry

This sdk sends anonymous telemetry headers to help us improve your experience. We collect the following:
  • SDK version
  • Platform (Cloudflare, AWS or Vercel)
  • Runtime version (node@18.x)
You can opt out by setting the UPSTASH_DISABLE_TELEMETRY environment variable to any truthy value. Or setting enableTelemetry: false in the client options.