> ## Documentation index
> Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
> Ask it with GET https://upstash.com/docs/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.
> Feature requests: https://upstash.com/docs/common/help/feature-requests.md lists what users asked for and how to vote for a request or add one.
> Page rating: `GET https://upstash.com/docs/feedback?path=/docs/redis/sdks/ts/commands/generic/scan&helpful=true` (or `false`) records whether this page helped. An optional `comment` (URL-encoded, at most 500 characters) says what was missing or wrong. It is anonymous and needs no key. Comments hold no code, secrets or personal data.

# SCAN

> Scan the database for keys.

## Arguments

<ParamField body="cursor" type="string">
  The cursor value. Start with "0" on the first call, then use the cursor
  returned by each call for the next. It's a string to safely support large
  numbers that might exceed JavaScript's number limits.
</ParamField>

<ParamField body="options" type="Object">
  <ParamField body="match" type="string">
    Glob-style pattern to filter by field names.
  </ParamField>
  <ParamField body="count" type="number">
    Number of fields to return per call.
  </ParamField>
  <ParamField body="type" type="string">
    Filter by type. For example `string`, `hash`, `set`, `zset`, `list`,
    `stream`.
  </ParamField>
</ParamField>

## Response

<ResponseField type="[string, string[]]" required>
  Returns the next cursor and the list of matching keys. When the returned
  cursor is "0", the scan is complete.
</ResponseField>

<RequestExample>
```ts Basic
const [cursor, keys] = await redis.scan(0, { match: "*" });
```
</RequestExample>
