## 1. Project Overview & Quickstart (upstash/context7)

## File: README.md

[](https://cursor.com/en/install-mcp?name=context7&config=eyJ1cmwiOiJodHRwczovL21jcC5jb250ZXh0Ny5jb20vbWNwIn0%3D)

# Context7 Platform - Up-to-date Code Docs For Any Prompt

[](https://context7.com) [](https://www.npmjs.com/package/@upstash/context7-mcp) [](./LICENSE)

[](./i18n/README.zh-TW.md) [](./i18n/README.zh-CN.md) [](./i18n/README.ja.md) [](./i18n/README.ko.md) [](./i18n/README.es.md) [](./i18n/README.fr.md) [-purple>)](./i18n/README.pt-BR.md) [](./i18n/README.it.md) [](./i18n/README.id-ID.md) [](./i18n/README.de.md) [](./i18n/README.ru.md) [](./i18n/README.uk.md) [](./i18n/README.tr.md) [](./i18n/README.ar.md) [](./i18n/README.vi.md)

## ❌ Without Context7

LLMs rely on outdated or generic information about the libraries you use. You get:

- ❌ Code examples are outdated and based on year-old training data
- ❌ Hallucinated APIs that don't even exist
- ❌ Generic answers for old package versions

## ✅ With Context7

Context7 pulls up-to-date, version-specific documentation and code examples straight from the source — and places them directly into your prompt.

```txt
Create a Next.js middleware that checks for a valid JWT in cookies
and redirects unauthenticated users to `/login`. use context7
```

```txt
Configure a Cloudflare Worker script to cache
JSON API responses for five minutes. use context7
```

```txt
Show me the Supabase auth API for email/password sign-up.
```

Context7 fetches up-to-date code examples and documentation right into your LLM's context. No tab-switching, no hallucinated APIs that don't exist, no outdated code generation.

Works in two modes:

- **CLI + Skills** — installs a skill that guides your agent to fetch docs using `ctx7` CLI commands (no MCP required)
- **MCP** — registers a Context7 MCP server so your agent can call documentation tools natively

## Installation

> [!NOTE]
> **API Key Recommended**: Get a free API key at [context7.com/dashboard](https://context7.com/dashboard) for higher rate limits.

Set up Context7 for your coding agents with a single command. The `ctx7` CLI requires Node.js 18 or newer.

```bash
npx ctx7 setup
```

Authenticates via OAuth, generates an API key, and installs the appropriate skill. You can choose between CLI + Skills or MCP mode. Use `--cursor`, `--claude`, or `--opencode` to target a specific agent.

To remove the generated setup later, run `npx ctx7 remove`. If you globally installed the CLI with `npm install ctx7`, remove that package separately with `npm uninstall -g ctx7`.

To configure manually, use the Context7 server URL `https://mcp.context7.com/mcp` with your MCP client and pass your API key via the `Authorization: Bearer YOUR_API_KEY` header. See the link below for client-specific setup instructions.

**[Manual Installation / Other Clients →](https://context7.com/docs/resources/all-clients)**

## Important Tips

### Use Library Id

If you already know exactly which library you want to use, add its Context7 ID to your prompt. That way, Context7 can skip the library-matching step and directly retrieve docs.

```txt
Implement basic authentication with Supabase. use library /supabase/supabase for API and docs.
```

The slash syntax tells Context7 exactly which library to load docs for.

### Specify a Version

To get documentation for a specific library version, just mention the version in your prompt:

```txt
How do I set up Next.js 14 middleware? use context7
```

Context7 will automatically match the appropriate version.

### Add a Rule

If you installed via `ctx7 setup`, a skill is configured automatically that triggers Context7 for library-related questions. To set up a rule manually instead, add one to your coding agent:

- **Cursor**: `Cursor Settings > Rules`
- **Claude Code**: `CLAUDE.md`
- Or the equivalent in your coding agent

**Example rule:**

```txt
Always use Context7 when I need library/API documentation, code generation, setup or configuration steps without me having to explicitly ask.
```

## Available Tools

### CLI Commands

- `ctx7 library <name> <query>`: Searches the Context7 index by library name and returns matching libraries with their IDs.
- `ctx7 docs <libraryId> <query>`: Retrieves documentation for a library using a Context7-compatible library ID (e.g., `/mongodb/docs`, `/vercel/next.js`).

### MCP Tools

- `resolve-library-id`: Resolves a general library name into a Context7-compatible library ID.
  - `query` (required): The user's question or task (used to rank results by relevance)
  - `libraryName` (required): The name of the library to search for
- `query-docs`: Retrieves documentation for a library using a Context7-compatible library ID.
  - `libraryId` (required): Exact Context7-compatible library ID (e.g., `/mongodb/docs`, `/vercel/next.js`)
  - `query` (required): The question or task to get relevant documentation for

## More Documentation

- [CLI Reference](https://context7.com/docs/clients/cli) - Full CLI documentation
- [MCP Clients](https://context7.com/docs/resources/all-clients) - Manual MCP installation for 30+ clients
- [Adding Libraries](https://context7.com/docs/adding-libraries) - Submit your library to Context7
- [Troubleshooting](https://context7.com/docs/resources/troubleshooting) - Common issues and solutions
- [API Reference](https://context7.com/docs/api-guide) - REST API documentation
- [Developer Guide](https://context7.com/docs/resources/developer) - Run Context7 MCP locally

## Packages

- [`@upstash/context7-mcp`](https://www.npmjs.com/package/@upstash/context7-mcp) - MCP server
- [`ctx7`](https://www.npmjs.com/package/ctx7) - CLI
- [`@upstash/context7-sdk`](https://www.npmjs.com/package/@upstash/context7-sdk) - TypeScript SDK
- [`@upstash/context7-tools-ai-sdk`](https://www.npmjs.com/package/@upstash/context7-tools-ai-sdk) - Vercel AI SDK tools
- [`@upstash/context7-pi`](https://www.npmjs.com/package/@upstash/context7-pi) - pi.dev extension

## Disclaimer

1- Context7 projects are community-contributed and while we strive to maintain high quality, we cannot guarantee the accuracy, completeness, or security of all library documentation. Projects listed in Context7 are developed and maintained by their respective owners, not by Context7. If you encounter any suspicious, inappropriate, or potentially harmful content, please use the "Report" button on the project page to notify us immediately. We take all reports seriously and will review flagged content promptly to maintain the integrity and safety of our platform. By using Context7, you acknowledge that you do so at your own discretion and risk.

2- This repository hosts the MCP server’s source code. The supporting components — API backend, parsing engine, and crawling engine — are private and not part of this repository.

## 🤝 Connect with Us

Stay updated and join our community:

- 📢 Follow us on [X](https://x.com/context7ai) for the latest news and updates
- 🌐 Visit our [Website](https://context7.com)
- 💬 Join our [Discord Community](https://upstash.com/discord)

## 📺 Context7 In Media

- [Better Stack: "Free Tool Makes Cursor 10x Smarter"](https://youtu.be/52FC3qObp9E)
- [Cole Medin: "This is Hands Down the BEST MCP Server for AI Coding Assistants"](https://www.youtube.com/watch?v=G7gK8H6u7Rs)
- [Income Stream Surfers: "Context7 + SequentialThinking MCPs: Is This AGI?"](https://www.youtube.com/watch?v=-ggvzyLpK6o)
- [Julian Goldie SEO: "Context7: New MCP AI Agent Update"](https://www.youtube.com/watch?v=CTZm6fBYisc)
- [JeredBlu: "Context 7 MCP: Get Documentation Instantly + VS Code Setup"](https://www.youtube.com/watch?v=-ls0D-rtET4)
- [Income Stream Surfers: "Context7: The New MCP Server That Will CHANGE AI Coding"](https://www.youtube.com/watch?v=PS-2Azb-C3M)
- [AICodeKing: "Context7 + Cline & RooCode: This MCP Server Makes CLINE 100X MORE EFFECTIVE!"](https://www.youtube.com/watch?v=qZfENAPMnyo)
- [Sean Kochel: "5 MCP Servers For Vibe Coding Glory (Just Plug-In & Go)"](https://www.youtube.com/watch?v=LqTQi8qexJM)

## 📄 License

MIT

---

## File: .changeset/README.md

# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

---

## File: docs/agentic-tools/ai-sdk/agents/context7-agent.mdx

---
title: "Context7Agent"
sidebarTitle: "Context7Agent"
---

The `Context7Agent` class is a pre-configured AI agent that handles the complete documentation lookup workflow automatically. It combines both `resolveLibraryId` and `queryDocs` tools with an optimized system prompt.

## Usage

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";

const agent = new Context7Agent({
  model: anthropic("claude-sonnet-4-20250514"),
});

const { text } = await agent.generate({
  prompt: "How do I use React Server Components?",
});

console.log(text);
```

## Configuration

```typescript
new Context7Agent(config?: Context7AgentConfig)
```

### Parameters


  Configuration options for the agent.

  <Expandable title="properties">
    
      Language model to use. Must be a LanguageModel instance from an AI SDK provider.

      Examples:
      - `anthropic('claude-sonnet-4-20250514')`
      - `openai('gpt-5.2')`
      - `google('gemini-1.5-pro')`
    
    
      Context7 API key. If not provided, uses the `CONTEXT7_API_KEY` environment variable.
    
    
      Custom system prompt. Overrides the default `AGENT_PROMPT`.
    
    
      Condition for when the agent should stop. Defaults to stopping after 5 steps.
    

  </Expandable>


### Returns

`Context7Agent` extends the AI SDK `Agent` class and provides `generate()` and `stream()` methods.

## Agent Workflow

The agent follows a structured multi-step workflow:

```mermaid
flowchart TD
    A[User Query] --> B[Extract Library Name]
    B --> C[Call resolveLibraryId]
    C --> D{Results Found?}
    D -->|Yes| E[Select Best Match]
    D -->|No| F[Report No Results]
    E --> G[Call queryDocs]
    G --> H{Sufficient Context?}
    H -->|Yes| I[Generate Response]
    H -->|No| J[Fetch More Docs]
    J --> H
    I --> K[Return Answer with Examples]
```

### Step-by-Step

1. **Extract library name** - Identifies the library/framework from the user's query
2. **Resolve library** - Calls `resolveLibraryId` to find the Context7 library ID
3. **Select best match** - Analyzes results based on reputation, coverage, and relevance
4. **Fetch documentation** - Calls `queryDocs` with the selected library ID and user's query
5. **Query if needed** - Makes additional queries if initial context is insufficient
6. **Generate response** - Provides an answer with code examples from the documentation

## Examples

### Basic Usage

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";

const agent = new Context7Agent({
  model: anthropic("claude-sonnet-4-20250514"),
});

const { text } = await agent.generate({
  prompt: "How do I set up authentication in Next.js?",
});

console.log(text);
```

### With OpenAI

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { openai } from "@ai-sdk/openai";

const agent = new Context7Agent({
  model: openai("gpt-5.2"),
});

const { text } = await agent.generate({
  prompt: "Explain Tanstack Query's useQuery hook",
});
```

### Streaming Responses

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";

const agent = new Context7Agent({
  model: anthropic("claude-sonnet-4-20250514"),
});

const { textStream } = await agent.stream({
  prompt: "How do I create a Supabase Edge Function?",
});

for await (const chunk of textStream) {
  process.stdout.write(chunk);
}
```

### Custom Configuration

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";
import { stepCountIs } from "ai";

const agent = new Context7Agent({
  model: anthropic("claude-sonnet-4-20250514"),
  apiKey: process.env.CONTEXT7_API_KEY,
  stopWhen: stepCountIs(8), // Allow more steps for complex queries
});
```

### Custom System Prompt

```typescript
import { Context7Agent, AGENT_PROMPT } from "@upstash/context7-tools-ai-sdk";
import { openai } from "@ai-sdk/openai";

const agent = new Context7Agent({
  model: openai("gpt-5.2"),
  system: `${AGENT_PROMPT}

Additional instructions:
- Always include TypeScript examples
- Mention version compatibility when relevant
- Suggest related documentation topics`,
});
```

## Comparison: Agent vs Tools

| Feature       | Context7Agent        | Individual Tools     |
| ------------- | -------------------- | -------------------- |
| Setup         | Single configuration | Configure each tool  |
| Workflow      | Automatic multi-step | Manual orchestration |
| System prompt | Optimized default    | You provide          |
| Customization | Limited              | Full control         |
| Best for      | Quick integration    | Custom workflows     |

### When to Use the Agent

- Rapid prototyping
- Standard documentation lookup use cases
- When you want sensible defaults

### When to Use Individual Tools

- Custom agentic workflows
- Integration with other tools
- Fine-grained control over the process
- Custom system prompts with specific behavior

## Related

- [resolveLibraryId](/agentic-tools/ai-sdk/tools/resolve-library-id) - The library search tool used by the agent
- [queryDocs](/agentic-tools/ai-sdk/tools/query-docs) - The documentation fetch tool used by the agent
- [Getting Started](/agentic-tools/ai-sdk/getting-started) - Overview of the AI SDK integration

---

## File: docs/agentic-tools/ai-sdk/tools/query-docs.mdx

---
title: "queryDocs"
sidebarTitle: "queryDocs"
---

The `queryDocs` tool fetches documentation for a library using its Context7-compatible library ID and a query. This tool is typically called after `resolveLibraryId` has identified the correct library.

## Usage

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "How do I use React Server Components?",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(5),
});
```

## Configuration

```typescript
queryDocs(config?: Context7ToolsConfig)
```

### Parameters


  Configuration options for the tool.

  <Expandable title="properties">
    
      Context7 API key. If not provided, uses the `CONTEXT7_API_KEY` environment variable.
    
  </Expandable>


### Returns

Returns an AI SDK `tool` that can be used with `generateText`, `streamText`, or agents.

## Tool Behavior

When the AI model calls this tool, it:

1. Takes a library ID and query from the model
2. Fetches documentation from Context7's API
3. Returns the documentation content

### Input Schema

The tool accepts the following inputs from the AI model:


  Context7-compatible library ID (e.g., `/reactjs/react.dev`, `/vercel/next.js`)



  The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: "How to set up authentication with JWT in Express.js" or "React useEffect cleanup function examples". Bad (too vague): "auth" or "hooks". Bad (too broad): "routing and auth and caching in Next.js".


### Output Format

On success, the tool returns the documentation as plain text, formatted for easy consumption by the AI model:

```
# Server Components

Server Components let you write UI that can be rendered and optionally cached on the server.

## Example

\`\`\`tsx
async function ServerComponent() {
  const data = await fetchData();
  return {data};
}
\`\`\`

---

# Using Server Components with Client Components

You can import Server Components into Client Components...
```

#### On Failure

```
No documentation found for library "/invalid/library". This might have happened because you used an invalid Context7-compatible library ID. Use 'resolveLibraryId' to get a valid ID.
```

## Examples

### Basic Usage with Both Tools

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "Show me how to set up routing in Next.js App Router",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(5),
});

// The model will:
// 1. Call resolveLibraryId to get the library ID
// 2. Call queryDocs({ libraryId: "/vercel/next.js", query: "routing in App Router" })
// 3. Generate a response using the fetched documentation
```

### With Custom Configuration

```typescript
import { queryDocs } from "@upstash/context7-tools-ai-sdk";

const tool = queryDocs({
  apiKey: process.env.CONTEXT7_API_KEY,
});
```

### Direct Library ID (Skip resolveLibraryId)

If the user provides a library ID directly, the model can skip the resolution step:

```typescript
import { queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "Using /vercel/next.js, explain middleware",
  tools: {
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(3),
});

// The model recognizes the /org/project format and calls queryDocs directly
```

### Multi-Step Documentation Lookup

For comprehensive documentation, the model can make multiple queries:

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { anthropic } from "@ai-sdk/anthropic";

const { text } = await generateText({
  model: anthropic("claude-sonnet-4-20250514"),
  prompt: "Give me a comprehensive guide to Supabase authentication",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(8), // Allow more steps for multiple queries
});

// The model may call queryDocs multiple times with different queries
// to gather comprehensive documentation
```

## Version-Specific Documentation

Library IDs can include version specifiers:

```typescript
// Latest version
"/vercel/next.js";

// Specific version
"/vercel/next.js/v14.3.0-canary.87";
```

The model can request documentation for specific versions when the user asks about a particular version.

## Related

- [resolveLibraryId](/agentic-tools/ai-sdk/tools/resolve-library-id) - Search for libraries and get their IDs
- [Context7Agent](/agentic-tools/ai-sdk/agents/context7-agent) - Pre-built agent that handles the full workflow

---

## File: docs/agentic-tools/ai-sdk/tools/resolve-library-id.mdx

---
title: "resolveLibraryId"
sidebarTitle: "resolveLibraryId"
---

The `resolveLibraryId` tool searches Context7's library database and returns matching results with their Context7-compatible library IDs. This is typically the first step in a documentation lookup workflow.

## Usage

```typescript
import { resolveLibraryId } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "Find documentation for React hooks",
  tools: {
    resolveLibraryId: resolveLibraryId(),
  },
  stopWhen: stepCountIs(3),
});
```

## Configuration

```typescript
resolveLibraryId(config?: Context7ToolsConfig)
```

### Parameters


  Configuration options for the tool.

  <Expandable title="properties">
    
      Context7 API key. If not provided, uses the `CONTEXT7_API_KEY` environment variable.
    
  </Expandable>


### Returns

Returns an AI SDK `tool` that can be used with `generateText`, `streamText`, or agents.

## Tool Behavior

When the AI model calls this tool, it:

1. Takes a `query` and `libraryName` parameter from the model
2. Searches Context7's database for matching libraries
3. Returns formatted results including:
   - Library ID (e.g., `/reactjs/react.dev`)
   - Title and description
   - Number of code snippets available
   - Source reputation score
   - Available versions

### Input Schema

The tool accepts the following input from the AI model:


  The user's original question or task. This is used to rank library results by relevance to what the user is trying to accomplish.



  Library name to search for (e.g., "react", "next.js", "vue")


### Output Format

On success, the tool returns the search results as plain text, formatted for easy consumption by the AI model:

```
- Title: React Documentation
- Context7-compatible library ID: /reactjs/react.dev
- Description: The library for web and native user interfaces
- Code Snippets: 1250
- Source Reputation: High
- Benchmark Score: 98
- Versions: 19.0.0, 18.3.1, 18.2.0
----------
- Title: React Native
- Context7-compatible library ID: /facebook/react-native
- Description: A framework for building native applications using React
- Code Snippets: 890
- Source Reputation: High
- Benchmark Score: 95
- Versions: 0.76.0, 0.75.4
```

On failure:

```
No libraries found matching "unknown-lib". Try a different search term or check the library name.
```

## Examples

### Basic Usage

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text, toolCalls } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "What libraries are available for React?",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(5),
});

// The model will call resolveLibraryId and receive a list of matching libraries
console.log(text);
```

### With Custom API Key

```typescript
import { resolveLibraryId } from "@upstash/context7-tools-ai-sdk";

const tool = resolveLibraryId({
  apiKey: process.env.CONTEXT7_API_KEY,
});
```

### Inspecting Tool Calls

```typescript
import { resolveLibraryId } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { toolCalls, toolResults } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "Find the official Next.js documentation",
  tools: {
    resolveLibraryId: resolveLibraryId(),
  },
  stopWhen: stepCountIs(3),
});

// See what the model searched for
for (const call of toolCalls) {
  console.log("Searched for:", call.input.libraryName);
}

// See the results
for (const result of toolResults) {
  console.log("Found:", result.output);
}
```

## Selection Guidance

The tool's description instructs the AI model to select libraries based on:

1. **Name similarity** - Exact matches are prioritized
2. **Description relevance** - How well the description matches the query intent
3. **Documentation coverage** - Libraries with more code snippets are preferred
4. **Source reputation** - High/Medium reputation sources are more authoritative
5. **Benchmark score** - Quality indicator (100 is the highest)

## Related

- [queryDocs](/agentic-tools/ai-sdk/tools/query-docs) - Fetch documentation using the resolved library ID
- [Context7Agent](/agentic-tools/ai-sdk/agents/context7-agent) - Pre-built agent that handles the full workflow

---

## File: docs/agentic-tools/ai-sdk/getting-started.mdx

---
title: "Getting Started"
sidebarTitle: "Getting Started"
---

`@upstash/context7-tools-ai-sdk` provides [Vercel AI SDK](https://sdk.vercel.ai/) compatible tools and agents that give your AI applications access to up-to-date library documentation.

When building AI-powered applications with the Vercel AI SDK, your models often need accurate information about libraries and frameworks. Instead of relying on potentially outdated training data, Context7 tools let your AI fetch current documentation on-demand, ensuring responses include correct API usage, current best practices, and working code examples.

The package gives you two ways to integrate:

1. **Individual tools** (`resolveLibraryId` and `queryDocs`) that you add to your existing `generateText` or `streamText` calls
2. **A pre-built agent** (`Context7Agent`) that handles the entire documentation lookup workflow automatically

Both approaches work with any AI provider supported by the Vercel AI SDK, including OpenAI, Anthropic, Google, and others.

## Installation

<CodeGroup>
```bash npm
npm install @upstash/context7-tools-ai-sdk
```

```bash pnpm
pnpm add @upstash/context7-tools-ai-sdk
```

```bash yarn
yarn add @upstash/context7-tools-ai-sdk
```

```bash bun
bun add @upstash/context7-tools-ai-sdk
```

</CodeGroup>

## Prerequisites

You'll need:

1. A Context7 API key from the [Context7 Dashboard](https://context7.com/dashboard)
2. An AI provider SDK (e.g., `@ai-sdk/openai`, `@ai-sdk/anthropic`)

## Configuration

Set your Context7 API key as an environment variable:

```bash
CONTEXT7_API_KEY=ctx7sk-...
```

The tools and agents will automatically use this key.

## Quick Start

### Using Tools with generateText

The simplest way to add documentation lookup to your AI application:

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { generateText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5.2"),
  prompt: "How do I create a server action in Next.js?",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(5),
});

console.log(text);
```

### Using the Context7 Agent

For a more streamlined experience, use the pre-configured agent:

```typescript
import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
import { anthropic } from "@ai-sdk/anthropic";

const agent = new Context7Agent({
  model: anthropic("claude-sonnet-4-20250514"),
});

const { text } = await agent.generate({
  prompt: "How do I use React Server Components?",
});

console.log(text);
```

### Using Tools with streamText

For streaming responses:

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";
import { streamText, stepCountIs } from "ai";
import { openai } from "@ai-sdk/openai";

const { textStream } = streamText({
  model: openai("gpt-5.2"),
  prompt: "Explain how to use Tanstack Query for data fetching",
  tools: {
    resolveLibraryId: resolveLibraryId(),
    queryDocs: queryDocs(),
  },
  stopWhen: stepCountIs(5),
});

for await (const chunk of textStream) {
  process.stdout.write(chunk);
}
```

## Explicit Configuration

You can also pass the API key directly if needed:

```typescript
import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";

const tools = {
  resolveLibraryId: resolveLibraryId({ apiKey: "your-api-key" }),
  queryDocs: queryDocs({ apiKey: "your-api-key" }),
};
```

## How It Works

The tools follow a two-step workflow:

1. **`resolveLibraryId`** - Searches Context7's database to find the correct library ID for a given query (e.g., "react" → `/reactjs/react.dev`)

2. **`queryDocs`** - Fetches documentation for the resolved library using the user's query to retrieve relevant content

The AI model orchestrates these tools automatically based on the user's prompt, fetching relevant documentation before generating a response.

## Next Steps

<CardGroup cols={2}>
  <Card
    title="resolveLibraryId"
    icon="magnifying-glass"
    href="/agentic-tools/ai-sdk/tools/resolve-library-id"
  >
    Search for libraries and get Context7-compatible IDs
  </Card>
  <Card title="queryDocs" icon="book" href="/agentic-tools/ai-sdk/tools/query-docs">
    Fetch documentation for a specific library
  </Card>
  <Card title="Context7Agent" icon="robot" href="/agentic-tools/ai-sdk/agents/context7-agent">
    Use the pre-built documentation agent
  </Card>
</CardGroup>

---

## File: docs/agentic-tools/overview.mdx

---
title: "Overview"
sidebarTitle: "Overview"
---

# Agentic Tools

Context7 provides tools and integrations that give your AI agents access to accurate, up-to-date library documentation. Instead of relying on potentially outdated training data, your agents can fetch real-time documentation to answer questions and generate code.

## Why Agentic Tools?

AI agents often struggle with:

- **Outdated knowledge** - Training data becomes stale, leading to deprecated API usage
- **Hallucinated APIs** - Models confidently suggest methods that don't exist
- **Version mismatches** - Code examples from old versions that no longer work

Context7's agentic tools solve these problems by giving your agents direct access to current documentation during inference.

## Available Integrations

<CardGroup cols={1}>
  <Card
    title="Vercel AI SDK"
    icon="wand-magic-sparkles"
    href="/agentic-tools/ai-sdk/getting-started"
  >
    Add Context7 tools to your AI SDK workflows with `generateText`, `streamText`, or use the
    pre-built `Context7Agent` for automatic documentation lookup.
  </Card>
  <Card title="TypeScript SDK" icon="js" href="/sdks/ts/getting-started">
    Call Context7 directly from any TypeScript or Node.js app.
  </Card>
  <Card title="MCP Server" icon="plug" href="/resources/all-clients">
    Connect Context7's MCP server to any agent or editor.
  </Card>
</CardGroup>

## How It Works

```mermaid
sequenceDiagram
    participant User
    participant Agent
    participant Context7
    participant Docs

    User->>Agent: "How do I use React Server Components?"
    Agent->>Context7: resolveLibraryId(query: "React Server Components", libraryName: "react")
    Context7-->>Agent: Library ID: /reactjs/react.dev
    Agent->>Context7: queryDocs(libraryId: "/reactjs/react.dev", query: "server components")
    Context7->>Docs: Fetch latest documentation
    Docs-->>Context7: Current docs with examples
    Context7-->>Agent: Documentation content
    Agent->>User: Answer with accurate, up-to-date code examples
```

## Use Cases

<AccordionGroup>
  <Accordion title="Documentation-Aware Chatbots" icon="comments">
    Build chatbots that answer framework questions with accurate, version-specific information:

    ```typescript
    import { generateText, stepCountIs } from "ai";
    import { openai } from "@ai-sdk/openai";
    import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";

    const { text } = await generateText({
      model: openai("gpt-5.2"),
      prompt: "How do I set up authentication in Next.js 15?",
      tools: {
        resolveLibraryId: resolveLibraryId(),
        queryDocs: queryDocs(),
      },
      stopWhen: stepCountIs(5),
    });
    ```

  </Accordion>

  <Accordion title="Code Generation Pipelines" icon="code">
    Ensure generated code uses current APIs and best practices:

    ```typescript
    import { Context7Agent } from "@upstash/context7-tools-ai-sdk";
    import { anthropic } from "@ai-sdk/anthropic";

    const agent = new Context7Agent({
      model: anthropic("claude-sonnet-4-20250514"),
    });

    const { text } = await agent.generate({
      prompt: "Generate a Supabase Edge Function that handles webhooks",
    });
    ```

  </Accordion>

  <Accordion title="Code Review Agents" icon="magnifying-glass-chart">
    Build code review agents that verify implementations against current API documentation:

    ```typescript
    import { generateText, stepCountIs } from "ai";
    import { anthropic } from "@ai-sdk/anthropic";
    import { resolveLibraryId, queryDocs } from "@upstash/context7-tools-ai-sdk";

    const codeToReview = `
      const { data } = await supabase
        .from('users')
        .select('*')
        .eq('id', userId)
        .single();
    `;

    const { text } = await generateText({
      model: anthropic("claude-sonnet-4-20250514"),
      prompt: `Review this Supabase code for correctness and best practices:

    ${codeToReview}

    Check against the latest Supabase documentation.`,
      tools: {
        resolveLibraryId: resolveLibraryId(),
        queryDocs: queryDocs(),
      },
      stopWhen: stepCountIs(5),
    });

    // Agent fetches current Supabase docs to verify:
    // - Correct method signatures
    // - Deprecated patterns
    // - Security best practices
    // - Error handling recommendations
    ```

  </Accordion>
</AccordionGroup>

---

## File: docs/clients/claude-code.mdx

---
title: Claude Code
---

Context7 integrates with Claude Code to provide current library documentation instead of relying on training data. Claude Code supports skills, agents, and commands that make documentation lookups more powerful.

## Installation

Run the setup command to configure Context7 for Claude Code:

```bash
npx ctx7 setup --claude
```

This flow authenticates via OAuth, generates an API key, and installs the appropriate skill. You can choose between CLI or MCP mode. Login uses the OAuth device flow — it shows a verification link and short code you open on any device, so it works the same locally or on a remote, headless, or SSH host.

Create or manage API keys in the [Context7 dashboard](https://context7.com/dashboard). For manual MCP installation or other configuration options, see [All MCP Clients](/resources/all-clients).

---

## Using Context7

With `ctx7 setup`, a skill is installed that triggers automatically when you ask about libraries — no need to say "use context7". You can also invoke it explicitly:

```
use context7 to show me how to set up middleware in Next.js 15
use context7 for Prisma query examples with relations
use context7 for the Supabase syntax for row-level security
```

If you know the library ID, use it directly to skip resolution:

```
use context7 with /supabase/supabase for authentication docs
use context7 with /vercel/next.js for app router setup
```

<Tip>
With the [Context7 plugin](#the-context7-plugin) installed, you get additional agents and commands on top of the skill.
</Tip>

---

## The Context7 Plugin

The full Context7 plugin for Claude Code includes more than just the MCP server:

<CardGroup cols={2}>
<Card title="MCP Server" icon="server">
The tools for fetching documentation (`resolve-library-id`, `query-docs`)
</Card>
<Card title="Skills" icon="sparkles">
Auto-triggers documentation lookups when you ask about libraries
</Card>
<Card title="Agents" icon="robot">
A `docs-researcher` agent for focused lookups that keep context lean
</Card>
<Card title="Commands" icon="terminal">
`/context7:docs` for manual documentation queries
</Card>
</CardGroup>

### Installing the Plugin

The plugin is available from the Context7 marketplace. Run these commands in Claude Code:

```
/plugin marketplace add upstash/context7
/plugin install context7@context7-marketplace
```

This adds the Context7 marketplace and installs the plugin with skills, agents, and commands.

### Using Your API Key with the Plugin

Without an API key, the plugin connects anonymously and shares the anonymous rate limits. To use your own plan, create an API key in the [Context7 dashboard](https://context7.com/dashboard) and export it as an environment variable before launching Claude Code:

```bash
# e.g. in ~/.zshrc or ~/.bashrc
export CONTEXT7_API_KEY="your-api-key"
```

The plugin reads `CONTEXT7_API_KEY` from your environment automatically. Restart Claude Code after setting it, then confirm requests are counted against your plan in the [dashboard](https://context7.com/dashboard).

<Note>
If the variable is not set, the plugin still works — requests just go through the anonymous tier, which has lower rate limits.
</Note>

### Skills

#### Documentation Lookup Skill

This skill triggers automatically when you ask about libraries, frameworks, or need code examples. You don't need to type "use context7" — the skill recognizes when documentation would help.

<AccordionGroup>
<Accordion title="What triggers the skill">
- Setup questions: "How do I configure Next.js middleware?"
- Code generation: "Write a Prisma query for user relations"
- API references: "What are the Supabase auth methods?"
- Framework mentions: React, Vue, Svelte, Express, Tailwind, etc.
</Accordion>
<Accordion title="How it works">
1. **Resolve**: Finds the library ID using `resolve-library-id` with your question as context
2. **Select**: Picks the best match based on name accuracy and quality scores
3. **Fetch**: Calls `query-docs` with the library ID and your specific question
4. **Return**: Provides code examples and explanations from current documentation
</Accordion>
</AccordionGroup>

### Agents

#### docs-researcher Agent

When you're in the middle of a long task and don't want documentation tool calls cluttering your context, spawn the `docs-researcher` agent. It runs in a separate context and returns just the answer.

<Tabs>
<Tab title="When to Use" icon="question">
- You need docs but want to keep your main context clean
- You're working on something complex and context is getting long
- You want a focused answer without side effects
</Tab>
<Tab title="Examples" icon="code">
```
spawn docs-researcher to look up React hooks documentation
spawn docs-researcher: how do I set up Prisma with PostgreSQL?
spawn docs-researcher to find Tailwind CSS grid utilities
```
</Tab>
</Tabs>

The agent uses the same tools (`resolve-library-id` and `query-docs`) but runs on a lighter model (Sonnet) to keep things fast.

#### When to Use Agents vs Inline Tools

| Scenario | Use |
|----------|-----|
| Deep into a task with long context | Agent |
| Want to avoid context bloat | Agent |
| Context is short | Inline tools |
| Want docs visible in conversation | Inline tools |

### Commands

#### /context7:docs

Manual command for documentation lookups.

**Format:**
```
/context7:docs <library> [query]
```

**Examples:**

<Tabs>
<Tab title="Basic" icon="search">
```
/context7:docs react hooks
/context7:docs next.js authentication
/context7:docs prisma relations
```
</Tab>
<Tab title="With Library ID" icon="link">
```
/context7:docs /vercel/next.js app router
/context7:docs /supabase/supabase row level security
```

Using a library ID directly skips the resolution step.
</Tab>
</Tabs>

**When to use:**
- You know exactly which library and topic you need
- You want a quick lookup without explaining your full context
- You're testing what documentation is available

---

## File: docs/clients/cli.mdx

---
title: CLI
---

The `ctx7` CLI is the command-line interface for Context7. It does two things:

- **Fetch library documentation** — resolve any library by name and query its up-to-date docs directly in your terminal, without opening a browser
- **Configure your AI coding agent** — set up the Context7 MCP server (or a CLI-based `docs` skill) for Claude Code, Cursor, OpenCode, and more with a single command

The CLI is useful both as a standalone tool (fetching docs while you code) and as a setup utility (wiring up Context7 for your AI coding agent).

## Installation

Requires Node.js 18 or later.

<Tabs>
  <Tab title="npx (no install)">
    Run ctx7 directly without installing anything. Useful for one-off commands or trying it out.

    ```bash
    npx ctx7 --help
    npx ctx7 library react
    ```

  </Tab>
  <Tab title="Global install">
    Install globally for faster access — no `npx` prefix needed on every command.

    ```bash
    npm install ctx7

    # Verify installation
    ctx7 --version
    ```

  </Tab>
</Tabs>

---

## Query Library Documentation

Fetching docs is a two-step process: first resolve the library name to get its Context7 ID, then use that ID to query documentation.

### Step 1 — ctx7 library

Searches the Context7 index by name and returns matching libraries. Pass a `query` describing what you're trying to do — this ranks results by relevance and helps when a library name is ambiguous or shared across multiple packages.

```bash
ctx7 library react "How to clean up useEffect with async operations"
ctx7 library nextjs "How to set up app router with middleware"
ctx7 library prisma "How to define one-to-many relations with cascade delete"
```

Each result includes:

| Field                 | Description                                                                |
| --------------------- | -------------------------------------------------------------------------- |
| **Library ID**        | The identifier to pass to `ctx7 docs` (format: `/org/project`)             |
| **Code Snippets**     | Number of indexed code examples — higher means more documentation coverage |
| **Source Reputation** | Authority indicator: High, Medium, Low, or Unknown                         |
| **Benchmark Score**   | Quality score from 0 to 100                                                |
| **Versions**          | Version-specific IDs when available (format: `/org/project/version`)       |

When multiple results come back, the best match is usually the one with the closest name, highest snippet count, and strongest reputation. If you need docs for a specific version, pick the matching version ID from the list.

```bash
# Fetch docs for a specific version
ctx7 docs /vercel/next.js/v14.3.0-canary.87 "How to set up app router"

# Output as JSON for scripting
ctx7 library react "How to use hooks for state management" --json | jq '.[0].id'
```

### Step 2 — ctx7 docs

Takes a library ID and a natural-language question, and returns relevant code snippets and explanations from the indexed documentation.

```bash
ctx7 docs /facebook/react "How to clean up useEffect with async operations"
ctx7 docs /vercel/next.js "How to add middleware that redirects unauthenticated users"
ctx7 docs /prisma/prisma "How to define one-to-many relations with cascade delete"
```

<Note>
  Library IDs always start with `/`. Running `ctx7 docs react "hooks"` will fail — always use the
  full ID returned by `ctx7 library` in Step 1.
</Note>

Queries work best when they're specific. Describe what you're trying to accomplish rather than using single keywords — `"How to set up authentication with JWT in Express.js"` returns much better results than `"auth"`.

The output contains two types of content: **code snippets** (titled, with language-tagged blocks) and **info snippets** (prose explanations with breadcrumb context). Both are formatted for readability in the terminal.

```bash
# Output as structured JSON
ctx7 docs /facebook/react "How to use hooks for state management" --json

# Pipe to other tools — output is clean when not in a TTY (no spinners or colors)
ctx7 docs /facebook/react "How to use hooks for state management" | head -50
ctx7 docs /vercel/next.js "How to add middleware for route protection" | grep -A 10 "middleware"
```

---

## Setup

Configure Context7 for your AI coding agent. On first run, prompts you to choose between two modes:

- **MCP server** — registers the Context7 MCP server in your agent's config so it can call `resolve-library-id` and `query-docs` tools natively
- **CLI + Skills** — installs a `docs` skill that guides your agent to fetch up-to-date library docs using `ctx7` CLI commands (no MCP required)

### ctx7 setup

```bash
# Interactive — prompts for mode, then agent/install target
ctx7 setup

# Skip the mode prompt
ctx7 setup --mcp            # MCP server mode
ctx7 setup --cli            # CLI + Skills mode

# Target a specific agent (MCP mode)
ctx7 setup --claude
ctx7 setup --cursor
ctx7 setup --opencode

# Target a specific install location (CLI + Skills mode)
ctx7 setup --cli --claude       # Claude Code (~/.claude/skills)
ctx7 setup --cli --cursor       # Cursor (~/.cursor/skills)
ctx7 setup --cli --universal    # Universal (~/.agents/skills)
ctx7 setup --cli --antigravity  # Antigravity (~/.agent/skills)

# Configure for current project only (default is global)
ctx7 setup --project

# Skip confirmation prompts
ctx7 setup --yes
```

**Authentication options:**

```bash
# Use an existing API key (works for both MCP and CLI + Skills mode)
ctx7 setup --api-key YOUR_API_KEY

# Use OAuth endpoint — MCP mode only (IDE handles the auth flow)
ctx7 setup --oauth
```

Without `--api-key` or `--oauth`, setup runs the OAuth device flow: it shows a verification link and short code that you open on any device to sign in, so it works the same locally or on a remote, headless, or SSH host. MCP mode additionally generates a new API key after login. `--oauth` is MCP-only — use it when an IDE handles the auth flow on your behalf.

**What gets written — MCP mode:**

| File                                                | Purpose                                                          |
| --------------------------------------------------- | ---------------------------------------------------------------- |
| `.mcp.json` / `.cursor/mcp.json` / `.opencode.json` | MCP server entry                                                 |
| Agent rules directory                               | Rule file — instructs the agent to use Context7 for library docs |
| Agent skills directory                              | `context7-mcp` skill                                             |

**What gets written — CLI + Skills mode:**

| File                   | Purpose                                                                        |
| ---------------------- | ------------------------------------------------------------------------------ |
| Agent skills directory | `docs` skill — guides the agent to use `ctx7 library` and `ctx7 docs` commands |

### ctx7 remove

Remove the setup written by `ctx7 setup`. By default this removes both MCP setup and CLI setup for the selected agent.

```bash
# Interactive
ctx7 remove

# Target specific agents
ctx7 remove --cursor
ctx7 remove --claude --project

# Remove both setup modes explicitly
ctx7 remove --cursor --all

# Remove only one setup mode
ctx7 remove --cursor --cli
ctx7 remove --claude --mcp
```

If you installed the CLI itself with `npm install ctx7`, remove that separately with `npm uninstall -g ctx7`. If you run Context7 with `npx ctx7`, there is no permanent CLI install to remove.

---

## Authentication

Most commands work without authentication. Log in to unlock higher rate limits on documentation commands.

### Commands

```bash
# Log in (opens browser for OAuth)
ctx7 login

# Log in without opening the browser (prints URL instead)
ctx7 login --no-browser

# Check current login status
ctx7 whoami

# Log out
ctx7 logout
```

### API Key

Set an API key via environment variable to skip interactive login entirely — useful for CI or scripting:

```bash
export CONTEXT7_API_KEY=your_key
```

### When is authentication required?

| Feature                                                  | Required                                                                     |
| -------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `ctx7 library` / `ctx7 docs`                             | No — login gives higher rate limits                                          |
| `ctx7 setup`                                             | Yes — unless `--api-key` is passed (`--oauth` also skips login for MCP mode) |

---

## Telemetry

The CLI collects anonymous usage data to help improve the product. To disable:

```bash
# For a single command
CTX7_TELEMETRY_DISABLED=1 ctx7 docs /facebook/react "useEffect examples"

# Permanently — add to ~/.bashrc or ~/.zshrc
export CTX7_TELEMETRY_DISABLED=1
```

---

## Next Steps

<CardGroup cols={2}>
  <Card title="Claude Code" icon="terminal" href="/clients/claude-code">
    Set up Context7 in Claude Code
  </Card>
  <Card title="All Clients" icon="grid" href="/resources/all-clients">
    Installation for every supported editor
  </Card>
</CardGroup>

---

## File: docs/clients/cursor.mdx

---
title: Cursor
---

Context7 brings up-to-date library documentation directly into Cursor. Instead of getting outdated code examples from training data, you get current documentation from source repositories.

## Installation

Run the setup command to configure Context7 for Cursor:

```bash
npx ctx7 setup --cursor
```

Authenticates via OAuth, generates an API key, and installs the appropriate skill. You can choose between CLI or MCP mode.

For manual MCP installation or other configuration options, see [All MCP Clients](/resources/all-clients).

---

## Setting Up Rules

With `ctx7 setup`, a skill is installed that triggers Context7 automatically. If you prefer to use a rule instead, add one in Cursor.

<Tabs>
<Tab title="Cursor Settings" icon="settings">
<Steps>
<Step title="Open Settings">
Go to `Cursor` → `Settings...` → `Cursor Settings` → `Rules and Commands`. You can also press `Cmd+Shift+P` (or `Ctrl+Shift+P` on Windows/Linux) and type "Cursor Settings".

<Frame>
  
</Frame>
</Step>
<Step title="Add the Rule">
```
Always use Context7 MCP when I ask about library documentation,
API references, or need code examples from external packages.
```
</Step>
</Steps>
</Tab>
<Tab title=".cursorrules File" icon="file">
Create a `.cursorrules` file in your project root:

```
# Context7 Integration

When the user asks about:
- Library APIs or documentation
- Framework setup or configuration
- Code examples for external packages
- How to use a specific library feature

Automatically use Context7 MCP to fetch current documentation. Don't rely on training data for library-specific code.
```

This makes Context7 part of your project's standard workflow and can be version-controlled.

</Tab>
</Tabs>

---

## Using Context7

Add "use context7" to your prompts to fetch current documentation:

```
use context7 to show me how to set up middleware in Next.js 15
use context7 for Prisma query examples with relations
use context7 for the Supabase syntax for row-level security
```

If you know the library ID, use it directly to skip resolution:

```
use context7 with /supabase/supabase for authentication docs
use context7 with /vercel/next.js for app router setup
```

---

## Tips

<AccordionGroup>
<Accordion title="Project vs Global Config">
Use **global config** (`~/.cursor/mcp.json`) when:
- You want Context7 available in all projects
- You're using a personal API key

Use **project config** (`.cursor/mcp.json`) when:

- The project has specific Context7 requirements
- You want to share the setup with teammates
- Different projects need different API keys
</Accordion>

<Accordion title="Combining with Cursor Composer">
Context7 works well with Cursor's Composer feature. When you're building something that involves external libraries:

1. Start with a prompt that mentions the libraries you need
2. Context7 fetches the relevant docs
3. Composer uses those docs to generate accurate code

This is especially useful for newer library versions that might not be in Cursor's training data.

</Accordion>

<Accordion title="Getting Better Results">
- Be specific about what you're trying to do, not just which library
- Mention versions when they matter
- If the first result isn't right, ask for a different part of the docs

```
# Good
How do I handle file uploads with the Supabase Storage API?

# Less specific
How does Supabase storage work?
```

</Accordion>
</AccordionGroup>

## 2. Official Technical Reference & Guides (upstash/docs)

# Upstash Documentation

<Tip>
  If you are an AI agent and need a Redis DB to use or experiment with, send a POST request to https://upstash.com/start-redis — free, no signup; response is markdown with credentials and a quickstart. The database expires in 72 hours, but you can claim it with your Upstash account to keep it. Especially useful for AI agents that need scratch storage on the fly.

  Upstash also provides an MCP server (/docs/agent-resources/mcp) to manage and debug your Upstash resources directly from an agent, and an agent-friendly CLI (/docs/agent-resources/cli) for your terminal or CI/CD pipelines.
</Tip>

## Docs

- [README](https://upstash.com/docs/README.md)
- [CLI](https://upstash.com/docs/agent-resources/cli.md)
- [llms.txt](https://upstash.com/docs/agent-resources/llms-txt.md)
- [MCP Server](https://upstash.com/docs/agent-resources/mcp.md)
- [Skills](https://upstash.com/docs/agent-resources/skills.md)
- [Disable Production Pack](https://upstash.com/docs/api-reference/qstash/disable-production-pack.md): Disables the production pack for a QStash instance.
- [Enable Production Pack](https://upstash.com/docs/api-reference/qstash/enable-production-pack.md): Enables the production pack for a QStash instance.
- [Get QStash](https://upstash.com/docs/api-reference/qstash/get-qstash.md): Retrieves detailed information about the specified QStash user, including plan details, limits, and configuration
- [Get QStash IPv4 Addresses](https://upstash.com/docs/api-reference/qstash/get-qstash-ipv4-addresses.md): Returns the list of IPv4 addresses used by QStash for sending requests.
- [Get QStash Stats](https://upstash.com/docs/api-reference/qstash/get-qstash-stats.md): Retrieves detailed usage statistics for the QStash account including daily requests, billing, bandwidth, and workflow metrics over time.
- [List QStash Users](https://upstash.com/docs/api-reference/qstash/list-qstash-users.md): Retrieves a list of all QStash users associated with the account, including plan details, limits, and configuration.
- [Move QStash to Team](https://upstash.com/docs/api-reference/qstash/move-qstash-to-team.md): Moves a QStash instance to a different team.
- [Reset QStash Token](https://upstash.com/docs/api-reference/qstash/reset-qstash-token.md): Resets the authentication credentials for the QStash user account. This invalidates the old password and token, and generates new ones. Returns the updated user information with new credentials.
- [Set QStash Plan](https://upstash.com/docs/api-reference/qstash/set-qstash-plan.md): Changes the QStash account to a different plan type. This operation changes the plan and associated limits for the QStash account.
- [Update QStash Budget](https://upstash.com/docs/api-reference/qstash/update-qstash-budget.md): Updates the monthly spending budget limit for a QStash instance.
- [Create Search Index](https://upstash.com/docs/api-reference/search/create-search-index.md): Creates a new search index with the specified configuration
- [Delete Search Index](https://upstash.com/docs/api-reference/search/delete-search-index.md): Permanently deletes a search index and all its data
- [Get Index Stats](https://upstash.com/docs/api-reference/search/get-index-stats.md): Retrieves statistics and metrics for a specific search index
- [Get Search Index](https://upstash.com/docs/api-reference/search/get-search-index.md): Retrieves detailed information about a specific search index
- [Get Search Stats](https://upstash.com/docs/api-reference/search/get-search-stats.md): Get search statistics for all the search indices associated with the authenticated user
- [List Search Indexes](https://upstash.com/docs/api-reference/search/list-search-indexes.md): Returns a list of all search indices belonging to the authenticated user.
- [Rename Search Index](https://upstash.com/docs/api-reference/search/rename-search-index.md): Renames a search index.
- [Reset Password](https://upstash.com/docs/api-reference/search/reset-password.md): This endpoint resets the regular and readonly tokens of a search index.
- [Transfer Search Index](https://upstash.com/docs/api-reference/search/transfer-search-index.md): Transfers ownership of a search index to another team. Transferring to a personal account is not supported. However, transferring from a personal account to a team is allowed.
- [Get Index Stats](https://upstash.com/docs/api-reference/vector/get-index-stats.md): Retrieves statistics and metrics for a specific vector index
- [Get Vector Stats](https://upstash.com/docs/api-reference/vector/get-vector-stats.md): Get vector statistics for all the vector indices associated with the authenticated user
- [Code Interpreter with Vercel AI SDK](https://upstash.com/docs/box/guides/ai-sdk-code-interpreter.md)
- [Build a Code Review Agent](https://upstash.com/docs/box/guides/code-review-agent.md)
- [Running Tests with Crabbox](https://upstash.com/docs/box/guides/crabbox-setup.md)
- [Hermes Setup](https://upstash.com/docs/box/guides/hermes-setup.md)
- [LangChain Deep Agents](https://upstash.com/docs/box/guides/langchain-deep-agents.md)
- [Next.js Setup](https://upstash.com/docs/box/guides/nextjs-setup.md)
- [OpenClaw Setup](https://upstash.com/docs/box/guides/openclaw-setup.md)
- [Pi Setup](https://upstash.com/docs/box/guides/pi-setup.md)
- [Remote Development](https://upstash.com/docs/box/guides/remote-development.md)
- [AI File Editor with TanStack AI](https://upstash.com/docs/box/guides/tanstack-ai-file-editor.md)
- [Scrape Dynamic Websites with Playwright](https://upstash.com/docs/box/guides/web-scraping-playwright.md)
- [Agent](https://upstash.com/docs/box/overall/agent.md)
- [Attach Headers](https://upstash.com/docs/box/overall/attach-headers.md)
- [AI Actions](https://upstash.com/docs/box/overall/browser/ai-actions.md)
- [Connect over CDP](https://upstash.com/docs/box/overall/browser/connect.md)
- [Cookbook](https://upstash.com/docs/box/overall/browser/cookbook.md): Runnable browser examples grouped by use case. Each one is self-contained: paste it, run it, read the output.
- [Live View](https://upstash.com/docs/box/overall/browser/live-view.md)
- [Browser](https://upstash.com/docs/box/overall/browser/overview.md)
- [Reading Pages](https://upstash.com/docs/box/overall/browser/reading-pages.md)
- [Recordings](https://upstash.com/docs/box/overall/browser/recordings.md)
- [Tabs & Navigation](https://upstash.com/docs/box/overall/browser/tabs.md)
- [How to Add a Custom Agent](https://upstash.com/docs/box/overall/custom-agent.md)
- [Aider](https://upstash.com/docs/box/overall/custom-harness/aider.md)
- [CrewAI](https://upstash.com/docs/box/overall/custom-harness/crewai.md)
- [Gemini](https://upstash.com/docs/box/overall/custom-harness/gemini.md)
- [Goose](https://upstash.com/docs/box/overall/custom-harness/goose.md)
- [Pi](https://upstash.com/docs/box/overall/custom-harness/pi.md)
- [Pydantic AI](https://upstash.com/docs/box/overall/custom-harness/pydantic-ai.md)
- [Ephemeral Box](https://upstash.com/docs/box/overall/ephemeral-box.md)
- [Filesystem](https://upstash.com/docs/box/overall/files.md)
- [Git](https://upstash.com/docs/box/overall/git.md)
- [Box Basics](https://upstash.com/docs/box/overall/how-it-works.md)
- [Keep Alive](https://upstash.com/docs/box/overall/keep-alive.md)
- [Network Policy](https://upstash.com/docs/box/overall/network-policy.md)
- [Public URLs](https://upstash.com/docs/box/overall/preview.md)
- [Pricing & Limits](https://upstash.com/docs/box/overall/pricing.md)
- [Quickstart](https://upstash.com/docs/box/overall/quickstart.md)
- [Schedules](https://upstash.com/docs/box/overall/schedules.md)
- [Security & Secrets](https://upstash.com/docs/box/overall/security.md)
- [Shell](https://upstash.com/docs/box/overall/shell.md)
- [Snapshots](https://upstash.com/docs/box/overall/snapshots.md)
- [Use Cases](https://upstash.com/docs/box/overall/use-cases.md)
- [Add a Payment Method](https://upstash.com/docs/common/account/add-payment-method.md)
- [Audit Logs](https://upstash.com/docs/common/account/auditlogs.md)
- [AWS Marketplace](https://upstash.com/docs/common/account/awsmarketplace.md)
- [Cost Explorer](https://upstash.com/docs/common/account/costexplorer.md)
- [Create an Account](https://upstash.com/docs/common/account/createaccount.md)
- [Developer API](https://upstash.com/docs/common/account/developerapi.md)
- [Account and Billing FAQ](https://upstash.com/docs/common/account/faq.md)
- [Payment History](https://upstash.com/docs/common/account/paymenthistory.md)
- [Teams and Users](https://upstash.com/docs/common/account/teams.md)
- [Access Anywhere](https://upstash.com/docs/common/concepts/access-anywhere.md)
- [Global Replication](https://upstash.com/docs/common/concepts/global-replication.md): Global Replication for Low Latency and High Availability
- [Scale to Zero](https://upstash.com/docs/common/concepts/scale-to-zero.md): Only pay for what you really use.
- [Serverless](https://upstash.com/docs/common/concepts/serverless.md): What do we mean by serverless?
- [Account & Teams](https://upstash.com/docs/common/help/account.md)
- [Announcements](https://upstash.com/docs/common/help/announcements.md): Upstash Announcements!
- [Compliance](https://upstash.com/docs/common/help/compliance.md)
- [Legal](https://upstash.com/docs/common/help/legal.md)
- [Production Checklist](https://upstash.com/docs/common/help/production-checklist.md)
- [Professional Support](https://upstash.com/docs/common/help/prosupport.md)
- [Uptime SLA](https://upstash.com/docs/common/help/sla.md)
- [Support & Contact Us](https://upstash.com/docs/common/help/support.md)
- [Uptime Monitor](https://upstash.com/docs/common/help/uptime.md)
- [List Audit Logs](https://upstash.com/docs/devops/developer-api/account/list_audit_logs.md): This endpoint lists all audit logs of user.
- [Authentication](https://upstash.com/docs/devops/developer-api/authentication.md): Authentication for the Upstash Developer API
- [HTTP Status Codes](https://upstash.com/docs/devops/developer-api/http_status_codes.md): The Upstash API uses the following HTTP Status codes:
- [Getting Started](https://upstash.com/docs/devops/developer-api/introduction.md)
- [Create Backup](https://upstash.com/docs/devops/developer-api/redis/backup/create_backup.md): This endpoint creates a backup for a Redis database.
- [Delete Backup](https://upstash.com/docs/devops/developer-api/redis/backup/delete_backup.md): This endpoint deletes a backup of a Redis database.
- [Disable Daily Backup](https://upstash.com/docs/devops/developer-api/redis/backup/disable_dailybackup.md): This endpoint disables daily backup for a Redis database.
- [Enable Daily Backup](https://upstash.com/docs/devops/developer-api/redis/backup/enable_dailybackup.md): This endpoint enables daily backup for a Redis database.
- [List Backup](https://upstash.com/docs/devops/developer-api/redis/backup/list_backup.md): This endpoint lists all backups for a Redis database.
- [Restore Backup](https://upstash.com/docs/devops/developer-api/redis/backup/restore_backup.md): This endpoint restores data from an existing backup.
- [Change Database Plan](https://upstash.com/docs/devops/developer-api/redis/change_plan.md): This endpoint changes the plan of a Redis database.
- [Create Redis Database](https://upstash.com/docs/devops/developer-api/redis/create_database_global.md): This endpoint creates a new Redis database.
- [Delete Database](https://upstash.com/docs/devops/developer-api/redis/delete_database.md): This endpoint deletes a database.
- [Disable Auto Upgrade](https://upstash.com/docs/devops/developer-api/redis/disable_autoscaling.md): This endpoint disables Auto Upgrade for given database.
- [Disable Eviction](https://upstash.com/docs/devops/developer-api/redis/disable_eviction.md): This endpoint disables eviction for given database.
- [Enable Auto Upgrade](https://upstash.com/docs/devops/developer-api/redis/enable_autoscaling.md): This endpoint enables Auto Upgrade for given database.
- [Enable Eviction](https://upstash.com/docs/devops/developer-api/redis/enable_eviction.md): This endpoint enables eviction for given database.
- [Enable TLS](https://upstash.com/docs/devops/developer-api/redis/enable_tls.md): This endpoint enables tls on a database.
- [Get Database](https://upstash.com/docs/devops/developer-api/redis/get_database.md): This endpoint gets details of a database.
- [Get Database Stats](https://upstash.com/docs/devops/developer-api/redis/get_database_stats.md): This endpoint gets detailed stats of a database.
- [List Databases](https://upstash.com/docs/devops/developer-api/redis/list_databases.md): This endpoint list all databases of user.
- [Move To Team](https://upstash.com/docs/devops/developer-api/redis/moveto_team.md): This endpoint moves database under a target team
- [Rename Database](https://upstash.com/docs/devops/developer-api/redis/rename_database.md): This endpoint renames a database.
- [Reset Password](https://upstash.com/docs/devops/developer-api/redis/reset_password.md): This endpoint updates the password of a database.
- [Update Database Budget](https://upstash.com/docs/devops/developer-api/redis/update_budget.md): This endpoint updates the monthly budget of a Redis database.
- [Update Regions](https://upstash.com/docs/devops/developer-api/redis/update_regions.md): Update the regions of a database
- [Add Team Member](https://upstash.com/docs/devops/developer-api/teams/add_team_member.md): This endpoint adds a new team member to the specified team.
- [Create Team](https://upstash.com/docs/devops/developer-api/teams/create_team.md): This endpoint creates a new team.
- [Delete Team](https://upstash.com/docs/devops/developer-api/teams/delete_team.md): This endpoint deletes a team.
- [Delete Team Member](https://upstash.com/docs/devops/developer-api/teams/delete_team_member.md): This endpoint deletes a team member from the specified team.
- [Get Team Members](https://upstash.com/docs/devops/developer-api/teams/get_team_members.md): This endpoint list all members of a team.
- [List Teams](https://upstash.com/docs/devops/developer-api/teams/list_teams.md): This endpoint lists all teams of user.
- [Create Index](https://upstash.com/docs/devops/developer-api/vector/create_index.md): This endpoint creates an index.
- [Delete Index](https://upstash.com/docs/devops/developer-api/vector/delete_index.md): This endpoint deletes an index.
- [Get Index](https://upstash.com/docs/devops/developer-api/vector/get_index.md): This endpoint returns the data associated to a index.
- [List Indices](https://upstash.com/docs/devops/developer-api/vector/list_indices.md): This endpoint returns the data related to all indices of an account as a list.
- [Rename Index](https://upstash.com/docs/devops/developer-api/vector/rename_index.md): This endpoint is used to change the name of an index.
- [Reset Index Passwords](https://upstash.com/docs/devops/developer-api/vector/reset_index_passwords.md): This endpoint is used to reset regular and readonly tokens of an index.
- [Set Index Plan](https://upstash.com/docs/devops/developer-api/vector/set_index_plan.md): This endpoint is used to change the plan of an index.
- [Transfer Index](https://upstash.com/docs/devops/developer-api/vector/transfer_index.md): This endpoint is used to transfer an index to another team.  Transferring to a personal account is not supported. However, transferring an index from a personal account to a team is allowed.
- [Overview](https://upstash.com/docs/devops/pulumi/overview.md)
- [Terraform](https://upstash.com/docs/devops/terraform.md)
- [upstash_qstash_endpoint_data](https://upstash.com/docs/devops/terraform/data_sources/upstash_qstash_endpoint_data.md)
- [upstash_qstash_schedule_data](https://upstash.com/docs/devops/terraform/data_sources/upstash_qstash_schedule_data.md)
- [upstash_qstash_topic_data](https://upstash.com/docs/devops/terraform/data_sources/upstash_qstash_topic_data.md)
- [upstash_redis_database_data](https://upstash.com/docs/devops/terraform/data_sources/upstash_redis_database_data.md)
- [upstash_team_data](https://upstash.com/docs/devops/terraform/data_sources/upstash_team_data.md)
- [Overview](https://upstash.com/docs/devops/terraform/overview.md)
- [upstash_qstash_endpoint](https://upstash.com/docs/devops/terraform/resources/upstash_qstash_endpoint.md): Create and manage QStash endpoints.
- [upstash_qstash_schedule](https://upstash.com/docs/devops/terraform/resources/upstash_qstash_schedule.md): Create and manage QStash schedules.
- [upstash_qstash_topic](https://upstash.com/docs/devops/terraform/resources/upstash_qstash_topic.md): Create and manage QStash topics
- [upstash_redis_database](https://upstash.com/docs/devops/terraform/resources/upstash_redis_database.md): Create and manage Upstash Redis databases.
- [upstash_team](https://upstash.com/docs/devops/terraform/resources/upstash_team.md): Create and manage teams on Upstash.
- [Bg color codes](https://upstash.com/docs/img/bg-color-codes.md)
- [Get Started](https://upstash.com/docs/introduction.md): Serverless data and messaging for developers: Redis, Vector, QStash, Workflow, Search, and Box, with SDKs, integrations, and a full-featured console.
- [Bulk Delete DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-delete-dlq-messages.md): Delete multiple messages from the DLQ
- [Bulk Retry DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/bulk-retry-dlq-messages.md): Retry delivery of multiple messages from the DLQ
- [Delete a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/delete-a-dlq-message.md): Manually remove a message from the DLQ
- [Get a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/get-a-dlq-message.md): Get a specific message from the DLQ
- [List DLQ messages](https://upstash.com/docs/qstash/api-reference/dlq/list-dlq-messages.md): List and paginate through all messages currently in the DLQ
- [Retry a DLQ message](https://upstash.com/docs/qstash/api-reference/dlq/retry-a-dlq-message.md): Retry delivery of a message from the DLQ
- [Get Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/get-flow-control-key.md): Get details of a specific Flow Control key
- [Get Global Parallelism](https://upstash.com/docs/qstash/api-reference/flow-control/get-global-parallelism.md): Returns the current global parallelism usage across all flow control keys
- [List Flow Control Keys](https://upstash.com/docs/qstash/api-reference/flow-control/list-flow-control-keys.md): List all Flow Control keys
- [Pause Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/pause-flow-control-key.md): Pauses the delivery of messages associated with a specific flow-control key.
- [Pin Configuration for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/pin-configuration-for-flow-control-key.md): Pins a processing configuration for a specific flow-control key.
- [Reset Rate for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/reset-rate-for-flow-control-key.md): Resets the rate configuration state for a specific flow-control key.
- [Resume Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/resume-flow-control-key.md): Resumes the delivery of messages associated with a specific flow-control key.
- [Unpin Configuration for Flow Control Key](https://upstash.com/docs/qstash/api-reference/flow-control/unpin-configuration-for-flow-control-key.md): Removes the pinned configuration for a specific flow-control key.
- [List Logs](https://upstash.com/docs/qstash/api-reference/logs/list-logs.md): Paginate through logs of published messages
- [Batch Messages](https://upstash.com/docs/qstash/api-reference/messages/batch-messages.md): Send multiple messages in a single request
- [Bulk Cancel Messages](https://upstash.com/docs/qstash/api-reference/messages/bulk-cancel-messages.md): Delete all pending messages
- [Cancel a Message](https://upstash.com/docs/qstash/api-reference/messages/cancel-a-message.md): Cancel a pending message
- [Enqueue a Message](https://upstash.com/docs/qstash/api-reference/messages/enqueue-a-message.md): Enqueue a message to the specified queue
- [Get a Message](https://upstash.com/docs/qstash/api-reference/messages/get-a-message.md): Retrieve details of a specific message
- [Publish a Message](https://upstash.com/docs/qstash/api-reference/messages/publish-a-message.md): Publish a message to the specified destination
- [Delete a queue](https://upstash.com/docs/qstash/api-reference/queues/delete-a-queue.md): Deletes a queue
- [Get a Queue](https://upstash.com/docs/qstash/api-reference/queues/get-a-queue.md): Get details of a specific queue
- [List Queues](https://upstash.com/docs/qstash/api-reference/queues/list-queues.md): List all your queues
- [Pause Queue](https://upstash.com/docs/qstash/api-reference/queues/pause-queue.md): Pause a queue to stop the delivery of enqueued messages
- [Resume Queue](https://upstash.com/docs/qstash/api-reference/queues/resume-queue.md): Resumes a queue to starts the delivery of enqueued messages
- [Upsert a Queue](https://upstash.com/docs/qstash/api-reference/queues/upsert-a-queue.md): Updates or creates a queue
- [Create a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/create-a-schedule.md): Create a schedule to send messages periodically
- [Delete a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/delete-a-schedule.md): Delete a schedule
- [Get a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/get-a-schedule.md): Get details of a specific schedule
- [List schedules](https://upstash.com/docs/qstash/api-reference/schedules/list-schedules.md): List all schedules
- [Pause a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/pause-a-schedule.md): Pause a Schedule
- [Resume a Schedule](https://upstash.com/docs/qstash/api-reference/schedules/resume-a-schedule.md): Resume a paused Schedule
- [Get Signing Keys](https://upstash.com/docs/qstash/api-reference/signing-keys/get-signing-keys.md): Retrieve your current and next signing keys
- [Rotate Signing Keys](https://upstash.com/docs/qstash/api-reference/signing-keys/rotate-signing-keys.md): Rotate your signing keys
- [Delete a URL Group](https://upstash.com/docs/qstash/api-reference/url-groups/delete-a-url-group.md): Delete a topic and all its endpoints
- [Get a URL Group](https://upstash.com/docs/qstash/api-reference/url-groups/get-a-url-group.md): Retrieve details of a specific URL Group
- [List URL Groups](https://upstash.com/docs/qstash/api-reference/url-groups/list-url-groups.md): List all your URL Groups
- [Remove Endpoints](https://upstash.com/docs/qstash/api-reference/url-groups/remove-endpoints.md): Remove one or more endpoints from a URL Group
- [Upsert URL Group and Endpoint](https://upstash.com/docs/qstash/api-reference/url-groups/upsert-url-group-and-endpoint.md): Add an endpoint to a URL Group
- [API Rate Limit Response](https://upstash.com/docs/qstash/api/api-ratelimiting.md): This page documents the rate limiting behavior of our API and explains how to handle different types of rate limit errors.
- [Authentication](https://upstash.com/docs/qstash/api/authentication.md): Authentication for the QStash API
- [At-Least-Once Delivery](https://upstash.com/docs/qstash/features/at-least-once.md)
- [Background Jobs](https://upstash.com/docs/qstash/features/background-jobs.md)
- [Batching](https://upstash.com/docs/qstash/features/batch.md)
- [Callbacks](https://upstash.com/docs/qstash/features/callbacks.md)
- [Deduplication](https://upstash.com/docs/qstash/features/deduplication.md)
- [Delay](https://upstash.com/docs/qstash/features/delay.md)
- [Dead Letter Queues](https://upstash.com/docs/qstash/features/dlq.md)
- [Flow Control](https://upstash.com/docs/qstash/features/flowcontrol.md)
- [Queues](https://upstash.com/docs/qstash/features/queues.md)
- [Retry](https://upstash.com/docs/qstash/features/retry.md)
- [Schedules](https://upstash.com/docs/qstash/features/schedules.md)
- [Security](https://upstash.com/docs/qstash/features/security.md)
- [URL Groups](https://upstash.com/docs/qstash/features/url-groups.md)
- [Debug Logs](https://upstash.com/docs/qstash/howto/debug-logs.md)
- [Delete Schedules](https://upstash.com/docs/qstash/howto/delete-schedule.md)
- [Handling Failures](https://upstash.com/docs/qstash/howto/handling-failures.md)
- [Local Development](https://upstash.com/docs/qstash/howto/local-development.md)
- [Local Tunnel](https://upstash.com/docs/qstash/howto/local-tunnel.md)
- [Select a Region](https://upstash.com/docs/qstash/howto/multi-region.md)
- [Publish Messages](https://upstash.com/docs/qstash/howto/publishing.md)
- [Read-only Token](https://upstash.com/docs/qstash/howto/readonly-token.md)
- [Receiving Messages](https://upstash.com/docs/qstash/howto/receiving.md): What do we send to your API?
- [Redact Private Data](https://upstash.com/docs/qstash/howto/redact-fields.md): How to redact private data in your messages
- [Reset Token](https://upstash.com/docs/qstash/howto/reset-token.md)
- [Roll Your Signing Keys](https://upstash.com/docs/qstash/howto/roll-signing-keys.md)
- [Verify Signatures](https://upstash.com/docs/qstash/howto/signature.md)
- [Create URL Groups and Endpoints](https://upstash.com/docs/qstash/howto/url-group-endpoint.md)
- [Use as Webhook Receiver](https://upstash.com/docs/qstash/howto/webhook.md)
- [LLM with Anthropic](https://upstash.com/docs/qstash/integrations/anthropic.md)
- [Datadog - Upstash QStash Integration](https://upstash.com/docs/qstash/integrations/datadog.md)
- [LLM - OpenAI](https://upstash.com/docs/qstash/integrations/llm.md)
- [n8n with QStash](https://upstash.com/docs/qstash/integrations/n8n.md)
- [Pipedream](https://upstash.com/docs/qstash/integrations/pipedream.md): Build and run workflows with 1000s of open source triggers and actions across 900+ apps.
- [Prometheus - Upstash QStash Integration](https://upstash.com/docs/qstash/integrations/prometheus.md)
- [Email - Resend](https://upstash.com/docs/qstash/integrations/resend.md)
- [Development Server License Agreement](https://upstash.com/docs/qstash/misc/license.md)
- [API Examples](https://upstash.com/docs/qstash/overall/apiexamples.md)
- [Changelog](https://upstash.com/docs/qstash/overall/changelog.md)
- [Compare](https://upstash.com/docs/qstash/overall/compare.md)
- [Prod Pack & Enterprise](https://upstash.com/docs/qstash/overall/enterprise.md)
- [Getting Started](https://upstash.com/docs/qstash/overall/getstarted.md)
- [llms.txt](https://upstash.com/docs/qstash/overall/llms-txt.md)
- [Pricing & Limits](https://upstash.com/docs/qstash/overall/pricing.md)
- [Roadmap](https://upstash.com/docs/qstash/overall/roadmap.md)
- [Use Cases](https://upstash.com/docs/qstash/overall/usecases.md)
- [AWS Lambda (Node)](https://upstash.com/docs/qstash/quickstarts/aws-lambda/nodejs.md)
- [AWS Lambda (Python)](https://upstash.com/docs/qstash/quickstarts/aws-lambda/python.md)
- [Cloudflare Workers](https://upstash.com/docs/qstash/quickstarts/cloudflare-workers.md)
- [Deno Deploy](https://upstash.com/docs/qstash/quickstarts/deno-deploy.md)
- [Golang](https://upstash.com/docs/qstash/quickstarts/fly-io/go.md)
- [Python on Vercel](https://upstash.com/docs/qstash/quickstarts/python-vercel.md)
- [Next.js](https://upstash.com/docs/qstash/quickstarts/vercel-nextjs.md)
- [Periodic Data Updates](https://upstash.com/docs/qstash/recipes/periodic-data-updates.md)
- [DLQ](https://upstash.com/docs/qstash/sdks/py/examples/dlq.md)
- [Events](https://upstash.com/docs/qstash/sdks/py/examples/events.md)
- [Flow Control](https://upstash.com/docs/qstash/sdks/py/examples/flow-control.md)
- [Keys](https://upstash.com/docs/qstash/sdks/py/examples/keys.md)
- [Messages](https://upstash.com/docs/qstash/sdks/py/examples/messages.md)
- [Overview](https://upstash.com/docs/qstash/sdks/py/examples/overview.md)
- [Publish](https://upstash.com/docs/qstash/sdks/py/examples/publish.md)
- [Queues](https://upstash.com/docs/qstash/sdks/py/examples/queues.md)
- [Receiver](https://upstash.com/docs/qstash/sdks/py/examples/receiver.md)
- [Schedules](https://upstash.com/docs/qstash/sdks/py/examples/schedules.md)
- [URL Groups](https://upstash.com/docs/qstash/sdks/py/examples/url-groups.md)
- [Getting Started](https://upstash.com/docs/qstash/sdks/py/gettingstarted.md)
- [Overview](https://upstash.com/docs/qstash/sdks/py/overview.md)
- [DLQ](https://upstash.com/docs/qstash/sdks/ts/examples/dlq.md)
- [Flow Control](https://upstash.com/docs/qstash/sdks/ts/examples/flow-control.md)
- [Logs](https://upstash.com/docs/qstash/sdks/ts/examples/logs.md)
- [Messages](https://upstash.com/docs/qstash/sdks/ts/examples/messages.md)
- [Overview](https://upstash.com/docs/qstash/sdks/ts/examples/overview.md)
- [Publish](https://upstash.com/docs/qstash/sdks/ts/examples/publish.md)
- [Queues](https://upstash.com/docs/qstash/sdks/ts/examples/queues.md)
- [Receiver](https://upstash.com/docs/qstash/sdks/ts/examples/receiver.md)
- [Schedules](https://upstash.com/docs/qstash/sdks/ts/examples/schedules.md)
- [URL Groups](https://upstash.com/docs/qstash/sdks/ts/examples/url-groups.md)
- [Getting Started](https://upstash.com/docs/qstash/sdks/ts/gettingstarted.md)
- [Overview](https://upstash.com/docs/qstash/sdks/ts/overview.md)
- [Channels](https://upstash.com/docs/realtime/features/channels.md)
- [Client-Side Usage](https://upstash.com/docs/realtime/features/client-side.md)
- [History](https://upstash.com/docs/realtime/features/history.md)
- [Authentication](https://upstash.com/docs/realtime/features/middleware.md)
- [Server-Side Usage](https://upstash.com/docs/realtime/features/server-side.md)
- [Deployment](https://upstash.com/docs/realtime/features/serverless.md)
- [Pricing](https://upstash.com/docs/realtime/overall/pricing.md)
- [Quickstart](https://upstash.com/docs/realtime/overall/quickstart.md)
- [BITCOUNT](https://upstash.com/docs/redis/commands/bitmap/bitcount.md): Count set bits in a string.
- [BITFIELD](https://upstash.com/docs/redis/commands/bitmap/bitfield.md): Perform arbitrary bitfield operations.
- [BITFIELD_RO](https://upstash.com/docs/redis/commands/bitmap/bitfield-ro.md): Read bitfield values.
- [BITOP](https://upstash.com/docs/redis/commands/bitmap/bitop.md): Perform bitwise operations between strings.
- [BITPOS](https://upstash.com/docs/redis/commands/bitmap/bitpos.md): Find first bit set or clear in a string.
- [GETBIT](https://upstash.com/docs/redis/commands/bitmap/getbit.md): Get the bit value at offset.
- [Bitmap commands](https://upstash.com/docs/redis/commands/bitmap/overview.md): Commands for manipulating individual bits and bit fields in string values.
- [SETBIT](https://upstash.com/docs/redis/commands/bitmap/setbit.md): Set or clear the bit at offset.
- [AUTH](https://upstash.com/docs/redis/commands/connection/auth.md): Authenticate to the server.
- [CLIENT GETNAME](https://upstash.com/docs/redis/commands/connection/client-getname.md): Get the current connection name.
- [CLIENT ID](https://upstash.com/docs/redis/commands/connection/client-id.md): Get the current client ID.
- [CLIENT INFO](https://upstash.com/docs/redis/commands/connection/client-info.md): Get info about current connection.
- [CLIENT LIST](https://upstash.com/docs/redis/commands/connection/client-list.md): List all client connections.
- [CLIENT SETINFO](https://upstash.com/docs/redis/commands/connection/client-setinfo.md): Set client connection attributes.
- [CLIENT SETNAME](https://upstash.com/docs/redis/commands/connection/client-setname.md): Set the connection name.
- [ECHO](https://upstash.com/docs/redis/commands/connection/echo.md): Echo the given string.
- [HELLO](https://upstash.com/docs/redis/commands/connection/hello.md): Handshake with Redis protocol.
- [Connection commands](https://upstash.com/docs/redis/commands/connection/overview.md): Commands for authenticating, inspecting, and managing client connections.
- [PING](https://upstash.com/docs/redis/commands/connection/ping.md): Ping the server.
- [QUIT](https://upstash.com/docs/redis/commands/connection/quit.md): Close the connection.
- [RESET](https://upstash.com/docs/redis/commands/connection/reset.md): Reset the connection.
- [SELECT](https://upstash.com/docs/redis/commands/connection/select.md): Select the database by index.
- [FCALL](https://upstash.com/docs/redis/commands/functions/fcall.md): Call a function.
- [FCALL_RO](https://upstash.com/docs/redis/commands/functions/fcall-ro.md): Call a read-only function.
- [FUNCTION DELETE](https://upstash.com/docs/redis/commands/functions/function-delete.md): Delete a library.
- [FUNCTION FLUSH](https://upstash.com/docs/redis/commands/functions/function-flush.md): Delete all libraries.
- [FUNCTION KILL](https://upstash.com/docs/redis/commands/functions/function-kill.md): Kill a running function.
- [FUNCTION LIST](https://upstash.com/docs/redis/commands/functions/function-list.md): List all libraries.
- [FUNCTION LOAD](https://upstash.com/docs/redis/commands/functions/function-load.md): Load a library.
- [FUNCTION STATS](https://upstash.com/docs/redis/commands/functions/function-stats.md): Get function execution stats.
- [Functions commands](https://upstash.com/docs/redis/commands/functions/overview.md): Commands for loading, managing, and invoking Redis functions.
- [COPY](https://upstash.com/docs/redis/commands/generic/copy.md): Copy a key to another key.
- [DEL](https://upstash.com/docs/redis/commands/generic/del.md): Delete one or more keys.
- [DUMP](https://upstash.com/docs/redis/commands/generic/dump.md): Serialize a key's value.
- [EXISTS](https://upstash.com/docs/redis/commands/generic/exists.md): Check if keys exist.
- [EXPIRE](https://upstash.com/docs/redis/commands/generic/expire.md): Set a key's TTL in seconds.
- [EXPIREAT](https://upstash.com/docs/redis/commands/generic/expireat.md): Set expiry as Unix timestamp.
- [EXPIRETIME](https://upstash.com/docs/redis/commands/generic/expiretime.md): Get expiry as Unix timestamp.
- [KEYS](https://upstash.com/docs/redis/commands/generic/keys.md): Find keys matching a pattern.
- [MEMORY USAGE](https://upstash.com/docs/redis/commands/generic/memory-usage.md): Estimate memory used by a key.
- [Generic commands](https://upstash.com/docs/redis/commands/generic/overview.md): Commands for managing keys, expiration, serialization, and database-wide key operations.
- [PERSIST](https://upstash.com/docs/redis/commands/generic/persist.md): Remove the expiration from a key.
- [PEXPIRE](https://upstash.com/docs/redis/commands/generic/pexpire.md): Set a key's TTL in milliseconds.
- [PEXPIREAT](https://upstash.com/docs/redis/commands/generic/pexpireat.md): Set expiry as Unix ms timestamp.
- [PEXPIRETIME](https://upstash.com/docs/redis/commands/generic/pexpiretime.md): Get expiry as Unix ms timestamp.
- [PTTL](https://upstash.com/docs/redis/commands/generic/pttl.md): Get TTL in milliseconds.
- [RANDOMKEY](https://upstash.com/docs/redis/commands/generic/randomkey.md): Return a random key.
- [RENAME](https://upstash.com/docs/redis/commands/generic/rename.md): Rename a key.
- [RENAMENX](https://upstash.com/docs/redis/commands/generic/renamenx.md): Rename a key if new key doesn't exist.
- [RESTORE](https://upstash.com/docs/redis/commands/generic/restore.md): Deserialize and restore a key.
- [SCAN](https://upstash.com/docs/redis/commands/generic/scan.md): Incrementally iterate keys.
- [TOUCH](https://upstash.com/docs/redis/commands/generic/touch.md): Update last access time of keys.
- [TTL](https://upstash.com/docs/redis/commands/generic/ttl.md): Get TTL in seconds.
- [TYPE](https://upstash.com/docs/redis/commands/generic/type.md): Get the type of a key.
- [UNLINK](https://upstash.com/docs/redis/commands/generic/unlink.md): Delete keys asynchronously.
- [WAIT](https://upstash.com/docs/redis/commands/generic/wait.md): Wait for replica acknowledgements.
- [WAITAOF](https://upstash.com/docs/redis/commands/generic/waitaof.md): Wait for local and replica persistence.
- [GEOADD](https://upstash.com/docs/redis/commands/geo/geoadd.md): Add geospatial items.
- [GEODIST](https://upstash.com/docs/redis/commands/geo/geodist.md): Get distance between two members.
- [GEOHASH](https://upstash.com/docs/redis/commands/geo/geohash.md): Get geohash strings for members.
- [GEOPOS](https://upstash.com/docs/redis/commands/geo/geopos.md): Get coordinates of members.
- [GEORADIUS](https://upstash.com/docs/redis/commands/geo/georadius.md): Find members within a radius of a point.
- [GEORADIUS_RO](https://upstash.com/docs/redis/commands/geo/georadius-ro.md): Find members within a radius of a point.
- [GEORADIUSBYMEMBER](https://upstash.com/docs/redis/commands/geo/georadiusbymember.md): Find members within a radius of another member.
- [GEORADIUSBYMEMBER_RO](https://upstash.com/docs/redis/commands/geo/georadiusbymember-ro.md): Find members within a radius of another member.
- [GEOSEARCH](https://upstash.com/docs/redis/commands/geo/geosearch.md): Search for members in an area.
- [GEOSEARCHSTORE](https://upstash.com/docs/redis/commands/geo/geosearchstore.md): Store geosearch results.
- [Geo commands](https://upstash.com/docs/redis/commands/geo/overview.md): Commands for storing and querying geospatial data.
- [HDEL](https://upstash.com/docs/redis/commands/hash/hdel.md): Delete one or more hash fields.
- [HEXISTS](https://upstash.com/docs/redis/commands/hash/hexists.md): Check if a hash field exists.
- [HEXPIRE](https://upstash.com/docs/redis/commands/hash/hexpire.md): Set field TTL in seconds.
- [HEXPIREAT](https://upstash.com/docs/redis/commands/hash/hexpireat.md): Set field expiry as timestamp.
- [HEXPIRETIME](https://upstash.com/docs/redis/commands/hash/hexpiretime.md): Get field expiry as timestamp.
- [HGET](https://upstash.com/docs/redis/commands/hash/hget.md): Get the value of a hash field.
- [HGETALL](https://upstash.com/docs/redis/commands/hash/hgetall.md): Get all fields and values.
- [HGETDEL](https://upstash.com/docs/redis/commands/hash/hgetdel.md): Get and delete hash fields.
- [HGETEX](https://upstash.com/docs/redis/commands/hash/hgetex.md): Get fields and set their expiry.
- [HINCRBY](https://upstash.com/docs/redis/commands/hash/hincrby.md): Increment integer value of a field.
- [HINCRBYFLOAT](https://upstash.com/docs/redis/commands/hash/hincrbyfloat.md): Increment float value of a field.
- [HKEYS](https://upstash.com/docs/redis/commands/hash/hkeys.md): Get all fields in a hash.
- [HLEN](https://upstash.com/docs/redis/commands/hash/hlen.md): Get number of fields in a hash.
- [HMGET](https://upstash.com/docs/redis/commands/hash/hmget.md): Get values of multiple fields.
- [HMSET](https://upstash.com/docs/redis/commands/hash/hmset.md): Set multiple hash fields.
- [HPERSIST](https://upstash.com/docs/redis/commands/hash/hpersist.md): Remove field expiration.
- [HPEXPIRE](https://upstash.com/docs/redis/commands/hash/hpexpire.md): Set field TTL in milliseconds.
- [HPEXPIREAT](https://upstash.com/docs/redis/commands/hash/hpexpireat.md): Set field expiry as ms timestamp.
- [HPEXPIRETIME](https://upstash.com/docs/redis/commands/hash/hpexpiretime.md): Get field expiry as ms timestamp.
- [HPTTL](https://upstash.com/docs/redis/commands/hash/hpttl.md): Get field TTL in milliseconds.
- [HRANDFIELD](https://upstash.com/docs/redis/commands/hash/hrandfield.md): Get random fields from a hash.
- [HSCAN](https://upstash.com/docs/redis/commands/hash/hscan.md): Incrementally iterate hash fields.
- [HSET](https://upstash.com/docs/redis/commands/hash/hset.md): Set hash field values.
- [HSETEX](https://upstash.com/docs/redis/commands/hash/hsetex.md): Set fields with expiration.
- [HSETNX](https://upstash.com/docs/redis/commands/hash/hsetnx.md): Set field only if it doesn't exist.
- [HSTRLEN](https://upstash.com/docs/redis/commands/hash/hstrlen.md): Get length of a field's value.
- [HTTL](https://upstash.com/docs/redis/commands/hash/httl.md): Get field TTL in seconds.
- [HVALS](https://upstash.com/docs/redis/commands/hash/hvals.md): Get all values in a hash.
- [Hash commands](https://upstash.com/docs/redis/commands/hash/overview.md): Commands for storing and manipulating field-value collections.
- [HyperLogLog commands](https://upstash.com/docs/redis/commands/hyperloglog/overview.md): Commands for probabilistic cardinality estimation.
- [PFADD](https://upstash.com/docs/redis/commands/hyperloglog/pfadd.md): Add elements to HyperLogLog.
- [PFCOUNT](https://upstash.com/docs/redis/commands/hyperloglog/pfcount.md): Get estimated cardinality.
- [PFMERGE](https://upstash.com/docs/redis/commands/hyperloglog/pfmerge.md): Merge multiple HyperLogLogs.
- [JSON.ARRAPPEND](https://upstash.com/docs/redis/commands/json/json-arrappend.md): Append values to JSON array.
- [JSON.ARRINDEX](https://upstash.com/docs/redis/commands/json/json-arrindex.md): Find index of value in array.
- [JSON.ARRINSERT](https://upstash.com/docs/redis/commands/json/json-arrinsert.md): Insert values into JSON array.
- [JSON.ARRLEN](https://upstash.com/docs/redis/commands/json/json-arrlen.md): Get JSON array length.
- [JSON.ARRPOP](https://upstash.com/docs/redis/commands/json/json-arrpop.md): Pop value from JSON array.
- [JSON.ARRTRIM](https://upstash.com/docs/redis/commands/json/json-arrtrim.md): Trim JSON array to range.
- [JSON.CLEAR](https://upstash.com/docs/redis/commands/json/json-clear.md): Clear JSON values.
- [JSON.DEBUG](https://upstash.com/docs/redis/commands/json/json-debug.md): Inspect JSON memory usage.
- [JSON.DEL](https://upstash.com/docs/redis/commands/json/json-del.md): Delete JSON values.
- [JSON.FORGET](https://upstash.com/docs/redis/commands/json/json-forget.md): Delete JSON values (alias of JSON.DEL).
- [JSON.GET](https://upstash.com/docs/redis/commands/json/json-get.md): Get JSON values.
- [JSON.MERGE](https://upstash.com/docs/redis/commands/json/json-merge.md): Merge JSON values.
- [JSON.MGET](https://upstash.com/docs/redis/commands/json/json-mget.md): Get values from multiple keys.
- [JSON.MSET](https://upstash.com/docs/redis/commands/json/json-mset.md): Set values in multiple keys.
- [JSON.NUMINCRBY](https://upstash.com/docs/redis/commands/json/json-numincrby.md): Increment JSON number.
- [JSON.NUMMULTBY](https://upstash.com/docs/redis/commands/json/json-nummultby.md): Multiply JSON number.
- [JSON.OBJKEYS](https://upstash.com/docs/redis/commands/json/json-objkeys.md): Get JSON object keys.
- [JSON.OBJLEN](https://upstash.com/docs/redis/commands/json/json-objlen.md): Get JSON object size.
- [JSON.RESP](https://upstash.com/docs/redis/commands/json/json-resp.md): Get JSON in RESP format.
- [JSON.SET](https://upstash.com/docs/redis/commands/json/json-set.md): Set JSON value.
- [JSON.STRAPPEND](https://upstash.com/docs/redis/commands/json/json-strappend.md): Append to JSON string.
- [JSON.STRLEN](https://upstash.com/docs/redis/commands/json/json-strlen.md): Get JSON string length.
- [JSON.TOGGLE](https://upstash.com/docs/redis/commands/json/json-toggle.md): Toggle JSON boolean.
- [JSON.TYPE](https://upstash.com/docs/redis/commands/json/json-type.md): Get JSON value type.
- [JSON commands](https://upstash.com/docs/redis/commands/json/overview.md): Commands for storing and manipulating JSON values.
- [BLMOVE](https://upstash.com/docs/redis/commands/list/blmove.md): Move an element between lists, blocking until one arrives.
- [BLMPOP](https://upstash.com/docs/redis/commands/list/blmpop.md): Pop from the first non-empty list, blocking until one arrives.
- [BLPOP](https://upstash.com/docs/redis/commands/list/blpop.md): Pop from the head of a list, blocking until an element arrives.
- [BRPOP](https://upstash.com/docs/redis/commands/list/brpop.md): Pop from the tail of a list, blocking until an element arrives.
- [BRPOPLPUSH](https://upstash.com/docs/redis/commands/list/brpoplpush.md): Pop from a list's tail and push it to another, blocking until an element arrives.
- [LINDEX](https://upstash.com/docs/redis/commands/list/lindex.md): Get element by index.
- [LINSERT](https://upstash.com/docs/redis/commands/list/linsert.md): Insert before or after pivot.
- [LLEN](https://upstash.com/docs/redis/commands/list/llen.md): Get list length.
- [LMOVE](https://upstash.com/docs/redis/commands/list/lmove.md): Move element between lists.
- [LMPOP](https://upstash.com/docs/redis/commands/list/lmpop.md): Pop from the first non-empty list.
- [LPOP](https://upstash.com/docs/redis/commands/list/lpop.md): Pop from list head.
- [LPOS](https://upstash.com/docs/redis/commands/list/lpos.md): Find the position of an element.
- [LPUSH](https://upstash.com/docs/redis/commands/list/lpush.md): Push to list head.
- [LPUSHX](https://upstash.com/docs/redis/commands/list/lpushx.md): Push to head if list exists.
- [LRANGE](https://upstash.com/docs/redis/commands/list/lrange.md): Get range of elements.
- [LREM](https://upstash.com/docs/redis/commands/list/lrem.md): Remove elements by value.
- [LSET](https://upstash.com/docs/redis/commands/list/lset.md): Set element at index.
- [LTRIM](https://upstash.com/docs/redis/commands/list/ltrim.md): Trim list to range.
- [List commands](https://upstash.com/docs/redis/commands/list/overview.md): Commands for storing and manipulating ordered collections.
- [RPOP](https://upstash.com/docs/redis/commands/list/rpop.md): Pop from list tail.
- [RPOPLPUSH](https://upstash.com/docs/redis/commands/list/rpoplpush.md): Pop from tail and push to head.
- [RPUSH](https://upstash.com/docs/redis/commands/list/rpush.md): Push to list tail.
- [RPUSHX](https://upstash.com/docs/redis/commands/list/rpushx.md): Push to tail if list exists.
- [Redis command reference](https://upstash.com/docs/redis/commands/overview.md): Browse the Redis commands supported by Upstash, organized by category.
- [Pub/Sub commands](https://upstash.com/docs/redis/commands/pub-sub/overview.md): Commands for publishing messages and managing channel subscriptions.
- [PSUBSCRIBE](https://upstash.com/docs/redis/commands/pub-sub/psubscribe.md): Subscribe to pattern channels.
- [PUBLISH](https://upstash.com/docs/redis/commands/pub-sub/publish.md): Publish message to channel.
- [PUBSUB](https://upstash.com/docs/redis/commands/pub-sub/pubsub.md): Inspect pub/sub state.
- [PUNSUBSCRIBE](https://upstash.com/docs/redis/commands/pub-sub/punsubscribe.md): Unsubscribe from patterns.
- [SUBSCRIBE](https://upstash.com/docs/redis/commands/pub-sub/subscribe.md): Subscribe to channels.
- [UNSUBSCRIBE](https://upstash.com/docs/redis/commands/pub-sub/unsubscribe.md): Unsubscribe from channels.
- [EVAL](https://upstash.com/docs/redis/commands/scripting/eval.md): Execute a Lua script.
- [EVAL_RO](https://upstash.com/docs/redis/commands/scripting/eval-ro.md): Execute read-only Lua script.
- [EVALSHA](https://upstash.com/docs/redis/commands/scripting/evalsha.md): Execute cached Lua script by SHA.
- [EVALSHA_RO](https://upstash.com/docs/redis/commands/scripting/evalsha-ro.md): Run a cached script that does not write.
- [Scripting commands](https://upstash.com/docs/redis/commands/scripting/overview.md): Commands for loading and executing Lua scripts.
- [SCRIPT EXISTS](https://upstash.com/docs/redis/commands/scripting/script-exists.md): Check if scripts exist in cache.
- [SCRIPT FLUSH](https://upstash.com/docs/redis/commands/scripting/script-flush.md): Clear the script cache.
- [SCRIPT KILL](https://upstash.com/docs/redis/commands/scripting/script-kill.md): Stop a running read-only script.
- [SCRIPT LOAD](https://upstash.com/docs/redis/commands/scripting/script-load.md): Load script into cache.
- [Search commands](https://upstash.com/docs/redis/commands/search/overview.md): Commands for creating, querying, and managing Upstash Redis Search indexes.
- [SEARCH.AGGREGATE](https://upstash.com/docs/redis/commands/search/search-aggregate.md): Compute analytics over matching documents.
- [SEARCH.ALIASADD](https://upstash.com/docs/redis/commands/search/search-aliasadd.md): Create or update a search index alias.
- [SEARCH.ALIASDEL](https://upstash.com/docs/redis/commands/search/search-aliasdel.md): Delete a search index alias.
- [SEARCH.COUNT](https://upstash.com/docs/redis/commands/search/search-count.md): Count documents matching a query.
- [SEARCH.CREATE](https://upstash.com/docs/redis/commands/search/search-create.md): Create a search index.
- [SEARCH.DESCRIBE](https://upstash.com/docs/redis/commands/search/search-describe.md): Return metadata about a search index.
- [SEARCH.DROP](https://upstash.com/docs/redis/commands/search/search-drop.md): Drop a search index without deleting its keys.
- [SEARCH.LISTALIASES](https://upstash.com/docs/redis/commands/search/search-listaliases.md): List search index aliases.
- [SEARCH.LISTINDEXES](https://upstash.com/docs/redis/commands/search/search-listindexes.md): List search indexes in the database.
- [SEARCH.QUERY](https://upstash.com/docs/redis/commands/search/search-query.md): Search documents with a JSON filter.
- [SEARCH.REINDEX](https://upstash.com/docs/redis/commands/search/search-reindex.md): Rebuild a search index from the current matching data.
- [SEARCH.WAITINDEXING](https://upstash.com/docs/redis/commands/search/search-waitindexing.md): Wait until pending index updates are visible.
- [ACL CAT](https://upstash.com/docs/redis/commands/server/acl-cat.md): List command categories.
- [ACL DELUSER](https://upstash.com/docs/redis/commands/server/acl-deluser.md): Delete one or more ACL users.
- [ACL GENPASS](https://upstash.com/docs/redis/commands/server/acl-genpass.md): Generate a cryptographically strong random password.
- [ACL GENTOKEN](https://upstash.com/docs/redis/commands/server/acl-gentoken.md): Generate a REST token that can be used as a SETUSER password.
- [ACL GETUSER](https://upstash.com/docs/redis/commands/server/acl-getuser.md): Get the user's details.
- [ACL LIST](https://upstash.com/docs/redis/commands/server/acl-list.md): Show users details in config file format.
- [ACL LOAD](https://upstash.com/docs/redis/commands/server/acl-load.md): Reload ACL definitions from the primary node.
- [ACL LOG](https://upstash.com/docs/redis/commands/server/acl-log.md): Show the ACL log entries.
- [ACL RESTTOKEN](https://upstash.com/docs/redis/commands/server/acl-resttoken.md): Generate a REST token for an existing user.
- [ACL SAVE](https://upstash.com/docs/redis/commands/server/acl-save.md): Push ACL definitions to replica nodes.
- [ACL SETUSER](https://upstash.com/docs/redis/commands/server/acl-setuser.md): Create or modify a user with the specified attributes.
- [ACL USERS](https://upstash.com/docs/redis/commands/server/acl-users.md): List all the registered usernames.
- [ACL WHOAMI](https://upstash.com/docs/redis/commands/server/acl-whoami.md): Return the current connection username.
- [COMMAND](https://upstash.com/docs/redis/commands/server/command.md): Get command metadata.
- [CONFIG GET](https://upstash.com/docs/redis/commands/server/config-get.md): Read runtime configuration.
- [CONFIG SET](https://upstash.com/docs/redis/commands/server/config-set.md): Change runtime configuration.
- [DBSIZE](https://upstash.com/docs/redis/commands/server/dbsize.md): Get number of keys in database.
- [FLUSHALL](https://upstash.com/docs/redis/commands/server/flushall.md): Delete all keys in all databases.
- [FLUSHDB](https://upstash.com/docs/redis/commands/server/flushdb.md): Delete all keys in current database.
- [INFO](https://upstash.com/docs/redis/commands/server/info.md): Get server statistics and information.
- [MONITOR](https://upstash.com/docs/redis/commands/server/monitor.md): Stream all commands received.
- [Server commands](https://upstash.com/docs/redis/commands/server/overview.md): Commands for inspecting and managing the Redis server.
- [TIME](https://upstash.com/docs/redis/commands/server/time.md): Get current server time.
- [Set commands](https://upstash.com/docs/redis/commands/set/overview.md): Commands for storing and manipulating unordered collections of unique members.
- [SADD](https://upstash.com/docs/redis/commands/set/sadd.md): Add members to a set.
- [SCARD](https://upstash.com/docs/redis/commands/set/scard.md): Get set cardinality.
- [SDIFF](https://upstash.com/docs/redis/commands/set/sdiff.md): Get set difference.
- [SDIFFSTORE](https://upstash.com/docs/redis/commands/set/sdiffstore.md): Store set difference.
- [SINTER](https://upstash.com/docs/redis/commands/set/sinter.md): Get set intersection.
- [SINTERCARD](https://upstash.com/docs/redis/commands/set/sintercard.md): Get intersection cardinality.
- [SINTERSTORE](https://upstash.com/docs/redis/commands/set/sinterstore.md): Store set intersection.
- [SISMEMBER](https://upstash.com/docs/redis/commands/set/sismember.md): Check if member exists in set.
- [SMEMBERS](https://upstash.com/docs/redis/commands/set/smembers.md): Get all set members.
- [SMISMEMBER](https://upstash.com/docs/redis/commands/set/smismember.md): Check membership of several values.
- [SMOVE](https://upstash.com/docs/redis/commands/set/smove.md): Move member between sets.
- [SPOP](https://upstash.com/docs/redis/commands/set/spop.md): Remove and return random members.
- [SRANDMEMBER](https://upstash.com/docs/redis/commands/set/srandmember.md): Get random members.
- [SREM](https://upstash.com/docs/redis/commands/set/srem.md): Remove members from a set.
- [SSCAN](https://upstash.com/docs/redis/commands/set/sscan.md): Incrementally iterate set members.
- [SUNION](https://upstash.com/docs/redis/commands/set/sunion.md): Get set union.
- [SUNIONSTORE](https://upstash.com/docs/redis/commands/set/sunionstore.md): Store set union.
- [BZMPOP](https://upstash.com/docs/redis/commands/sorted-set/bzmpop.md): Pop from the first non-empty sorted set, blocking until one arrives.
- [BZPOPMAX](https://upstash.com/docs/redis/commands/sorted-set/bzpopmax.md): Pop the highest-scoring member, blocking until one arrives.
- [BZPOPMIN](https://upstash.com/docs/redis/commands/sorted-set/bzpopmin.md): Pop the lowest-scoring member, blocking until one arrives.
- [Sorted Set commands](https://upstash.com/docs/redis/commands/sorted-set/overview.md): Commands for storing and manipulating scored collections.
- [ZADD](https://upstash.com/docs/redis/commands/sorted-set/zadd.md): Add members with scores.
- [ZCARD](https://upstash.com/docs/redis/commands/sorted-set/zcard.md): Get sorted set cardinality.
- [ZCOUNT](https://upstash.com/docs/redis/commands/sorted-set/zcount.md): Count members in score range.
- [ZDIFF](https://upstash.com/docs/redis/commands/sorted-set/zdiff.md): Get sorted set difference.
- [ZDIFFSTORE](https://upstash.com/docs/redis/commands/sorted-set/zdiffstore.md): Store sorted set difference.
- [ZINCRBY](https://upstash.com/docs/redis/commands/sorted-set/zincrby.md): Increment member's score.
- [ZINTER](https://upstash.com/docs/redis/commands/sorted-set/zinter.md): Get sorted set intersection.
- [ZINTERCARD](https://upstash.com/docs/redis/commands/sorted-set/zintercard.md): Get intersection cardinality.
- [ZINTERSTORE](https://upstash.com/docs/redis/commands/sorted-set/zinterstore.md): Store sorted set intersection.
- [ZLEXCOUNT](https://upstash.com/docs/redis/commands/sorted-set/zlexcount.md): Count members in lex range.
- [ZMPOP](https://upstash.com/docs/redis/commands/sorted-set/zmpop.md): Pop from the first non-empty sorted set.
- [ZMSCORE](https://upstash.com/docs/redis/commands/sorted-set/zmscore.md): Get scores of multiple members.
- [ZPOPMAX](https://upstash.com/docs/redis/commands/sorted-set/zpopmax.md): Pop members with highest scores.
- [ZPOPMIN](https://upstash.com/docs/redis/commands/sorted-set/zpopmin.md): Pop members with lowest scores.
- [ZRANDMEMBER](https://upstash.com/docs/redis/commands/sorted-set/zrandmember.md): Get random members.
- [ZRANGE](https://upstash.com/docs/redis/commands/sorted-set/zrange.md): Get members by index, score, or lex range.
- [ZRANGEBYLEX](https://upstash.com/docs/redis/commands/sorted-set/zrangebylex.md): Get members by lex range.
- [ZRANGEBYSCORE](https://upstash.com/docs/redis/commands/sorted-set/zrangebyscore.md): Get members by score range.
- [ZRANGESTORE](https://upstash.com/docs/redis/commands/sorted-set/zrangestore.md): Store the result of a range query.
- [ZRANK](https://upstash.com/docs/redis/commands/sorted-set/zrank.md): Get member's rank.
- [ZREM](https://upstash.com/docs/redis/commands/sorted-set/zrem.md): Remove members.
- [ZREMRANGEBYLEX](https://upstash.com/docs/redis/commands/sorted-set/zremrangebylex.md): Remove members by lex range.
- [ZREMRANGEBYRANK](https://upstash.com/docs/redis/commands/sorted-set/zremrangebyrank.md): Remove members by rank range.
- [ZREMRANGEBYSCORE](https://upstash.com/docs/redis/commands/sorted-set/zremrangebyscore.md): Remove members by score range.
- [ZREVRANGE](https://upstash.com/docs/redis/commands/sorted-set/zrevrange.md): Get members in reverse order.
- [ZREVRANGEBYLEX](https://upstash.com/docs/redis/commands/sorted-set/zrevrangebylex.md): List members in a lexicographic range, in reverse order.
- [ZREVRANGEBYSCORE](https://upstash.com/docs/redis/commands/sorted-set/zrevrangebyscore.md): List members in a score range, highest score first.
- [ZREVRANK](https://upstash.com/docs/redis/commands/sorted-set/zrevrank.md): Get member's reverse rank.
- [ZSCAN](https://upstash.com/docs/redis/commands/sorted-set/zscan.md): Incrementally iterate sorted set.
- [ZSCORE](https://upstash.com/docs/redis/commands/sorted-set/zscore.md): Get member's score.
- [ZUNION](https://upstash.com/docs/redis/commands/sorted-set/zunion.md): Get sorted set union.
- [ZUNIONSTORE](https://upstash.com/docs/redis/commands/sorted-set/zunionstore.md): Store sorted set union.
- [Streams commands](https://upstash.com/docs/redis/commands/streams/overview.md): Commands for append-only logs, consumer groups, and message processing.
- [XACK](https://upstash.com/docs/redis/commands/streams/xack.md): Acknowledge stream messages.
- [XACKDEL](https://upstash.com/docs/redis/commands/streams/xackdel.md): Acknowledge and delete messages.
- [XADD](https://upstash.com/docs/redis/commands/streams/xadd.md): Add entry to stream.
- [XAUTOCLAIM](https://upstash.com/docs/redis/commands/streams/xautoclaim.md): Auto-claim idle messages.
- [XCLAIM](https://upstash.com/docs/redis/commands/streams/xclaim.md): Claim pending messages.
- [XDEL](https://upstash.com/docs/redis/commands/streams/xdel.md): Delete stream entries.
- [XDELEX](https://upstash.com/docs/redis/commands/streams/xdelex.md): Delete entries with reference control.
- [XGROUP](https://upstash.com/docs/redis/commands/streams/xgroup.md): Manage consumer groups.
- [XINFO CONSUMERS](https://upstash.com/docs/redis/commands/streams/xinfo-consumers.md): List group consumers.
- [XINFO GROUPS](https://upstash.com/docs/redis/commands/streams/xinfo-groups.md): List stream groups.
- [XINFO STREAM](https://upstash.com/docs/redis/commands/streams/xinfo-stream.md): Get stream info.
- [XLEN](https://upstash.com/docs/redis/commands/streams/xlen.md): Get stream length.
- [XPENDING](https://upstash.com/docs/redis/commands/streams/xpending.md): Get pending messages info.
- [XRANGE](https://upstash.com/docs/redis/commands/streams/xrange.md): Get range of stream entries.
- [XREAD](https://upstash.com/docs/redis/commands/streams/xread.md): Read stream entries.
- [XREADGROUP](https://upstash.com/docs/redis/commands/streams/xreadgroup.md): Read as consumer group.
- [XREVRANGE](https://upstash.com/docs/redis/commands/streams/xrevrange.md): Get range in reverse order.
- [XTRIM](https://upstash.com/docs/redis/commands/streams/xtrim.md): Trim stream to max length.
- [APPEND](https://upstash.com/docs/redis/commands/string/append.md): Append value to a string.
- [DECR](https://upstash.com/docs/redis/commands/string/decr.md): Decrement integer value by 1.
- [DECRBY](https://upstash.com/docs/redis/commands/string/decrby.md): Decrement integer by amount.
- [DELEX](https://upstash.com/docs/redis/commands/string/delex.md): Delete a string when a condition matches.
- [DIGEST](https://upstash.com/docs/redis/commands/string/digest.md): Get the digest of a string value.
- [GET](https://upstash.com/docs/redis/commands/string/get.md): Get string value.
- [GETDEL](https://upstash.com/docs/redis/commands/string/getdel.md): Get value and delete key.
- [GETEX](https://upstash.com/docs/redis/commands/string/getex.md): Get value and set expiration.
- [GETRANGE](https://upstash.com/docs/redis/commands/string/getrange.md): Get substring of string.
- [GETSET](https://upstash.com/docs/redis/commands/string/getset.md): Set value and return old value.
- [INCR](https://upstash.com/docs/redis/commands/string/incr.md): Increment integer value by 1.
- [INCRBY](https://upstash.com/docs/redis/commands/string/incrby.md): Increment integer by amount.
- [INCRBYFLOAT](https://upstash.com/docs/redis/commands/string/incrbyfloat.md): Increment float by amount.
- [MGET](https://upstash.com/docs/redis/commands/string/mget.md): Get values of multiple keys.
- [MSET](https://upstash.com/docs/redis/commands/string/mset.md): Set multiple keys at once.
- [MSETNX](https://upstash.com/docs/redis/commands/string/msetnx.md): Set multiple keys if none exist.
- [String commands](https://upstash.com/docs/redis/commands/string/overview.md): Commands for storing and manipulating string values.
- [PSETEX](https://upstash.com/docs/redis/commands/string/psetex.md): Set value with ms expiration.
- [SET](https://upstash.com/docs/redis/commands/string/set.md): Set string value.
- [SETEX](https://upstash.com/docs/redis/commands/string/setex.md): Set value with expiration.
- [SETNX](https://upstash.com/docs/redis/commands/string/setnx.md): Set value if key doesn't exist.
- [SETRANGE](https://upstash.com/docs/redis/commands/string/setrange.md): Overwrite part of string.
- [STRLEN](https://upstash.com/docs/redis/commands/string/strlen.md): Get string length.
- [DISCARD](https://upstash.com/docs/redis/commands/transactions/discard.md): Discard queued commands.
- [EXEC](https://upstash.com/docs/redis/commands/transactions/exec.md): Execute queued commands.
- [MULTI](https://upstash.com/docs/redis/commands/transactions/multi.md): Start a transaction.
- [Transactions commands](https://upstash.com/docs/redis/commands/transactions/overview.md): Commands for grouping operations into atomic transactions.
- [UNWATCH](https://upstash.com/docs/redis/commands/transactions/unwatch.md): Unwatch all keys.
- [WATCH](https://upstash.com/docs/redis/commands/transactions/watch.md): Watch keys for changes.
- [Auto Upgrade](https://upstash.com/docs/redis/features/auto-upgrade.md)
- [Backup/Restore](https://upstash.com/docs/redis/features/backup.md)
- [Consistency](https://upstash.com/docs/redis/features/consistency.md)
- [Credential Protection](https://upstash.com/docs/redis/features/credential-protection.md)
- [Durable Storage](https://upstash.com/docs/redis/features/durability.md): This article explains the persistence provided by Upstash databases.
- [Eviction](https://upstash.com/docs/redis/features/eviction.md)
- [Global Database](https://upstash.com/docs/redis/features/globaldatabase.md)
- [Key-Based Locking](https://upstash.com/docs/redis/features/key-locking.md): Key-based locks for concurrent command execution
- [Replication](https://upstash.com/docs/redis/features/replication.md)
- [REST API](https://upstash.com/docs/redis/features/restapi.md): Access your Upstash Redis database over HTTP, from serverless and edge runtimes where TCP connections are restricted.
- [Security](https://upstash.com/docs/redis/features/security.md)
- [Compliance](https://upstash.com/docs/redis/help/compliance.md)
- [Frequently Asked Questions](https://upstash.com/docs/redis/help/faq.md)
- [Integration with Third Parties & Partnerships](https://upstash.com/docs/redis/help/integration.md)
- [Legal](https://upstash.com/docs/redis/help/legal.md)
- [Managing Healthcare Data](https://upstash.com/docs/redis/help/managing-healthcare-data.md)
- [Production Checklist](https://upstash.com/docs/redis/help/production-checklist.md)
- [Shared Responsibility Model](https://upstash.com/docs/redis/help/shared-responsibility-model.md)
- [Support & Contact Us](https://upstash.com/docs/redis/help/support.md)
- [Uptime Monitor](https://upstash.com/docs/redis/help/uptime.md)
- [Connect Your Client](https://upstash.com/docs/redis/howto/connect-client.md)
- [Connect with @upstash/redis](https://upstash.com/docs/redis/howto/connect-with-upstash-redis.md)
- [Datadog - Upstash Redis Integration](https://upstash.com/docs/redis/howto/datadog.md)
- [EMQX - Upstash Redis Integration](https://upstash.com/docs/redis/howto/emqxintegration.md)
- [Get Started with AWS Lambda](https://upstash.com/docs/redis/howto/getstartedawslambda.md)
- [Get Started with Cloudflare Workers](https://upstash.com/docs/redis/howto/getstartedcloudflareworkers.md)
- [Get Started with Google Cloud Functions](https://upstash.com/docs/redis/howto/getstartedgooglecloudfunctions.md)
- [Import/Export Data](https://upstash.com/docs/redis/howto/importexport.md)
- [ioredis note](https://upstash.com/docs/redis/howto/ioredisnote.md)
- [Use IP Allowlist](https://upstash.com/docs/redis/howto/ipallowlist.md)
- [Listen Keyspace Notifications](https://upstash.com/docs/redis/howto/keyspacenotifications.md)
- [Metrics and Charts](https://upstash.com/docs/redis/howto/metrics-and-charts.md)
- [Migrate Regional to Global Database](https://upstash.com/docs/redis/howto/migratefromregionaltoglobal.md)
- [Monitor your usage](https://upstash.com/docs/redis/howto/monitoryourusage.md)
- [Read Your Writes](https://upstash.com/docs/redis/howto/readyourwrites.md)
- [Using redis-cli](https://upstash.com/docs/redis/howto/redis-cli.md): Connect to your Upstash Redis database with redis-cli. Learn how to install it, connect over TLS, run commands, and when to use TCP versus HTTP.
- [Terraform Provider](https://upstash.com/docs/redis/howto/terraformprovider.md)
- [Upgrade Your Database](https://upstash.com/docs/redis/howto/upgrade-database.md)
- [Vercel - Upstash Redis Integration](https://upstash.com/docs/redis/howto/vercelintegration.md)
- [BullMQ with Upstash Redis](https://upstash.com/docs/redis/integrations/bullmq.md)
- [Celery with Upstash Redis](https://upstash.com/docs/redis/integrations/celery.md)
- [DrizzleORM with Upstash Redis](https://upstash.com/docs/redis/integrations/drizzle.md)
- [n8n with Upstash Redis](https://upstash.com/docs/redis/integrations/n8n.md)
- [Prometheus - Upstash Redis Integration](https://upstash.com/docs/redis/integrations/prometheus.md)
- [Configure Upstash Ratelimit Strapi Plugin](https://upstash.com/docs/redis/integrations/ratelimit/strapi/configurations.md)
- [Upstash Ratelimit Strapi Integration](https://upstash.com/docs/redis/integrations/ratelimit/strapi/getting-started.md)
- [Replit Templates](https://upstash.com/docs/redis/integrations/replit-templates.md)
- [Sidekiq with Upstash Redis](https://upstash.com/docs/redis/integrations/sidekiq.md)
- [Pricing & Billing](https://upstash.com/docs/redis/overall/billing.md): How Upstash Redis pricing works — free tier, Pay-As-You-Go, and Fixed plans, with current limits and billing details.
- [Changelog](https://upstash.com/docs/redis/overall/changelog.md)
- [Compare](https://upstash.com/docs/redis/overall/compare.md)
- [Redis® API Compatibility: supported commands, modules, and protocols](https://upstash.com/docs/redis/overall/compatibility.md)
- [Prod Pack & Enterprise](https://upstash.com/docs/redis/overall/enterprise.md)
- [Getting Started](https://upstash.com/docs/redis/overall/getstarted.md): Create an Upstash Redis database in seconds
- [llms.txt](https://upstash.com/docs/redis/overall/llms-txt.md)
- [Pricing & Limits](https://upstash.com/docs/redis/overall/pricing.md)
- [Pricing & Limits](https://upstash.com/docs/redis/overall/pricingold.md)
- [Python SDK](https://upstash.com/docs/redis/overall/pythonredis.md)
- [Rate Limit SDK](https://upstash.com/docs/redis/overall/ratelimit.md)
- [Typescript SDK](https://upstash.com/docs/redis/overall/redis.md)
- [Use Cases](https://upstash.com/docs/redis/overall/usecases.md)
- [AWS Lambda](https://upstash.com/docs/redis/quickstarts/aws-lambda.md)
- [Azure Functions](https://upstash.com/docs/redis/quickstarts/azure-functions.md)
- [Cloudflare Workers](https://upstash.com/docs/redis/quickstarts/cloudflareworkers.md)
- [Deno Deploy](https://upstash.com/docs/redis/quickstarts/deno-deploy.md)
- [DigitalOcean](https://upstash.com/docs/redis/quickstarts/digitalocean.md)
- [Django](https://upstash.com/docs/redis/quickstarts/django.md)
- [Elixir](https://upstash.com/docs/redis/quickstarts/elixir.md): Tutorial on Using Upstash Redis In Your Phoenix App and Deploying it on Fly.
- [FastAPI](https://upstash.com/docs/redis/quickstarts/fastapi.md)
- [Fastly](https://upstash.com/docs/redis/quickstarts/fastlycompute.md)
- [Flask](https://upstash.com/docs/redis/quickstarts/flask.md)
- [Fly.io](https://upstash.com/docs/redis/quickstarts/fly.md)
- [Google Cloud Run functions](https://upstash.com/docs/redis/quickstarts/google-cloud-functions.md)
- [ioredis note](https://upstash.com/docs/redis/quickstarts/ioredisnote.md)
- [Koyeb](https://upstash.com/docs/redis/quickstarts/koyeb.md)
- [Laravel](https://upstash.com/docs/redis/quickstarts/laravel.md)
- [App Router](https://upstash.com/docs/redis/quickstarts/nextjs-app-router.md)
- [Pages Router](https://upstash.com/docs/redis/quickstarts/nextjs-pages-router.md)
- [AWS Lambda](https://upstash.com/docs/redis/quickstarts/python-aws-lambda.md)
- [SST](https://upstash.com/docs/redis/quickstarts/sst.md)
- [Supabase Functions](https://upstash.com/docs/redis/quickstarts/supabase.md)
- [App Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-app-router.md)
- [Pages Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-pages-router.md)
- [Vercel Python Runtime](https://upstash.com/docs/redis/quickstarts/vercel-python-runtime.md)
- [Agent Analytics](https://upstash.com/docs/redis/sdks/agent-analytics.md)
- [Vercel AI SDK Memory, RAG & Chat History with Redis](https://upstash.com/docs/redis/sdks/agentkit/ai-sdk.md): Add long-term memory, RAG, and chat history to the Vercel AI SDK with Upstash Redis — drop-in tools for generateText and streamText, no separate vector database.
- [Vercel AI SDK Memory, RAG & Chat History with Redis](https://upstash.com/docs/redis/sdks/agentkit/ai-sdk.md): Add long-term memory, RAG, and chat history to the Vercel AI SDK with Upstash Redis — drop-in tools for generateText and streamText, no separate vector database.
- [Memory, Chat History, RAG, Rate Limiting & Sandboxes for the Vercel Eve Agent Framework](https://upstash.com/docs/redis/sdks/agentkit/eve.md): Add long-term memory, searchable chat history, RAG, rate limiting, tool caching, and sandboxes to Vercel's Eve agent framework with Upstash Redis — no separate vector database.
- [Memory, Chat History, RAG, Rate Limiting & Sandboxes for the Vercel Eve Agent Framework](https://upstash.com/docs/redis/sdks/agentkit/eve.md): Add long-term memory, searchable chat history, RAG, rate limiting, tool caching, and sandboxes to Vercel's Eve agent framework with Upstash Redis — no separate vector database.
- [Upstash Redis MCP](https://upstash.com/docs/redis/sdks/mcp.md)
- [ECHO](https://upstash.com/docs/redis/sdks/py/commands/auth/echo.md)
- [PING](https://upstash.com/docs/redis/sdks/py/commands/auth/ping.md): Send a ping to the server and get a response if the server is alive.
- [BITCOUNT](https://upstash.com/docs/redis/sdks/py/commands/bitmap/bitcount.md): Count the number of set bits.
- [BITFIELD](https://upstash.com/docs/redis/sdks/py/commands/bitmap/bitfield.md): Sets or gets parts of a bitfield
- [BITOP](https://upstash.com/docs/redis/sdks/py/commands/bitmap/bitop.md): Perform bitwise operations between strings.
- [BITPOS](https://upstash.com/docs/redis/sdks/py/commands/bitmap/bitpos.md): Find the position of the first set or clear bit (bit with a value of 1 or 0) in a Redis string key.
- [GETBIT](https://upstash.com/docs/redis/sdks/py/commands/bitmap/getbit.md): Retrieve a single bit.
- [SETBIT](https://upstash.com/docs/redis/sdks/py/commands/bitmap/setbit.md): Set a single bit in a string.
- [CLIENT SETINFO](https://upstash.com/docs/redis/sdks/py/commands/connection/client_setinfo.md): Set client library name and version information.
- [DEL](https://upstash.com/docs/redis/sdks/py/commands/generic/del.md): Removes the specified keys. A key is ignored if it does not exist.
- [EXISTS](https://upstash.com/docs/redis/sdks/py/commands/generic/exists.md): Check if a key exists.
- [EXPIRE](https://upstash.com/docs/redis/sdks/py/commands/generic/expire.md): Sets a timeout on key. The key will automatically be deleted.
- [EXPIREAT](https://upstash.com/docs/redis/sdks/py/commands/generic/expireat.md): Sets a timeout on key. The key will automatically be deleted.
- [KEYS](https://upstash.com/docs/redis/sdks/py/commands/generic/keys.md): Returns all keys matching pattern.
- [PERSIST](https://upstash.com/docs/redis/sdks/py/commands/generic/persist.md): Remove any timeout set on the key.
- [PEXPIRE](https://upstash.com/docs/redis/sdks/py/commands/generic/pexpire.md): Sets a timeout on key. After the timeout has expired, the key will automatically be deleted.
- [PEXPIREAT](https://upstash.com/docs/redis/sdks/py/commands/generic/pexpireat.md): Sets a timeout on key. After the timeout has expired, the key will automatically be deleted.
- [PTTL](https://upstash.com/docs/redis/sdks/py/commands/generic/pttl.md): Return the expiration in milliseconds of a key.
- [RANDOMKEY](https://upstash.com/docs/redis/sdks/py/commands/generic/randomkey.md): Returns a random key from database
- [RENAME](https://upstash.com/docs/redis/sdks/py/commands/generic/rename.md): Rename a key
- [RENAMENX](https://upstash.com/docs/redis/sdks/py/commands/generic/renamenx.md): Rename a key if it does not already exist.
- [SCAN](https://upstash.com/docs/redis/sdks/py/commands/generic/scan.md): Scan the database for keys.
- [TOUCH](https://upstash.com/docs/redis/sdks/py/commands/generic/touch.md): Alters the last access time of one or more keys
- [TTL](https://upstash.com/docs/redis/sdks/py/commands/generic/ttl.md): Return the expiration in seconds of a key.
- [TYPE](https://upstash.com/docs/redis/sdks/py/commands/generic/type.md): Get the type of a key.
- [UNLINK](https://upstash.com/docs/redis/sdks/py/commands/generic/unlink.md): Removes the specified keys. A key is ignored if it does not exist.
- [HDEL](https://upstash.com/docs/redis/sdks/py/commands/hash/hdel.md): Deletes one or more hash fields.
- [HEXISTS](https://upstash.com/docs/redis/sdks/py/commands/hash/hexists.md): Checks if a field exists in a hash.
- [HEXPIRE](https://upstash.com/docs/redis/sdks/py/commands/hash/hexpire.md): Set a timeout on a hash field in seconds.
- [HEXPIREAT](https://upstash.com/docs/redis/sdks/py/commands/hash/hexpireat.md): Sets an expiration time for field(s) in a hash in seconds since the Unix epoch.
- [HEXPIRETIME](https://upstash.com/docs/redis/sdks/py/commands/hash/hexpiretime.md): Retrieves the expiration time of field(s) in a hash in seconds.
- [HGET](https://upstash.com/docs/redis/sdks/py/commands/hash/hget.md): Retrieves the value of a hash field.
- [HGETALL](https://upstash.com/docs/redis/sdks/py/commands/hash/hgetall.md): Retrieves all fields from a hash.
- [HGETDEL](https://upstash.com/docs/redis/sdks/py/commands/hash/hgetdel.md): Get and delete hash fields atomically.
- [HGETEX](https://upstash.com/docs/redis/sdks/py/commands/hash/hgetex.md): Get hash fields with expiration support.
- [HINCRBY](https://upstash.com/docs/redis/sdks/py/commands/hash/hincrby.md): Increments the value of a hash field by a given amount
- [HINCRBYFLOAT](https://upstash.com/docs/redis/sdks/py/commands/hash/hincrbyfloat.md): Increments the value of a hash field by a given float value.
- [HKEYS](https://upstash.com/docs/redis/sdks/py/commands/hash/hkeys.md): Return all field names in the hash stored at key.
- [HLEN](https://upstash.com/docs/redis/sdks/py/commands/hash/hlen.md): Returns the number of fields contained in the hash stored at key.
- [HMGET](https://upstash.com/docs/redis/sdks/py/commands/hash/hmget.md): Return the requested fields and their values.
- [HMSET](https://upstash.com/docs/redis/sdks/py/commands/hash/hmset.md): Write multiple fields to a hash.
- [HPERSIST](https://upstash.com/docs/redis/sdks/py/commands/hash/hpersist.md): Remove the expiration from one or more hash fields.
- [HPEXPIRE](https://upstash.com/docs/redis/sdks/py/commands/hash/hpexpire.md): Set a timeout on a hash field in milliseconds.
- [HPEXPIREAT](https://upstash.com/docs/redis/sdks/py/commands/hash/hpexpireat.md): Sets an expiration time for field(s) in a hash in milliseconds since the Unix epoch.
- [HPEXPIRETIME](https://upstash.com/docs/redis/sdks/py/commands/hash/hpexpiretime.md): Retrieves the expiration time of a field in a hash in milliseconds.
- [HPTTL](https://upstash.com/docs/redis/sdks/py/commands/hash/hpttl.md): Retrieves the remaining time-to-live (TTL) for field(s) in a hash in milliseconds.
- [HRANDFIELD](https://upstash.com/docs/redis/sdks/py/commands/hash/hrandfield.md): Return a random field from a hash
- [HSCAN](https://upstash.com/docs/redis/sdks/py/commands/hash/hscan.md): Scan a hash for fields.
- [HSET](https://upstash.com/docs/redis/sdks/py/commands/hash/hset.md): Write one or more fields to a hash.
- [HSETEX](https://upstash.com/docs/redis/sdks/py/commands/hash/hsetex.md): Set hash fields with expiration support.
- [HSETNX](https://upstash.com/docs/redis/sdks/py/commands/hash/hsetnx.md): Write a field to a hash but only if the field does not exist.
- [HSTRLEN](https://upstash.com/docs/redis/sdks/py/commands/hash/hstrlen.md): Returns the string length of a value in a hash.
- [HTTL](https://upstash.com/docs/redis/sdks/py/commands/hash/httl.md): Retrieves the remaining time-to-live (TTL) for field(s) in a hash in seconds.
- [HVALS](https://upstash.com/docs/redis/sdks/py/commands/hash/hvals.md): Returns all values in the hash stored at key.
- [JSON.ARRAPPEND](https://upstash.com/docs/redis/sdks/py/commands/json/arrappend.md): Append values to the array at path in the JSON document at key.
- [JSON.ARRINDEX](https://upstash.com/docs/redis/sdks/py/commands/json/arrindex.md): Search for the first occurrence of a JSON value in an array.
- [JSON.ARRINSERT](https://upstash.com/docs/redis/sdks/py/commands/json/arrinsert.md): Insert the json values into the array at path before the index (shifts to the right).
- [JSON.ARRLEN](https://upstash.com/docs/redis/sdks/py/commands/json/arrlen.md): Report the length of the JSON array at `path` in `key`.
- [JSON.ARRPOP](https://upstash.com/docs/redis/sdks/py/commands/json/arrpop.md): Remove and return an element from the index in the array. By default the last element from an array is popped.
- [JSON.ARRTRIM](https://upstash.com/docs/redis/sdks/py/commands/json/arrtrim.md): Trim an array so that it contains only the specified inclusive range of elements.
- [JSON.CLEAR](https://upstash.com/docs/redis/sdks/py/commands/json/clear.md): Clear container values (arrays/objects) and set numeric values to 0.
- [JSON.DEL](https://upstash.com/docs/redis/sdks/py/commands/json/del.md): Delete a key from a JSON document.
- [JSON.FORGET](https://upstash.com/docs/redis/sdks/py/commands/json/forget.md): Delete a key from a JSON document.
- [JSON.GET](https://upstash.com/docs/redis/sdks/py/commands/json/get.md): Get a single value from a JSON document.
- [JSON.MERGE](https://upstash.com/docs/redis/sdks/py/commands/json/merge.md): Merges the JSON value at path in key with the provided value.
- [JSON.MGET](https://upstash.com/docs/redis/sdks/py/commands/json/mget.md): Get the same path from multiple JSON documents.
- [JSON.MSET](https://upstash.com/docs/redis/sdks/py/commands/json/mset.md): Sets multiple JSON values at multiple paths in multiple keys.
- [JSON.NUMINCRBY](https://upstash.com/docs/redis/sdks/py/commands/json/numincrby.md): Increment the number value stored at `path` by number.
- [JSON.NUMMULTBY](https://upstash.com/docs/redis/sdks/py/commands/json/nummultby.md): Multiply the number value stored at `path` by number.
- [JSON.OBJKEYS](https://upstash.com/docs/redis/sdks/py/commands/json/objkeys.md): Return the keys in the object that`s referenced by path.
- [JSON.OBJLEN](https://upstash.com/docs/redis/sdks/py/commands/json/objlen.md): Report the number of keys in the JSON object at `path` in `key`.
- [JSON.RESP](https://upstash.com/docs/redis/sdks/py/commands/json/resp.md): Return the value at the path in Redis serialization protocol format.
- [JSON.SET](https://upstash.com/docs/redis/sdks/py/commands/json/set.md): Set the JSON value at path in key.
- [JSON.STRAPPEND](https://upstash.com/docs/redis/sdks/py/commands/json/strappend.md): Append the json-string values to the string at path.
- [JSON.STRLEN](https://upstash.com/docs/redis/sdks/py/commands/json/strlen.md): Report the length of the JSON String at path in key
- [JSON.TOGGLE](https://upstash.com/docs/redis/sdks/py/commands/json/toggle.md): Toggle a boolean value stored at `path`.
- [JSON.TYPE](https://upstash.com/docs/redis/sdks/py/commands/json/type.md): Report the type of JSON value at `path`.
- [LINDEX](https://upstash.com/docs/redis/sdks/py/commands/list/lindex.md): Returns the element at index index in the list stored at key.
- [LINSERT](https://upstash.com/docs/redis/sdks/py/commands/list/linsert.md): Insert an element before or after another element in a list
- [LLEN](https://upstash.com/docs/redis/sdks/py/commands/list/llen.md): Returns the length of the list stored at key.
- [LMOVE](https://upstash.com/docs/redis/sdks/py/commands/list/lmove.md): Move an element from one list to another.
- [LPOP](https://upstash.com/docs/redis/sdks/py/commands/list/lpop.md): Remove and return the first element(s) of a list
- [LPOS](https://upstash.com/docs/redis/sdks/py/commands/list/lpos.md): Returns the index of matching elements inside a list.
- [LPUSH](https://upstash.com/docs/redis/sdks/py/commands/list/lpush.md): Push an element at the head of the list.
- [LPUSHX](https://upstash.com/docs/redis/sdks/py/commands/list/lpushx.md): Push an element at the head of the list only if the list exists.
- [LRANGE](https://upstash.com/docs/redis/sdks/py/commands/list/lrange.md): Returns the specified elements of the list stored at key.
- [LREM](https://upstash.com/docs/redis/sdks/py/commands/list/lrem.md): Remove the first `count` occurrences of an element from a list.
- [LSET](https://upstash.com/docs/redis/sdks/py/commands/list/lset.md): Set a value at a specific index.
- [LTRIM](https://upstash.com/docs/redis/sdks/py/commands/list/ltrim.md): Trim a list to the specified range
- [RPOP](https://upstash.com/docs/redis/sdks/py/commands/list/rpop.md): Remove and return the last element(s) of a list
- [RPUSH](https://upstash.com/docs/redis/sdks/py/commands/list/rpush.md): Push an element at the end of the list.
- [RPUSHX](https://upstash.com/docs/redis/sdks/py/commands/list/rpushx.md): Push an element at the end of the list only if the list exists.
- [Overview](https://upstash.com/docs/redis/sdks/py/commands/overview.md): Available Commands in upstash-redis
- [PUBLISH](https://upstash.com/docs/redis/sdks/py/commands/pubsub/publish.md): Publish a message to a channel
- [EVAL](https://upstash.com/docs/redis/sdks/py/commands/scripts/eval.md): Evaluate a Lua script server side.
- [EVAL_RO](https://upstash.com/docs/redis/sdks/py/commands/scripts/eval_ro.md): Evaluate a read-only Lua script server side.
- [EVALSHA](https://upstash.com/docs/redis/sdks/py/commands/scripts/evalsha.md): Evaluate a cached Lua script server side.
- [EVALSHA_RO](https://upstash.com/docs/redis/sdks/py/commands/scripts/evalsha_ro.md): Evaluate a cached read-only Lua script server side.
- [SCRIPT EXISTS](https://upstash.com/docs/redis/sdks/py/commands/scripts/script_exists.md): Check if scripts exist in the script cache.
- [SCRIPT FLUSH](https://upstash.com/docs/redis/sdks/py/commands/scripts/script_flush.md): Removes all scripts from the script cache.
- [SCRIPT LOAD](https://upstash.com/docs/redis/sdks/py/commands/scripts/script_load.md): Load the specified Lua script into the script cache.
- [DBSIZE](https://upstash.com/docs/redis/sdks/py/commands/server/dbsize.md): Count the number of keys in the database.
- [FLUSHALL](https://upstash.com/docs/redis/sdks/py/commands/server/flushall.md)
- [FLUSHDB](https://upstash.com/docs/redis/sdks/py/commands/server/flushdb.md)
- [SADD](https://upstash.com/docs/redis/sdks/py/commands/set/sadd.md): Adds one or more members to a set.
- [SCARD](https://upstash.com/docs/redis/sdks/py/commands/set/scard.md): Return how many members are in a set
- [SDIFF](https://upstash.com/docs/redis/sdks/py/commands/set/sdiff.md): Return the difference between sets
- [SDIFFSTORE](https://upstash.com/docs/redis/sdks/py/commands/set/sdiffstore.md): Write the difference between sets to a new set
- [SINTER](https://upstash.com/docs/redis/sdks/py/commands/set/sinter.md): Return the intersection between sets
- [SINTER](https://upstash.com/docs/redis/sdks/py/commands/set/sinterstore.md): Return the intersection between sets and store the resulting set in a key
- [SISMEMBER](https://upstash.com/docs/redis/sdks/py/commands/set/sismember.md): Check if a member exists in a set
- [SMEMBERS](https://upstash.com/docs/redis/sdks/py/commands/set/smembers.md): Return all the members of a set
- [SMISMEMBER](https://upstash.com/docs/redis/sdks/py/commands/set/smismember.md): Check if multiple members exist in a set
- [SMOVE](https://upstash.com/docs/redis/sdks/py/commands/set/smove.md): Move a member from one set to another
- [SPOP](https://upstash.com/docs/redis/sdks/py/commands/set/spop.md): Removes and returns one or more random members from a set.
- [SRANDMEMBER](https://upstash.com/docs/redis/sdks/py/commands/set/srandmember.md): Returns one or more random members from a set.
- [SREM](https://upstash.com/docs/redis/sdks/py/commands/set/srem.md): Remove one or more members from a set
- [SSCAN](https://upstash.com/docs/redis/sdks/py/commands/set/sscan.md): Scan a set
- [SUNION](https://upstash.com/docs/redis/sdks/py/commands/set/sunion.md): Return the union between sets
- [SUNIONSTORE](https://upstash.com/docs/redis/sdks/py/commands/set/sunionstore.md): Return the union between sets and store the resulting set in a key
- [XACK](https://upstash.com/docs/redis/sdks/py/commands/stream/xack.md): Removes one or multiple messages from the pending entries list of a stream consumer group.
- [XACKDEL](https://upstash.com/docs/redis/sdks/py/commands/stream/xackdel.md): Acknowledge and delete stream entries atomically.
- [XADD](https://upstash.com/docs/redis/sdks/py/commands/stream/xadd.md): Appends one or more new entries to a stream.
- [XAUTOCLAIM](https://upstash.com/docs/redis/sdks/py/commands/stream/xautoclaim.md): Changes the ownership of pending messages from one consumer to another in a stream consumer group automatically.
- [XCLAIM](https://upstash.com/docs/redis/sdks/py/commands/stream/xclaim.md): Changes the ownership of pending messages from one consumer to another in a stream consumer group.
- [XDEL](https://upstash.com/docs/redis/sdks/py/commands/stream/xdel.md): Removes the specified entries from a stream, and returns the number of entries deleted.
- [XDELEX](https://upstash.com/docs/redis/sdks/py/commands/stream/xdelex.md): Extended delete for streams with reference control.
- [XGROUP CREATE](https://upstash.com/docs/redis/sdks/py/commands/stream/xgroup_create.md): Create a new consumer group for a Redis stream.
- [XGROUP CREATECONSUMER](https://upstash.com/docs/redis/sdks/py/commands/stream/xgroup_createconsumer.md): Create a new consumer in an existing consumer group.
- [XGROUP DELCONSUMER](https://upstash.com/docs/redis/sdks/py/commands/stream/xgroup_delconsumer.md): Delete a consumer from a consumer group.
- [XGROUP DESTROY](https://upstash.com/docs/redis/sdks/py/commands/stream/xgroup_destroy.md): Delete an entire consumer group.
- [XGROUP SETID](https://upstash.com/docs/redis/sdks/py/commands/stream/xgroup_setid.md): Set the last delivered ID for a consumer group.
- [XINFO CONSUMERS](https://upstash.com/docs/redis/sdks/py/commands/stream/xinfo_consumers.md): List all consumers in a consumer group.
- [XINFO GROUPS](https://upstash.com/docs/redis/sdks/py/commands/stream/xinfo_groups.md): List all consumer groups for a stream.
- [XLEN](https://upstash.com/docs/redis/sdks/py/commands/stream/xlen.md): Returns the number of entries inside a stream.
- [XPENDING](https://upstash.com/docs/redis/sdks/py/commands/stream/xpending.md): Returns information about pending messages in a stream consumer group.
- [XRANGE](https://upstash.com/docs/redis/sdks/py/commands/stream/xrange.md): Returns stream entries matching a given range of IDs.
- [XREAD](https://upstash.com/docs/redis/sdks/py/commands/stream/xread.md): Reads data from one or multiple streams, starting from the specified IDs.
- [XREADGROUP](https://upstash.com/docs/redis/sdks/py/commands/stream/xreadgroup.md): Reads data from a stream as part of a consumer group.
- [XREVRANGE](https://upstash.com/docs/redis/sdks/py/commands/stream/xrevrange.md): Returns stream entries matching a given range of IDs in reverse order.
- [XTRIM](https://upstash.com/docs/redis/sdks/py/commands/stream/xtrim.md): Trims the stream by removing entries to keep it at a reasonable size.
- [APPEND](https://upstash.com/docs/redis/sdks/py/commands/string/append.md): Append a value to a string stored at key.
- [DECR](https://upstash.com/docs/redis/sdks/py/commands/string/decr.md): Decrement the integer value of a key by one
- [DECRBY](https://upstash.com/docs/redis/sdks/py/commands/string/decrby.md): Decrement the integer value of a key by a given number.
- [GET](https://upstash.com/docs/redis/sdks/py/commands/string/get.md): Return the value of the specified key or `None` if the key doesn't exist.
- [GETDEL](https://upstash.com/docs/redis/sdks/py/commands/string/getdel.md): Return the value of the specified key and delete the key.
- [GETRANGE](https://upstash.com/docs/redis/sdks/py/commands/string/getrange.md): Return a substring of value at the specified key.
- [GETSET](https://upstash.com/docs/redis/sdks/py/commands/string/getset.md): Return the value of the specified key and replace it with a new value.
- [INCR](https://upstash.com/docs/redis/sdks/py/commands/string/incr.md): Increment the integer value of a key by one
- [INCRBY](https://upstash.com/docs/redis/sdks/py/commands/string/incrby.md): Increment the integer value of a key by a given number.
- [INCRBYFLOAT](https://upstash.com/docs/redis/sdks/py/commands/string/incrbyfloat.md): Increment the float value of a key by a given number.
- [MGET](https://upstash.com/docs/redis/sdks/py/commands/string/mget.md): Load multiple keys from Redis in one go.
- [MSET](https://upstash.com/docs/redis/sdks/py/commands/string/mset.md): Set multiple keys in one go.
- [MSETNX](https://upstash.com/docs/redis/sdks/py/commands/string/msetnx.md): Set multiple keys in one go unless they exist already.
- [SET](https://upstash.com/docs/redis/sdks/py/commands/string/set.md): Set a key to hold a string value.
- [SETRANGE](https://upstash.com/docs/redis/sdks/py/commands/string/setrange.md): Writes the value of key at offset.
- [STRLEN](https://upstash.com/docs/redis/sdks/py/commands/string/strlen.md): Return the length of a string stored at a key.
- [ZADD](https://upstash.com/docs/redis/sdks/py/commands/zset/zadd.md): Add a member to a sorted set, or update its score if it already exists.
- [ZCARD](https://upstash.com/docs/redis/sdks/py/commands/zset/zcard.md): Returns the number of elements in the sorted set stored at key.
- [ZCOUNT](https://upstash.com/docs/redis/sdks/py/commands/zset/zcount.md): Returns the number of elements in the sorted set stored at key filterd by score.
- [ZDIFF](https://upstash.com/docs/redis/sdks/py/commands/zset/zdiff.md): Returns the difference between sets.
- [ZDIFFSTORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zdiffstore.md): Writes the difference between sets to a new key.
- [ZINCRBY](https://upstash.com/docs/redis/sdks/py/commands/zset/zincrby.md): Increment the score of a member.
- [ZINTER](https://upstash.com/docs/redis/sdks/py/commands/zset/zinter.md): Returns the intersection between sets.
- [ZINTERSTORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zinterstore.md): Calculates the intersection of sets and stores the result in a key
- [ZLEXCOUNT](https://upstash.com/docs/redis/sdks/py/commands/zset/zlexcount.md): Returns the number of elements in the sorted set stored at key filterd by lex.
- [ZMSCORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zmscore.md): Returns the scores of multiple members.
- [ZPOPMAX](https://upstash.com/docs/redis/sdks/py/commands/zset/zpopmax.md): Removes and returns up to count members with the highest scores in the sorted set stored at key.
- [ZPOPMIN](https://upstash.com/docs/redis/sdks/py/commands/zset/zpopmin.md): Removes and returns up to count members with the lowest scores in the sorted set stored at key.
- [ZRANDMEMBER](https://upstash.com/docs/redis/sdks/py/commands/zset/zrandmember.md): Returns one or more random members from a sorted set, optionally with their scores.
- [ZRANGE](https://upstash.com/docs/redis/sdks/py/commands/zset/zrange.md): Returns the specified range of elements in the sorted set stored at key.
- [ZRANK](https://upstash.com/docs/redis/sdks/py/commands/zset/zrank.md): Returns the rank of a member
- [ZREM](https://upstash.com/docs/redis/sdks/py/commands/zset/zrem.md): Remove one or more members from a sorted set
- [ZREMRANGEBYLEX](https://upstash.com/docs/redis/sdks/py/commands/zset/zremrangebylex.md): Remove all members in a sorted set between the given lexicographical range.
- [ZREMRANGEBYRANK](https://upstash.com/docs/redis/sdks/py/commands/zset/zremrangebyrank.md): Remove all members in a sorted set between the given ranks.
- [ZREMRANGEBYSCORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zremrangebyscore.md): Remove all members in a sorted set between the given scores.
- [ZREVRANK](https://upstash.com/docs/redis/sdks/py/commands/zset/zrevrank.md): Returns the rank of a member in a sorted set, with scores ordered from high to low.
- [ZSCAN](https://upstash.com/docs/redis/sdks/py/commands/zset/zscan.md): Scan a sorted set
- [ZSCORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zscore.md): Returns the scores of a member.
- [ZINTER](https://upstash.com/docs/redis/sdks/py/commands/zset/zunion.md): Returns the intersection between sets.
- [ZUNIONSTORE](https://upstash.com/docs/redis/sdks/py/commands/zset/zunionstore.md): Writes the union between sets to a new key.
- [Features](https://upstash.com/docs/redis/sdks/py/features.md)
- [Getting Started](https://upstash.com/docs/redis/sdks/py/gettingstarted.md)
- [Overview](https://upstash.com/docs/redis/sdks/py/overview.md)
- [Ratelimiting Algorithms](https://upstash.com/docs/redis/sdks/ratelimit-py/algorithms.md)
- [Features](https://upstash.com/docs/redis/sdks/ratelimit-py/features.md)
- [Getting Started](https://upstash.com/docs/redis/sdks/ratelimit-py/gettingstarted.md)
- [Overview](https://upstash.com/docs/redis/sdks/ratelimit-py/overview.md)
- [Ratelimiting Algorithms](https://upstash.com/docs/redis/sdks/ratelimit-ts/algorithms.md)
- [Costs](https://upstash.com/docs/redis/sdks/ratelimit-ts/costs.md)
- [Features](https://upstash.com/docs/redis/sdks/ratelimit-ts/features.md)
- [Getting Started](https://upstash.com/docs/redis/sdks/ratelimit-ts/gettingstarted.md)
- [Configure Upstash Ratelimit Strapi Plugin](https://upstash.com/docs/redis/sdks/ratelimit-ts/integrations/strapi/configurations.md)
- [Upstash Ratelimit Strapi Integration](https://upstash.com/docs/redis/sdks/ratelimit-ts/integrations/strapi/getting-started.md)
- [Methods](https://upstash.com/docs/redis/sdks/ratelimit-ts/methods.md)
- [Overview](https://upstash.com/docs/redis/sdks/ratelimit-ts/overview.md)
- [Traffic Protection](https://upstash.com/docs/redis/sdks/ratelimit-ts/traffic-protection.md)
- [Realtime](https://upstash.com/docs/redis/sdks/realtime.md)
- [Redis Analytics](https://upstash.com/docs/redis/sdks/redis-analytics.md)
- [Advanced](https://upstash.com/docs/redis/sdks/ts/advanced.md)
- [ECHO](https://upstash.com/docs/redis/sdks/ts/commands/auth/echo.md)
- [PING](https://upstash.com/docs/redis/sdks/ts/commands/auth/ping.md): Send a ping to the server and get a response if the server is alive.
- [BITCOUNT](https://upstash.com/docs/redis/sdks/ts/commands/bitmap/bitcount.md): Count the number of set bits.
- [BITOP](https://upstash.com/docs/redis/sdks/ts/commands/bitmap/bitop.md): Perform bitwise operations between strings.
- [BITPOS](https://upstash.com/docs/redis/sdks/ts/commands/bitmap/bitpos.md): Find the position of the first set or clear bit (bit with a value of 1 or 0) in a Redis string key.
- [GETBIT](https://upstash.com/docs/redis/sdks/ts/commands/bitmap/getbit.md): Retrieve a single bit.
- [SETBIT](https://upstash.com/docs/redis/sdks/ts/commands/bitmap/setbit.md): Set a single bit in a string.
- [CLIENT SETINFO](https://upstash.com/docs/redis/sdks/ts/commands/connection/client_setinfo.md): Set client library name and version information.
- [FCALL](https://upstash.com/docs/redis/sdks/ts/commands/functions/call.md): Invoke a function.
- [FCALL_RO](https://upstash.com/docs/redis/sdks/ts/commands/functions/call_ro.md): Invoke a read-only function
- [FUNCTION DELETE](https://upstash.com/docs/redis/sdks/ts/commands/functions/delete.md): Delete a library and all its functions.
- [FUNCTION FLUSH](https://upstash.com/docs/redis/sdks/ts/commands/functions/flush.md): Delete all the libraries and functions.
- [FUNCTION LIST](https://upstash.com/docs/redis/sdks/ts/commands/functions/list.md): List details about the registered libraries and functions.
- [FUNCTION LOAD](https://upstash.com/docs/redis/sdks/ts/commands/functions/load.md): Load a library to Redis.
- [FUNCTION STATS](https://upstash.com/docs/redis/sdks/ts/commands/functions/stats.md): Return information about the function running engine.
- [DEL](https://upstash.com/docs/redis/sdks/ts/commands/generic/del.md): Removes the specified keys. A key is ignored if it does not exist.
- [EXISTS](https://upstash.com/docs/redis/sdks/ts/commands/generic/exists.md): Check if a key exists.
- [EXPIRE](https://upstash.com/docs/redis/sdks/ts/commands/generic/expire.md): Sets a timeout on key. The key will automatically be deleted.
- [EXPIREAT](https://upstash.com/docs/redis/sdks/ts/commands/generic/expireat.md): Sets a timeout on key. The key will automatically be deleted.
- [KEYS](https://upstash.com/docs/redis/sdks/ts/commands/generic/keys.md): Returns all keys matching pattern.
- [PERSIST](https://upstash.com/docs/redis/sdks/ts/commands/generic/persist.md): Remove any timeout set on the key.
- [PEXPIRE](https://upstash.com/docs/redis/sdks/ts/commands/generic/pexpire.md): Sets a timeout on key. After the timeout has expired, the key will automatically be deleted.
- [PEXPIREAT](https://upstash.com/docs/redis/sdks/ts/commands/generic/pexpireat.md): Sets a timeout on key. After the timeout has expired, the key will automatically be deleted.
- [PTTL](https://upstash.com/docs/redis/sdks/ts/commands/generic/pttl.md): Return the expiration in milliseconds of a key.
- [RANDOMKEY](https://upstash.com/docs/redis/sdks/ts/commands/generic/randomkey.md): Returns a random key from database
- [RENAME](https://upstash.com/docs/redis/sdks/ts/commands/generic/rename.md): Rename a key
- [RENAMENX](https://upstash.com/docs/redis/sdks/ts/commands/generic/renamenx.md): Rename a key if it does not already exist.
- [SCAN](https://upstash.com/docs/redis/sdks/ts/commands/generic/scan.md): Scan the database for keys.
- [TOUCH](https://upstash.com/docs/redis/sdks/ts/commands/generic/touch.md): Alters the last access time of one or more keys
- [TTL](https://upstash.com/docs/redis/sdks/ts/commands/generic/ttl.md): Return the expiration in seconds of a key.
- [TYPE](https://upstash.com/docs/redis/sdks/ts/commands/generic/type.md): Get the type of a key.
- [UNLINK](https://upstash.com/docs/redis/sdks/ts/commands/generic/unlink.md): Removes the specified keys. A key is ignored if it does not exist.
- [HDEL](https://upstash.com/docs/redis/sdks/ts/commands/hash/hdel.md): Deletes one or more hash fields.
- [HEXISTS](https://upstash.com/docs/redis/sdks/ts/commands/hash/hexists.md): Checks if a field exists in a hash.
- [HEXPIRE](https://upstash.com/docs/redis/sdks/ts/commands/hash/hexpire.md): Sets an expiration time for one or more fields in a hash.
- [HEXPIREAT](https://upstash.com/docs/redis/sdks/ts/commands/hash/hexpireat.md): Sets an expiration time for field(s) in a hash in seconds since the Unix epoch.
- [HEXPIRETIME](https://upstash.com/docs/redis/sdks/ts/commands/hash/hexpiretime.md): Retrieves the expiration time of field(s) in a hash in seconds.
- [HGET](https://upstash.com/docs/redis/sdks/ts/commands/hash/hget.md): Retrieves the value of a hash field.
- [HGETALL](https://upstash.com/docs/redis/sdks/ts/commands/hash/hgetall.md): Retrieves all fields from a hash.
- [HGETDEL](https://upstash.com/docs/redis/sdks/ts/commands/hash/hgetdel.md): Get and delete hash fields atomically.
- [HGETEX](https://upstash.com/docs/redis/sdks/ts/commands/hash/hgetex.md): Get hash fields with expiration support.
- [HINCRBY](https://upstash.com/docs/redis/sdks/ts/commands/hash/hincrby.md): Increments the value of a hash field by a given amount
- [HINCRBYFLOAT](https://upstash.com/docs/redis/sdks/ts/commands/hash/hincrbyfloat.md): Increments the value of a hash field by a given float value.
- [HKEYS](https://upstash.com/docs/redis/sdks/ts/commands/hash/hkeys.md): Return all field names in the hash stored at key.
- [HLEN](https://upstash.com/docs/redis/sdks/ts/commands/hash/hlen.md): Returns the number of fields contained in the hash stored at key.
- [HMGET](https://upstash.com/docs/redis/sdks/ts/commands/hash/hmget.md): Return the requested fields and their values.
- [HPERSIST](https://upstash.com/docs/redis/sdks/ts/commands/hash/hpersist.md): Remove the expiration from one or more fields in a hash.
- [HPEXPIRE](https://upstash.com/docs/redis/sdks/ts/commands/hash/hpexpire.md): Sets an expiration time for a field in a hash in milliseconds.
- [HPEXPIREAT](https://upstash.com/docs/redis/sdks/ts/commands/hash/hpexpireat.md): Sets an expiration time for field(s) in a hash in milliseconds since the Unix epoch.
- [HPEXPIRETIME](https://upstash.com/docs/redis/sdks/ts/commands/hash/hpexpiretime.md): Retrieves the expiration time of a field in a hash in milliseconds.
- [HPTTL](https://upstash.com/docs/redis/sdks/ts/commands/hash/hpttl.md): Retrieves the remaining time-to-live (TTL) for field(s) in a hash in milliseconds.
- [HRANDFIELD](https://upstash.com/docs/redis/sdks/ts/commands/hash/hrandfield.md): Return a random field from a hash
- [HSCAN](https://upstash.com/docs/redis/sdks/ts/commands/hash/hscan.md): Scan a hash for fields.
- [HSET](https://upstash.com/docs/redis/sdks/ts/commands/hash/hset.md): Write one or more fields to a hash.
- [HSETEX](https://upstash.com/docs/redis/sdks/ts/commands/hash/hsetex.md): Set hash fields with expiration support.
- [HSETNX](https://upstash.com/docs/redis/sdks/ts/commands/hash/hsetnx.md): Write a field to a hash but only if the field does not exist.
- [HSTRLEN](https://upstash.com/docs/redis/sdks/ts/commands/hash/hstrlen.md): Returns the string length of a value in a hash.
- [HTTL](https://upstash.com/docs/redis/sdks/ts/commands/hash/httl.md): Retrieves the remaining time-to-live (TTL) for field(s) in a hash in seconds.
- [HVALS](https://upstash.com/docs/redis/sdks/ts/commands/hash/hvals.md): Returns all values in the hash stored at key.
- [JSON.ARRAPPEND](https://upstash.com/docs/redis/sdks/ts/commands/json/arrappend.md): Append values to the array at path in the JSON document at key.
- [JSON.ARRINDEX](https://upstash.com/docs/redis/sdks/ts/commands/json/arrindex.md): Search for the first occurrence of a JSON value in an array.
- [JSON.ARRINSERT](https://upstash.com/docs/redis/sdks/ts/commands/json/arrinsert.md): Insert the json values into the array at path before the index (shifts to the right).
- [JSON.ARRLEN](https://upstash.com/docs/redis/sdks/ts/commands/json/arrlen.md): Report the length of the JSON array at `path` in `key`.
- [JSON.ARRPOP](https://upstash.com/docs/redis/sdks/ts/commands/json/arrpop.md): Remove and return an element from the index in the array. By default the last element from an array is popped.
- [JSON.ARRTRIM](https://upstash.com/docs/redis/sdks/ts/commands/json/arrtrim.md): Trim an array so that it contains only the specified inclusive range of elements.
- [JSON.CLEAR](https://upstash.com/docs/redis/sdks/ts/commands/json/clear.md): Clear container values (arrays/objects) and set numeric values to 0.
- [JSON.DEL](https://upstash.com/docs/redis/sdks/ts/commands/json/del.md): Delete a key from a JSON document.
- [JSON.FORGET](https://upstash.com/docs/redis/sdks/ts/commands/json/forget.md): Delete a key from a JSON document.
- [JSON.GET](https://upstash.com/docs/redis/sdks/ts/commands/json/get.md): Get a single value from a JSON document.
- [JSON.MERGE](https://upstash.com/docs/redis/sdks/ts/commands/json/merge.md): Merges the JSON value at path in key with the provided value.
- [JSON.MGET](https://upstash.com/docs/redis/sdks/ts/commands/json/mget.md): Get the same path from multiple JSON documents.
- [JSON.MSET](https://upstash.com/docs/redis/sdks/ts/commands/json/mset.md): Sets multiple JSON values at multiple paths in multiple keys.
- [JSON.NUMINCRBY](https://upstash.com/docs/redis/sdks/ts/commands/json/numincrby.md): Increment the number value stored at `path` by number.
- [JSON.NUMMULTBY](https://upstash.com/docs/redis/sdks/ts/commands/json/nummultby.md): Multiply the number value stored at `path` by number.
- [JSON.OBJKEYS](https://upstash.com/docs/redis/sdks/ts/commands/json/objkeys.md): Return the keys in the object that`s referenced by path.
- [JSON.OBJLEN](https://upstash.com/docs/redis/sdks/ts/commands/json/objlen.md): Report the number of keys in the JSON object at `path` in `key`.
- [JSON.SET](https://upstash.com/docs/redis/sdks/ts/commands/json/set.md): Set the JSON value at path in key.
- [JSON.STRAPPEND](https://upstash.com/docs/redis/sdks/ts/commands/json/strappend.md): Append the json-string values to the string at path.
- [JSON.STRLEN](https://upstash.com/docs/redis/sdks/ts/commands/json/strlen.md): Report the length of the JSON String at path in key
- [JSON.TOGGLE](https://upstash.com/docs/redis/sdks/ts/commands/json/toggle.md): Toggle a boolean value stored at `path`.
- [JSON.TYPE](https://upstash.com/docs/redis/sdks/ts/commands/json/type.md): Report the type of JSON value at `path`.
- [LINDEX](https://upstash.com/docs/redis/sdks/ts/commands/list/lindex.md): Returns the element at index index in the list stored at key.
- [LINSERT](https://upstash.com/docs/redis/sdks/ts/commands/list/linsert.md): Insert an element before or after another element in a list
- [LLEN](https://upstash.com/docs/redis/sdks/ts/commands/list/llen.md): Returns the length of the list stored at key.
- [LMOVE](https://upstash.com/docs/redis/sdks/ts/commands/list/lmove.md): Move an element from one list to another.
- [LPOP](https://upstash.com/docs/redis/sdks/ts/commands/list/lpop.md): Remove and return the first element(s) of a list
- [LPOS](https://upstash.com/docs/redis/sdks/ts/commands/list/lpos.md): Returns the index of matching elements inside a list.
- [LPUSH](https://upstash.com/docs/redis/sdks/ts/commands/list/lpush.md): Push an element at the head of the list.
- [LPUSHX](https://upstash.com/docs/redis/sdks/ts/commands/list/lpushx.md): Push an element at the head of the list only if the list exists.
- [LRANGE](https://upstash.com/docs/redis/sdks/ts/commands/list/lrange.md): Returns the specified elements of the list stored at key.
- [LREM](https://upstash.com/docs/redis/sdks/ts/commands/list/lrem.md): Remove the first `count` occurrences of an element from a list.
- [LSET](https://upstash.com/docs/redis/sdks/ts/commands/list/lset.md): Set a value at a specific index.
- [LTRIM](https://upstash.com/docs/redis/sdks/ts/commands/list/ltrim.md): Trim a list to the specified range
- [RPOP](https://upstash.com/docs/redis/sdks/ts/commands/list/rpop.md): Remove and return the last element(s) of a list
- [RPUSH](https://upstash.com/docs/redis/sdks/ts/commands/list/rpush.md): Push an element at the end of the list.
- [RPUSHX](https://upstash.com/docs/redis/sdks/ts/commands/list/rpushx.md): Push an element at the end of the list only if the list exists.
- [Overview](https://upstash.com/docs/redis/sdks/ts/commands/overview.md): Available Commands in @upstash/redis
- [PSUBSCRIBE](https://upstash.com/docs/redis/sdks/ts/commands/pubsub/psubscribe.md): Subscribe to a channel by patterns/wildcards
- [PUBLISH](https://upstash.com/docs/redis/sdks/ts/commands/pubsub/publish.md): Publish a message to a channel
- [SUBSCRIBE](https://upstash.com/docs/redis/sdks/ts/commands/pubsub/subscribe.md): Subscribe to a channel
- [EVAL](https://upstash.com/docs/redis/sdks/ts/commands/scripts/eval.md): Evaluate a Lua script server side.
- [EVAL_RO](https://upstash.com/docs/redis/sdks/ts/commands/scripts/eval_ro.md): Evaluate a read-only Lua script server side.
- [EVALSHA](https://upstash.com/docs/redis/sdks/ts/commands/scripts/evalsha.md): Evaluate a cached Lua script server side.
- [EVALSHA_RO](https://upstash.com/docs/redis/sdks/ts/commands/scripts/evalsha_ro.md): Evaluate a cached read-only Lua script server side.
- [SCRIPT EXISTS](https://upstash.com/docs/redis/sdks/ts/commands/scripts/script_exists.md): Check if scripts exist in the script cache.
- [SCRIPT FLUSH](https://upstash.com/docs/redis/sdks/ts/commands/scripts/script_flush.md): Removes all scripts from the script cache.
- [SCRIPT LOAD](https://upstash.com/docs/redis/sdks/ts/commands/scripts/script_load.md): Load the specified Lua script into the script cache.
- [DBSIZE](https://upstash.com/docs/redis/sdks/ts/commands/server/dbsize.md): Count the number of keys in the database.
- [FLUSHALL](https://upstash.com/docs/redis/sdks/ts/commands/server/flushall.md)
- [FLUSHDB](https://upstash.com/docs/redis/sdks/ts/commands/server/flushdb.md)
- [SADD](https://upstash.com/docs/redis/sdks/ts/commands/set/sadd.md): Adds one or more members to a set.
- [SCARD](https://upstash.com/docs/redis/sdks/ts/commands/set/scard.md): Return how many members are in a set
- [SDIFF](https://upstash.com/docs/redis/sdks/ts/commands/set/sdiff.md): Return the difference between sets
- [SDIFFSTORE](https://upstash.com/docs/redis/sdks/ts/commands/set/sdiffstore.md): Write the difference between sets to a new set
- [SINTER](https://upstash.com/docs/redis/sdks/ts/commands/set/sinter.md): Return the intersection between sets
- [SINTERSTORE](https://upstash.com/docs/redis/sdks/ts/commands/set/sinterstore.md): Return the intersection between sets and store the resulting set in a key
- [SISMEMBER](https://upstash.com/docs/redis/sdks/ts/commands/set/sismember.md): Check if a member exists in a set
- [SMEMBERS](https://upstash.com/docs/redis/sdks/ts/commands/set/smembers.md): Return all the members of a set
- [SMISMEMBER](https://upstash.com/docs/redis/sdks/ts/commands/set/smismember.md): Check if multiple members exist in a set
- [SMOVE](https://upstash.com/docs/redis/sdks/ts/commands/set/smove.md): Move a member from one set to another
- [SPOP](https://upstash.com/docs/redis/sdks/ts/commands/set/spop.md): Removes and returns one or more random members from a set.
- [SRANDMEMBER](https://upstash.com/docs/redis/sdks/ts/commands/set/srandmember.md): Returns one or more random members from a set.
- [SREM](https://upstash.com/docs/redis/sdks/ts/commands/set/srem.md): Remove one or more members from a set
- [SSCAN](https://upstash.com/docs/redis/sdks/ts/commands/set/sscan.md): Scan a set
- [SUNION](https://upstash.com/docs/redis/sdks/ts/commands/set/sunion.md): Return the union between sets
- [SUNIONSTORE](https://upstash.com/docs/redis/sdks/ts/commands/set/sunionstore.md): Return the union between sets and store the resulting set in a key
- [XACK](https://upstash.com/docs/redis/sdks/ts/commands/stream/xack.md): Removes one or multiple messages from the pending entries list of a stream consumer group.
- [XACKDEL](https://upstash.com/docs/redis/sdks/ts/commands/stream/xackdel.md): Acknowledge and delete stream entries atomically.
- [XADD](https://upstash.com/docs/redis/sdks/ts/commands/stream/xadd.md): Appends one or more new entries to a stream.
- [XAUTOCLAIM](https://upstash.com/docs/redis/sdks/ts/commands/stream/xautoclaim.md): Changes the ownership of pending messages from one consumer to another in a stream consumer group.
- [XCLAIM](https://upstash.com/docs/redis/sdks/ts/commands/stream/xclaim.md): Changes the ownership of pending messages from one consumer to another in a stream consumer group.
- [XDEL](https://upstash.com/docs/redis/sdks/ts/commands/stream/xdel.md): Removes the specified entries from a stream, and returns the number of entries deleted.
- [XDELEX](https://upstash.com/docs/redis/sdks/ts/commands/stream/xdelex.md): Extended delete for streams with reference control.
- [XGROUP](https://upstash.com/docs/redis/sdks/ts/commands/stream/xgroup.md): Manage consumer groups for Redis streams.
- [XINFO](https://upstash.com/docs/redis/sdks/ts/commands/stream/xinfo.md): Returns information about streams, consumer groups, and consumers.
- [XLEN](https://upstash.com/docs/redis/sdks/ts/commands/stream/xlen.md): Returns the number of entries inside a stream.
- [XPENDING](https://upstash.com/docs/redis/sdks/ts/commands/stream/xpending.md): Returns information about pending messages in a stream consumer group.
- [XRANGE](https://upstash.com/docs/redis/sdks/ts/commands/stream/xrange.md): Returns stream entries matching a given range of IDs.
- [XREAD](https://upstash.com/docs/redis/sdks/ts/commands/stream/xread.md): Reads data from one or multiple streams, starting from the specified IDs.
- [XREADGROUP](https://upstash.com/docs/redis/sdks/ts/commands/stream/xreadgroup.md): Reads data from a stream as part of a consumer group.
- [XREVRANGE](https://upstash.com/docs/redis/sdks/ts/commands/stream/xrevrange.md): Returns stream entries matching a given range of IDs in reverse order.
- [XTRIM](https://upstash.com/docs/redis/sdks/ts/commands/stream/xtrim.md): Trims the stream by removing entries to keep it at a reasonable size.
- [String Commands](https://upstash.com/docs/redis/sdks/ts/commands/string.md)
- [APPEND](https://upstash.com/docs/redis/sdks/ts/commands/string/append.md): Append a value to a string stored at key.
- [DECR](https://upstash.com/docs/redis/sdks/ts/commands/string/decr.md): Decrement the integer value of a key by one
- [DECRBY](https://upstash.com/docs/redis/sdks/ts/commands/string/decrby.md): Decrement the integer value of a key by a given number.
- [GET](https://upstash.com/docs/redis/sdks/ts/commands/string/get.md): Return the value of the specified key or `null` if the key doesn't exist.
- [GETDEL](https://upstash.com/docs/redis/sdks/ts/commands/string/getdel.md): Return the value of the specified key and delete the key.
- [GETRANGE](https://upstash.com/docs/redis/sdks/ts/commands/string/getrange.md): Return a substring of value at the specified key.
- [GETSET](https://upstash.com/docs/redis/sdks/ts/commands/string/getset.md): Return the value of the specified key and replace it with a new value.
- [INCR](https://upstash.com/docs/redis/sdks/ts/commands/string/incr.md): Increment the integer value of a key by one
- [INCRBY](https://upstash.com/docs/redis/sdks/ts/commands/string/incrby.md): Increment the integer value of a key by a given number.
- [INCRBYFLOAT](https://upstash.com/docs/redis/sdks/ts/commands/string/incrbyfloat.md): Increment the float value of a key by a given number.
- [MGET](https://upstash.com/docs/redis/sdks/ts/commands/string/mget.md): Load multiple keys from Redis in one go.
- [MSET](https://upstash.com/docs/redis/sdks/ts/commands/string/mset.md): Set multiple keys in one go.
- [MSETNX](https://upstash.com/docs/redis/sdks/ts/commands/string/msetnx.md): Set multiple keys in one go unless they exist already.
- [SET](https://upstash.com/docs/redis/sdks/ts/commands/string/set.md): Set a key to hold a string value.
- [SETRANGE](https://upstash.com/docs/redis/sdks/ts/commands/string/setrange.md): Writes the value of key at offset.
- [STRLEN](https://upstash.com/docs/redis/sdks/ts/commands/string/strlen.md): Return the length of a string stored at a key.
- [Transactions](https://upstash.com/docs/redis/sdks/ts/commands/transaction.md): Transactions
- [ZADD](https://upstash.com/docs/redis/sdks/ts/commands/zset/zadd.md): Add a member to a sorted set, or update its score if it already exists.
- [ZCARD](https://upstash.com/docs/redis/sdks/ts/commands/zset/zcard.md): Returns the number of elements in the sorted set stored at key.
- [ZCOUNT](https://upstash.com/docs/redis/sdks/ts/commands/zset/zcount.md): Returns the number of elements in the sorted set stored at key filterd by score.
- [ZDIFFSTORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zdiffstore.md): Writes the difference between sets to a new key.
- [ZINCRBY](https://upstash.com/docs/redis/sdks/ts/commands/zset/zincrby.md): Increment the score of a member.
- [ZINTERSTORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zinterstore.md): Writes the intersection between sets to a new key.
- [ZLEXCOUNT](https://upstash.com/docs/redis/sdks/ts/commands/zset/zlexcount.md): Returns the number of elements in the sorted set stored at key filtered by lex.
- [ZMSCORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zmscore.md): Returns the scores of multiple members.
- [ZPOPMAX](https://upstash.com/docs/redis/sdks/ts/commands/zset/zpopmax.md): Removes and returns up to count members with the highest scores in the sorted set stored at key.
- [ZPOPMIN](https://upstash.com/docs/redis/sdks/ts/commands/zset/zpopmin.md): Removes and returns up to count members with the lowest scores in the sorted set stored at key.
- [ZRANGE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zrange.md): Returns the specified range of elements in the sorted set stored at key.
- [ZRANK](https://upstash.com/docs/redis/sdks/ts/commands/zset/zrank.md): Returns the rank of a member
- [ZREM](https://upstash.com/docs/redis/sdks/ts/commands/zset/zrem.md): Remove one or more members from a sorted set
- [ZREMRANGEBYLEX](https://upstash.com/docs/redis/sdks/ts/commands/zset/zremrangebylex.md): Remove all members in a sorted set between the given lexicographical range.
- [ZREMRANGEBYRANK](https://upstash.com/docs/redis/sdks/ts/commands/zset/zremrangebyrank.md): Remove all members in a sorted set between the given ranks.
- [ZREMRANGEBYSCORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zremrangebyscore.md): Remove all members in a sorted set between the given scores.
- [ZREVRANK](https://upstash.com/docs/redis/sdks/ts/commands/zset/zrevrank.md): Returns the rank of a member in a sorted set, with scores ordered from high to low.
- [ZSCAN](https://upstash.com/docs/redis/sdks/ts/commands/zset/zscan.md): Scan a sorted set
- [ZSCORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zscore.md): Returns the scores of a member.
- [ZUNIONSTORE](https://upstash.com/docs/redis/sdks/ts/commands/zset/zunionstore.md): Writes the union between sets to a new key.
- [Deployment](https://upstash.com/docs/redis/sdks/ts/deployment.md)
- [Developing or Testing](https://upstash.com/docs/redis/sdks/ts/developing.md)
- [Get Started](https://upstash.com/docs/redis/sdks/ts/getstarted.md)
- [Overview](https://upstash.com/docs/redis/sdks/ts/overview.md)
- [Auto-Pipelining](https://upstash.com/docs/redis/sdks/ts/pipelining/auto-pipeline.md)
- [Pipeline & Transaction](https://upstash.com/docs/redis/sdks/ts/pipelining/pipeline-transaction.md)
- [Retries](https://upstash.com/docs/redis/sdks/ts/retries.md)
- [Troubleshooting](https://upstash.com/docs/redis/sdks/ts/troubleshooting.md)
- [ioredis](https://upstash.com/docs/redis/search/adapters/ioredis.md): Use Redis Search with ioredis via the @upstash/search-ioredis adapter
- [node-redis](https://upstash.com/docs/redis/search/adapters/node-redis.md): Use Redis Search with node-redis via the @upstash/search-redis adapter
- [$dateHistogram](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/date-histogram.md)
- [$facet](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/facet.md)
- [$histogram](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/histogram.md)
- [Overview](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/overview.md)
- [$range](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/range.md)
- [$terms](https://upstash.com/docs/redis/search/aggregation-operators/bucket-aggregations/terms.md)
- [$avg](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/avg.md)
- [$cardinality](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/cardinality.md)
- [$count](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/count.md)
- [$extendedStats](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/extended-stats.md)
- [$max](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/max.md)
- [$min](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/min.md)
- [Overview](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/overview.md)
- [$percentiles](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/percentiles.md)
- [$stats](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/stats.md)
- [$sum](https://upstash.com/docs/redis/search/aggregation-operators/metric-aggregations/sum.md)
- [Aggregations](https://upstash.com/docs/redis/search/aggregations.md)
- [Aliases](https://upstash.com/docs/redis/search/aliases.md)
- [Command Reference](https://upstash.com/docs/redis/search/command-reference.md): Browse the commands supported by Upstash Redis Search.
- [Counting](https://upstash.com/docs/redis/search/counting.md)
- [Document Updates](https://upstash.com/docs/redis/search/document-updates.md)
- [Quickstart](https://upstash.com/docs/redis/search/getting-started.md)
- [Indices](https://upstash.com/docs/redis/search/index-management.md)
- [Introduction](https://upstash.com/docs/redis/search/introduction.md)
- [$boost](https://upstash.com/docs/redis/search/query-operators/boolean-operators/boost.md)
- [$must](https://upstash.com/docs/redis/search/query-operators/boolean-operators/must.md)
- [$mustNot](https://upstash.com/docs/redis/search/query-operators/boolean-operators/must-not.md)
- [Overview](https://upstash.com/docs/redis/search/query-operators/boolean-operators/overview.md)
- [$should](https://upstash.com/docs/redis/search/query-operators/boolean-operators/should.md)
- [$boost](https://upstash.com/docs/redis/search/query-operators/field-operators/boost.md)
- [$eq](https://upstash.com/docs/redis/search/query-operators/field-operators/eq.md)
- [$fuzzy](https://upstash.com/docs/redis/search/query-operators/field-operators/fuzzy.md)
- [$in](https://upstash.com/docs/redis/search/query-operators/field-operators/in.md)
- [Overview](https://upstash.com/docs/redis/search/query-operators/field-operators/overview.md)
- [$phrase](https://upstash.com/docs/redis/search/query-operators/field-operators/phrase.md)
- [Range Operators](https://upstash.com/docs/redis/search/query-operators/field-operators/range-operators.md)
- [$regex](https://upstash.com/docs/redis/search/query-operators/field-operators/regex.md)
- [Smart Matching](https://upstash.com/docs/redis/search/query-operators/field-operators/smart-matching.md)
- [Queries](https://upstash.com/docs/redis/search/querying.md)
- [Blog Search](https://upstash.com/docs/redis/search/recipes/blog-search.md)
- [E-commerce Search](https://upstash.com/docs/redis/search/recipes/e-commerce-search.md)
- [Overview](https://upstash.com/docs/redis/search/recipes/overview.md)
- [User Directory](https://upstash.com/docs/redis/search/recipes/user-directory.md)
- [Schemas](https://upstash.com/docs/redis/search/schema-definition.md)
- [Troubleshooting](https://upstash.com/docs/redis/search/troubleshooting.md)
- [Unexpected Increase in Command Count](https://upstash.com/docs/redis/troubleshooting/command_count_increases_unexpectedly.md)
- [ERR DB capacity quota exceeded](https://upstash.com/docs/redis/troubleshooting/db_capacity_quota_exceeded.md)
- [Error read ECONNRESET](https://upstash.com/docs/redis/troubleshooting/econn_reset.md)
- [WRONGPASS invalid or missing auth token](https://upstash.com/docs/redis/troubleshooting/http_unauthorized.md)
- [ERR max concurrent connections exceeded](https://upstash.com/docs/redis/troubleshooting/max_concurrent_connections.md)
- [ERR max daily request limit exceeded](https://upstash.com/docs/redis/troubleshooting/max_daily_request_limit.md)
- [ERR max key size exceeded](https://upstash.com/docs/redis/troubleshooting/max_key_size_exceeded.md)
- [ERR max single record size exceeded](https://upstash.com/docs/redis/troubleshooting/max_record_size_exceeded.md)
- [ERR max request size exceeded](https://upstash.com/docs/redis/troubleshooting/max_request_size_exceeded.md)
- [ERR max requests limit exceeded](https://upstash.com/docs/redis/troubleshooting/max_requests_limit.md)
- [NOAUTH Authentication Required](https://upstash.com/docs/redis/troubleshooting/no_auth.md)
- [Connecting with Read-Only Access](https://upstash.com/docs/redis/troubleshooting/readonly_connection.md)
- [ERR XReadGroup is cancelled](https://upstash.com/docs/redis/troubleshooting/stream_pel_limit.md)
- [Agent Memory with Redis Search](https://upstash.com/docs/redis/tutorials/agent_memory.md): Build short-term and long-term memory for AI agents on Upstash Redis. Store working memory with TTLs and recall long-term memories with Redis Search full-text queries.
- [Deploy a Serverless API with AWS CDK and AWS Lambda](https://upstash.com/docs/redis/tutorials/api_with_cdk.md)
- [Autocomplete API with Serverless Redis](https://upstash.com/docs/redis/tutorials/auto_complete_with_serverless_redis.md)
- [Build Stateful Applications with AWS App Runner and Serverless Redis](https://upstash.com/docs/redis/tutorials/aws_app_runner_with_redis.md): This tutorial shows how to create a serverless and stateful application using AWS App Runner and Redis
- [Session Management on Google Cloud Run with Serverless Redis](https://upstash.com/docs/redis/tutorials/cloud_run_sessions.md): This tutorial shows how to manage user sessions on Google Cloud Run using Serverless Redis.
- [Cloudflare Workers with Websockets and Redis](https://upstash.com/docs/redis/tutorials/cloudflare_websockets_redis.md)
- [Use Redis in Cloudflare Workers](https://upstash.com/docs/redis/tutorials/cloudflare_workers_with_redis.md)
- [Backendless Coin Price List with GraphQL API, Serverless Redis and Next.JS](https://upstash.com/docs/redis/tutorials/coin_price_list.md)
- [Build a Leaderboard API At Edge using Cloudflare Workers and Redis](https://upstash.com/docs/redis/tutorials/edge_leaderboard.md): This tutorial shows how to build a Leaderboard API At Edge using Cloudflare Workers and Redis.
- [Express Session with Serverless Redis](https://upstash.com/docs/redis/tutorials/express_session.md): This tutorial shows how to use Upstash as the session storage of your Express application.
- [Serverless Golang API with Redis](https://upstash.com/docs/redis/tutorials/goapi.md)
- [Build a Serverless Histogram API with Redis](https://upstash.com/docs/redis/tutorials/histogram.md): This tutorial shows how to build a histogram API with Redis.
- [Job Processing and Event Queue with Serverless Redis](https://upstash.com/docs/redis/tutorials/job_processing.md): This tutorial shows how to use Upstash Redis for job/task processing.
- [Caching in Laravel with Redis](https://upstash.com/docs/redis/tutorials/laravel_caching.md)
- [Next.js with Redis](https://upstash.com/docs/redis/tutorials/nextjs_with_redis.md)
- [Building a Serverless Notification API for Your Web Application with Redis](https://upstash.com/docs/redis/tutorials/notification.md): This tutorial shows how to create a Serverless Notification API for Your Web Application with Redis.
- [Nuxt with Redis](https://upstash.com/docs/redis/tutorials/nuxtjs_with_redis.md): This tutorial shows how to use Upstash inside your Nuxt application.
- [Redis as a Cache for Your FastAPI App](https://upstash.com/docs/redis/tutorials/python_fastapi_caching.md)
- [Multithreaded Web Scraping with Redis Caching](https://upstash.com/docs/redis/tutorials/python_multithreading.md)
- [Rate Limiting for Your FastAPI App](https://upstash.com/docs/redis/tutorials/python_rate_limiting.md)
- [Build a Real-Time Chat Application with Serverless Redis](https://upstash.com/docs/redis/tutorials/python_realtime_chat.md)
- [Manage Sessions in Python with Serverless Redis](https://upstash.com/docs/redis/tutorials/python_session.md)
- [Building a URL Shortener with Redis](https://upstash.com/docs/redis/tutorials/python_url_shortener.md)
- [Serverless Python API with Redis](https://upstash.com/docs/redis/tutorials/pythonapi.md)
- [AWS Lambda Rate Limiting with Serverless Redis](https://upstash.com/docs/redis/tutorials/rate-limiting.md)
- [Redis Queue: From FIFO Lists to a Job Queue](https://upstash.com/docs/redis/tutorials/redis_queue.md): How to build FIFO, reliable, and blocking queues on Upstash Redis, then a delayed and prioritized job queue with a dead-letter queue.
- [Serverless Redisson](https://upstash.com/docs/redis/tutorials/redisson.md): This tutorial shows how to use Upstash with Redisson client.
- [Roadmap Voting App with Serverless Redis](https://upstash.com/docs/redis/tutorials/roadmapvotingapp.md): This is a single page application powered by upstash and next.js.
- [Serverless API with Java and Redis](https://upstash.com/docs/redis/tutorials/serverless_java_redis.md)
- [TanStack AI Chat Persistance](https://upstash.com/docs/redis/tutorials/tanstack_chat_persistence.md): Use Upstash Redis to persist TanStack AI chat histories across reloads, navigation, and devices with a simple adapter.
- [Using AWS SAM](https://upstash.com/docs/redis/tutorials/using_aws_sam.md)
- [Serverless Redis on Google Cloud Run functions](https://upstash.com/docs/redis/tutorials/using_google_cloud_functions.md)
- [Using Serverless Framework](https://upstash.com/docs/redis/tutorials/using_serverless_framework.md)
- [Advanced Settings](https://upstash.com/docs/search/features/advanced-settings.md)
- [Algorithm](https://upstash.com/docs/search/features/algorithm.md)
- [Content and Metadata](https://upstash.com/docs/search/features/content-and-metadata.md): How to use content and metadata fields in your documents
- [Filtering](https://upstash.com/docs/search/features/filtering.md)
- [Indexes](https://upstash.com/docs/search/features/indexes.md)
- [Reranking](https://upstash.com/docs/search/features/reranking.md)
- [FAQ](https://upstash.com/docs/search/help/faq.md): Questions And Answers About Upstash Search
- [Docusaurus Integration](https://upstash.com/docs/search/integrations/docusaurus.md): AI-powered search component for Docusaurus using Upstash Search.
- [Getting Started](https://upstash.com/docs/search/overall/getstarted.md): Creating an Upstash Search Database
- [Pricing & Limits](https://upstash.com/docs/search/overall/pricing.md)
- [What is Upstash Search?](https://upstash.com/docs/search/overall/whatisupstashsearch.md): Lightweight, AI-powered search for developers
- [Delete](https://upstash.com/docs/search/sdks/py/commands/delete.md)
- [Fetch](https://upstash.com/docs/search/sdks/py/commands/fetch.md)
- [Info](https://upstash.com/docs/search/sdks/py/commands/info.md)
- [Range](https://upstash.com/docs/search/sdks/py/commands/range.md)
- [Reset](https://upstash.com/docs/search/sdks/py/commands/reset.md)
- [Search](https://upstash.com/docs/search/sdks/py/commands/search.md)
- [Upsert](https://upstash.com/docs/search/sdks/py/commands/upsert.md)
- [Getting Started](https://upstash.com/docs/search/sdks/py/gettingstarted.md)
- [Delete](https://upstash.com/docs/search/sdks/ts/commands/delete.md)
- [Fetch](https://upstash.com/docs/search/sdks/ts/commands/fetch.md)
- [Info](https://upstash.com/docs/search/sdks/ts/commands/info.md)
- [Range](https://upstash.com/docs/search/sdks/ts/commands/range.md)
- [Reset](https://upstash.com/docs/search/sdks/ts/commands/reset.md)
- [Search](https://upstash.com/docs/search/sdks/ts/commands/search.md)
- [Upsert](https://upstash.com/docs/search/sdks/ts/commands/upsert.md)
- [Contributing](https://upstash.com/docs/search/sdks/ts/contributing.md)
- [Getting Started](https://upstash.com/docs/search/sdks/ts/getting-started.md)
- [Database Migrator](https://upstash.com/docs/search/tools/databasemigrator.md): a CLI tool to migrate your data to Upstash Search
- [Documentation Crawler](https://upstash.com/docs/search/tools/documentationcrawler.md): A tool to crawl docs and feed Upstash Search database
- [Docs Search Quickstart](https://upstash.com/docs/search/tutorials/buildsearchbar.md): Add Upstash Search to your website in minutes
- [Next.js Search Quickstart](https://upstash.com/docs/search/tutorials/nextjs.md): Getting Started With Upstash Search and Next.js
- [SearchBar](https://upstash.com/docs/search/ui/search-bar.md): A beautifully-designed, accessible search component for React
- [Delete Vectors](https://upstash.com/docs/vector/api/endpoints/delete.md): Deletes the vectors with the given ids.
- [Delete Namespace](https://upstash.com/docs/vector/api/endpoints/delete-namespace.md): Deletes a namespace of an index.
- [Fetch Vectors](https://upstash.com/docs/vector/api/endpoints/fetch.md): Fetches the vectors with the provided ids.
- [Fetch Random Vector](https://upstash.com/docs/vector/api/endpoints/fetch-random.md): Fetches a random vector.
- [Index Info](https://upstash.com/docs/vector/api/endpoints/info.md): Returns some information about the index.
- [List Namespaces](https://upstash.com/docs/vector/api/endpoints/list-namespaces.md): Lists the names of the namespaces of an index.
- [Query Vectors](https://upstash.com/docs/vector/api/endpoints/query.md): Queries the approximate nearest neighbors of a vector.
- [Query Data](https://upstash.com/docs/vector/api/endpoints/query-data.md): Queries the approximate nearest neighbors of a raw text data after embedding it.
- [Range Vectors](https://upstash.com/docs/vector/api/endpoints/range.md): Ranges over vectors starting(inclusive) from a cursor until the end of the vectors in the or given limit.
- [Rename Namespace](https://upstash.com/docs/vector/api/endpoints/rename-namespace.md): Renames a namespace of an index.
- [Reset Namespace(s)](https://upstash.com/docs/vector/api/endpoints/reset.md): Resets one or all namespaces of an index to its initial state by deleting all the vectors.
- [Resume](https://upstash.com/docs/vector/api/endpoints/resumable-query/resume.md): Resumes a previously started query to fetch additional results.
- [Start with Data](https://upstash.com/docs/vector/api/endpoints/resumable-query/start-with-data.md): Perform queries using text data that can be resumed to fetch additional results.
- [Start with Vector](https://upstash.com/docs/vector/api/endpoints/resumable-query/start-with-vector.md): Perform queries that can be resumed to fetch additional results.
- [Stop Resumable Query](https://upstash.com/docs/vector/api/endpoints/resumable-query/stop.md): Ends a resumable query and releases associated resources.
- [Update Vector](https://upstash.com/docs/vector/api/endpoints/update.md): Updates a vector, data or metadata.
- [Upsert Vectors](https://upstash.com/docs/vector/api/endpoints/upsert.md): Upserts (inserts or updates) the vector.
- [Upsert Data](https://upstash.com/docs/vector/api/endpoints/upsert-data.md): Upserts (inserts or updates) the raw text data after embedding it.
- [Getting Started](https://upstash.com/docs/vector/api/get-started.md)
- [Examples](https://upstash.com/docs/vector/examples.md)
- [Algorithm](https://upstash.com/docs/vector/features/algorithm.md)
- [Embedding Models](https://upstash.com/docs/vector/features/embeddingmodels.md)
- [Metadata Filtering](https://upstash.com/docs/vector/features/filtering.md)
- [Hybrid Indexes](https://upstash.com/docs/vector/features/hybridindexes.md)
- [Metadata and Data](https://upstash.com/docs/vector/features/metadata.md)
- [Namespaces](https://upstash.com/docs/vector/features/namespaces.md)
- [Resumable Query](https://upstash.com/docs/vector/features/resumablequery.md)
- [Vector Similarity Functions](https://upstash.com/docs/vector/features/similarityfunctions.md)
- [Sparse Indexes](https://upstash.com/docs/vector/features/sparseindexes.md)
- [FAQ](https://upstash.com/docs/vector/help/faq.md)
- [Vercel AI SDK with Upstash Vector](https://upstash.com/docs/vector/integrations/ai-sdk.md)
- [Flowise with Upstash Vector and Redis](https://upstash.com/docs/vector/integrations/flowise.md)
- [LangChain with Upstash Vector](https://upstash.com/docs/vector/integrations/langchain.md)
- [Langflow with Upstash Vector](https://upstash.com/docs/vector/integrations/langflow.md)
- [LlamaIndex with Upstash Vector](https://upstash.com/docs/vector/integrations/llamaindex.md)
- [LlamaParse with Upstash Vector](https://upstash.com/docs/vector/integrations/llamaparse.md)
- [Changelog](https://upstash.com/docs/vector/overall/changelog.md)
- [Compare](https://upstash.com/docs/vector/overall/compare.md)
- [Getting Started](https://upstash.com/docs/vector/overall/getstarted.md)
- [llms.txt](https://upstash.com/docs/vector/overall/llms-txt.md)
- [Pricing & Limits](https://upstash.com/docs/vector/overall/pricing.md)
- [What is Upstash Vector?](https://upstash.com/docs/vector/overall/whatisvector.md)
- [Go SDK](https://upstash.com/docs/vector/sdk/gosdk.md)
- [Semantic Cache JS](https://upstash.com/docs/vector/sdk/semantic-cache-js.md)
- [Semantic Cache Python](https://upstash.com/docs/vector/sdk/semantic-cache-py.md)
- [Deleting Vectors](https://upstash.com/docs/vector/sdks/php/commands/delete-vectors.md)
- [Fetching Vectors](https://upstash.com/docs/vector/sdks/php/commands/fetch.md)
- [Info](https://upstash.com/docs/vector/sdks/php/commands/info.md)
- [Querying Vectors](https://upstash.com/docs/vector/sdks/php/commands/query.md)
- [Reset](https://upstash.com/docs/vector/sdks/php/commands/reset.md)
- [Upserting Data with Embedding Models](https://upstash.com/docs/vector/sdks/php/commands/upsert-data.md)
- [Upserting Vectors](https://upstash.com/docs/vector/sdks/php/commands/upsert-vectors.md)
- [Getting Started](https://upstash.com/docs/vector/sdks/php/getting-started.md)
- [Getting Started with Laravel](https://upstash.com/docs/vector/sdks/php/laravel.md)
- [Delete](https://upstash.com/docs/vector/sdks/py/example_calls/delete.md)
- [Fetch](https://upstash.com/docs/vector/sdks/py/example_calls/fetch.md)
- [Info](https://upstash.com/docs/vector/sdks/py/example_calls/info.md)
- [Query](https://upstash.com/docs/vector/sdks/py/example_calls/query.md)
- [Range](https://upstash.com/docs/vector/sdks/py/example_calls/range.md)
- [Reset](https://upstash.com/docs/vector/sdks/py/example_calls/reset.md)
- [Resumable Query](https://upstash.com/docs/vector/sdks/py/example_calls/resumable-query.md)
- [Update](https://upstash.com/docs/vector/sdks/py/example_calls/update.md)
- [Upsert](https://upstash.com/docs/vector/sdks/py/example_calls/upsert.md)
- [Features](https://upstash.com/docs/vector/sdks/py/features.md)
- [Getting Started](https://upstash.com/docs/vector/sdks/py/gettingstarted.md)
- [Advanced](https://upstash.com/docs/vector/sdks/ts/advanced.md)
- [Delete](https://upstash.com/docs/vector/sdks/ts/commands/delete.md)
- [Fetch](https://upstash.com/docs/vector/sdks/ts/commands/fetch.md)
- [Info](https://upstash.com/docs/vector/sdks/ts/commands/info.md)
- [Query](https://upstash.com/docs/vector/sdks/ts/commands/query.md)
- [Range](https://upstash.com/docs/vector/sdks/ts/commands/range.md)
- [Reset](https://upstash.com/docs/vector/sdks/ts/commands/reset.md)
- [Resumable Query](https://upstash.com/docs/vector/sdks/ts/commands/resumable-query.md)
- [Upsert](https://upstash.com/docs/vector/sdks/ts/commands/upsert.md)
- [Contributing](https://upstash.com/docs/vector/sdks/ts/contributing.md)
- [Getting Started](https://upstash.com/docs/vector/sdks/ts/getting-started.md)
- [Create and Deploy RAG Applications with Gradio](https://upstash.com/docs/vector/tutorials/gradio-application.md)
- [Use Hugging Face Embeddings with Upstash Vector](https://upstash.com/docs/vector/tutorials/huggingface-embeddings.md)
- [Implement Semantic Search with LangChain](https://upstash.com/docs/vector/tutorials/langchain.md)
- [RAG with LlamaIndex](https://upstash.com/docs/vector/tutorials/llamaindex.md)
- [Parsing and Querying Documents with LlamaParse](https://upstash.com/docs/vector/tutorials/llamaparse.md)
- [Simple Semantic Search](https://upstash.com/docs/vector/tutorials/semantic_search.md)
- [Examples](https://upstash.com/docs/workflow/agents/examples.md)
- [Features](https://upstash.com/docs/workflow/agents/features.md)
- [Getting Started](https://upstash.com/docs/workflow/agents/getting-started.md)
- [Overview](https://upstash.com/docs/workflow/agents/overview.md)
- [Evaluator-Optimizer](https://upstash.com/docs/workflow/agents/patterns/evaluator-optimizer.md)
- [Orchestrator-Workers](https://upstash.com/docs/workflow/agents/patterns/orchestrator-workers.md)
- [Parallelization](https://upstash.com/docs/workflow/agents/patterns/parallelization.md)
- [Prompt Chaining](https://upstash.com/docs/workflow/agents/patterns/prompt-chaining.md)
- [Bulk Delete Failed Workflow Runs](https://upstash.com/docs/workflow/api-reference/dlq/bulk-delete-failed-workflow-runs.md): Delete multiple failed workflow runs from the DLQ.
- [Bulk Restart Workflows from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/bulk-restart-workflows-from-dlq.md): Restart multiple failed workflow runs from the DLQ. Each workflow will start from the beginning.
- [Bulk Resume Workflows from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/bulk-resume-workflows-from-dlq.md): When a workflow run fails, it's automatically moved to the DLQ (Dead Letter Queue) where it can be analyzed and resumed.    The resume feature allows you to continue a failed workflow run from exactly where it failed, without re-executing successfully completed steps.
- [Cancel In-Progress Failure Callback](https://upstash.com/docs/workflow/api-reference/dlq/cancel-in-progress-failure-callback.md): Cancel an in-progress failure callback for a failed workflow.
- [Delete Failed Workflow Run](https://upstash.com/docs/workflow/api-reference/dlq/delete-failed-workflow-run.md): Delete a specific failed workflow run from the DLQ.
- [Get Failed Workflow Run](https://upstash.com/docs/workflow/api-reference/dlq/get-failed-workflow-run.md): Get details of a specific failed workflow run from the DLQ.
- [List Failed Workflow Runs](https://upstash.com/docs/workflow/api-reference/dlq/list-failed-workflow-runs.md): List and paginate through all failed workflow runs currently in the DLQ.
- [Restart Workflow from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/restart-workflow-from-dlq.md): Restart a failed workflow run from the DLQ. The workflow will start from the beginning.
- [Resume Workflow from DLQ](https://upstash.com/docs/workflow/api-reference/dlq/resume-workflow-from-dlq.md)
- [Retry Failure Callback](https://upstash.com/docs/workflow/api-reference/dlq/retry-failure-callback.md): If the failure callback for a workflow run has failed, you can use this endpoint to manually trigger the failure callback again.  This is useful for ensuring that your system is notified of workflow failures even if the original callback attempt did not succeed.
- [Get Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key.md): Get details of a specific Flow Control key
- [Get Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/get-flow-control-key-1.md): Get details of a specific Flow Control key.
- [Get Global Parallelism](https://upstash.com/docs/workflow/api-reference/flow-control/get-global-parallelism.md): Returns the current global parallelism usage across all flow control keys
- [List Flow Control Keys](https://upstash.com/docs/workflow/api-reference/flow-control/list-flow-control-keys.md): List all Flow Control keys
- [Pause Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/pause-flow-control-key.md): Pauses the delivery of messages associated with a specific flow-control key.
- [Pin Configuration for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/pin-configuration-for-flow-control-key.md): Pins a processing configuration for a specific flow-control key.
- [Reset Rate for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/reset-rate-for-flow-control-key.md): Resets the rate configuration state for a specific flow-control key.
- [Resume Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/resume-flow-control-key.md): Resumes the delivery of messages associated with a specific flow-control key.
- [Unpin Configuration for Flow Control Key](https://upstash.com/docs/workflow/api-reference/flow-control/unpin-configuration-for-flow-control-key.md): Removes the pinned configuration for a specific flow-control key.
- [List Workflow Run Logs](https://upstash.com/docs/workflow/api-reference/logs/list-workflow-run-logs.md)
- [List Waiters](https://upstash.com/docs/workflow/api-reference/notify/list-waiters.md): List all active waiters for a specific event ID.
- [Notify Event](https://upstash.com/docs/workflow/api-reference/notify/notify-event.md): Notify an event to all waiters listening for that event ID.
- [Notify Workflow Run Event](https://upstash.com/docs/workflow/api-reference/notify/notify-workflow-run-event.md): Notify an event to a specific workflow run's waiters.
- [Batch Trigger Workflow Runs](https://upstash.com/docs/workflow/api-reference/runs/batch-trigger-workflow-runs.md): Start multiple workflow runs in a single request.
- [Bulk Cancel Workflow Runs](https://upstash.com/docs/workflow/api-reference/runs/bulk-cancel-workflow-runs.md): Cancel all matching workflow runs.
- [Cancel Workflow Run](https://upstash.com/docs/workflow/api-reference/runs/cancel-workflow-run.md): Cancel an ongoing workflow run.
- [Trigger Workflow Run](https://upstash.com/docs/workflow/api-reference/runs/trigger-workflow-run.md): Start a new workflow run.
- [Get Signing Keys](https://upstash.com/docs/workflow/api-reference/signing-keys/get-signing-keys.md): Retrieve your current and next signing keys
- [Rotate Signing Keys](https://upstash.com/docs/workflow/api-reference/signing-keys/rotate-signing-keys.md): Rotate your signing keys
- [Caveats](https://upstash.com/docs/workflow/basics/caveats.md)
- [Overview](https://upstash.com/docs/workflow/basics/client.md)
- [client.cancel](https://upstash.com/docs/workflow/basics/client/cancel.md)
- [client.dlq.retryFailureFunction](https://upstash.com/docs/workflow/basics/client/dlq/callback.md)
- [client.dlq.delete](https://upstash.com/docs/workflow/basics/client/dlq/delete.md)
- [client.dlq.list](https://upstash.com/docs/workflow/basics/client/dlq/list.md)
- [client.dlq.restart](https://upstash.com/docs/workflow/basics/client/dlq/restart.md)
- [client.dlq.resume](https://upstash.com/docs/workflow/basics/client/dlq/resume.md)
- [client.logs](https://upstash.com/docs/workflow/basics/client/logs.md)
- [client.notify](https://upstash.com/docs/workflow/basics/client/notify.md)
- [client.trigger](https://upstash.com/docs/workflow/basics/client/trigger.md)
- [client.getWaiters](https://upstash.com/docs/workflow/basics/client/waiters.md)
- [How Workflow Works](https://upstash.com/docs/workflow/basics/how.md)
- [Overview](https://upstash.com/docs/workflow/basics/serve.md)
- [Advanced Options](https://upstash.com/docs/workflow/basics/serve/advanced.md)
- [Changelog](https://upstash.com/docs/workflow/changelog.md)
- [AI Generation](https://upstash.com/docs/workflow/examples/allInOne.md)
- [Auth Provider Webhook](https://upstash.com/docs/workflow/examples/authWebhook.md)
- [Custom Retry Logic](https://upstash.com/docs/workflow/examples/customRetry.md)
- [Customer Onboarding](https://upstash.com/docs/workflow/examples/customerOnboarding.md)
- [Dynamic Workflows](https://upstash.com/docs/workflow/examples/dynamicWorkflow.md)
- [E-commerce Order Fulfillment](https://upstash.com/docs/workflow/examples/eCommerceOrderFulfillment.md)
- [Image Processing](https://upstash.com/docs/workflow/examples/imageProcessing.md)
- [Payment Retries](https://upstash.com/docs/workflow/examples/paymentRetry.md)
- [Waiting for Events](https://upstash.com/docs/workflow/examples/waitForEvent.md)
- [Overview](https://upstash.com/docs/workflow/features/dlq.md)
- [Rerun Failure Function](https://upstash.com/docs/workflow/features/dlq/callback.md)
- [Delete](https://upstash.com/docs/workflow/features/dlq/delete.md)
- [Restart](https://upstash.com/docs/workflow/features/dlq/restart.md)
- [Resume](https://upstash.com/docs/workflow/features/dlq/resume.md)
- [Overview](https://upstash.com/docs/workflow/features/failure-callback.md)
- [Advanced failureUrl Option](https://upstash.com/docs/workflow/features/failureFunction/advanced.md)
- [Reliability of Failure Function](https://upstash.com/docs/workflow/features/failureFunction/reliability.md)
- [Overview](https://upstash.com/docs/workflow/features/flow-control.md)
- [Monitor & Manage](https://upstash.com/docs/workflow/features/flow-control/monitor.md)
- [Parallelism](https://upstash.com/docs/workflow/features/flow-control/parallelism.md)
- [Rate and Period](https://upstash.com/docs/workflow/features/flow-control/rate-period.md)
- [Overview](https://upstash.com/docs/workflow/features/invoke.md)
- [Using Serve Many](https://upstash.com/docs/workflow/features/invoke/serveMany.md)
- [Notify](https://upstash.com/docs/workflow/features/notify.md)
- [Parallel Steps](https://upstash.com/docs/workflow/features/parallel-steps.md)
- [Overview](https://upstash.com/docs/workflow/features/retries.md)
- [Prevent Retries](https://upstash.com/docs/workflow/features/retries/prevent-retries.md)
- [Sleep](https://upstash.com/docs/workflow/features/sleep.md)
- [Wait](https://upstash.com/docs/workflow/features/wait.md)
- [Overview](https://upstash.com/docs/workflow/features/wait-for-event.md)
- [Webhooks](https://upstash.com/docs/workflow/features/webhooks.md)
- [Overview](https://upstash.com/docs/workflow/getstarted.md)
- [Cancel a Run](https://upstash.com/docs/workflow/howto/cancel.md)
- [Update a Workflow](https://upstash.com/docs/workflow/howto/changes.md)
- [Configure a Run](https://upstash.com/docs/workflow/howto/configure.md)
- [Handle Failed Runs](https://upstash.com/docs/workflow/howto/failures.md)
- [Flow control](https://upstash.com/docs/workflow/howto/flow-control.md)
- [Get your QStash Token](https://upstash.com/docs/workflow/howto/get-token.md)
- [Development Server](https://upstash.com/docs/workflow/howto/local-development/development-server.md)
- [Local Tunnel](https://upstash.com/docs/workflow/howto/local-development/local-tunnel.md)
- [Middlewares](https://upstash.com/docs/workflow/howto/middlewares.md)
- [Migration Guide](https://upstash.com/docs/workflow/howto/migrations.md)
- [Select a Region](https://upstash.com/docs/workflow/howto/multi-region.md)
- [Parallel Runs](https://upstash.com/docs/workflow/howto/parallel-runs.md)
- [Read-only Token](https://upstash.com/docs/workflow/howto/readonly-token.md)
- [Realtime Quickstart](https://upstash.com/docs/workflow/howto/realtime/basic.md)
- [Human-in-the-Loop](https://upstash.com/docs/workflow/howto/realtime/human-in-the-loop.md)
- [Redact Private Data](https://upstash.com/docs/workflow/howto/redact-fields.md): How to redact private data in your workflow runs
- [Schedule a Workflow](https://upstash.com/docs/workflow/howto/schedule.md)
- [Secure a Workflow](https://upstash.com/docs/workflow/howto/security.md)
- [Start a Run](https://upstash.com/docs/workflow/howto/start.md)
- [Webhooks](https://upstash.com/docs/workflow/howto/use-webhooks.md)
- [Vercel AI SDK](https://upstash.com/docs/workflow/integrations/aisdk.md)
- [Anthropic](https://upstash.com/docs/workflow/integrations/anthropic.md)
- [Datadog - Upstash QStash Integration](https://upstash.com/docs/workflow/integrations/datadog.md)
- [OpenAI](https://upstash.com/docs/workflow/integrations/openai.md)
- [Prometheus - Upstash QStash Integration](https://upstash.com/docs/workflow/integrations/prometheus.md)
- [Resend](https://upstash.com/docs/workflow/integrations/resend.md)
- [llms.txt](https://upstash.com/docs/workflow/llms-txt.md)
- [Pricing](https://upstash.com/docs/workflow/pricing.md)
- [Astro](https://upstash.com/docs/workflow/quickstarts/astro.md)
- [Cloudflare Workers](https://upstash.com/docs/workflow/quickstarts/cloudflare-workers.md)
- [Express.js](https://upstash.com/docs/workflow/quickstarts/express.md)
- [FastAPI](https://upstash.com/docs/workflow/quickstarts/fastapi.md)
- [Flask](https://upstash.com/docs/workflow/quickstarts/flask.md)
- [Hono](https://upstash.com/docs/workflow/quickstarts/hono.md)
- [Next.js & FastAPI](https://upstash.com/docs/workflow/quickstarts/nextjs-fastapi.md)
- [Next.js & Flask](https://upstash.com/docs/workflow/quickstarts/nextjs-flask.md)
- [Nuxt](https://upstash.com/docs/workflow/quickstarts/nuxt.md)
- [Supported Platforms](https://upstash.com/docs/workflow/quickstarts/platforms.md)
- [SolidJS](https://upstash.com/docs/workflow/quickstarts/solidjs.md)
- [SvelteKit](https://upstash.com/docs/workflow/quickstarts/svelte.md)
- [TanStack Start](https://upstash.com/docs/workflow/quickstarts/tanstack-start.md)
- [Next.js](https://upstash.com/docs/workflow/quickstarts/vercel-nextjs.md)
- [Roadmap](https://upstash.com/docs/workflow/roadmap.md)
- [JavaScript SDK](https://upstash.com/docs/workflow/sdk/workflow-js.md)
- [Python SDK](https://upstash.com/docs/workflow/sdk/workflow-py.md)
- [Overview](https://upstash.com/docs/workflow/steps.md)
- [context.api](https://upstash.com/docs/workflow/steps/api.md)
- [context.call](https://upstash.com/docs/workflow/steps/call.md)
- [context.cancel](https://upstash.com/docs/workflow/steps/cancel.md)
- [context.createWebhook](https://upstash.com/docs/workflow/steps/createWebhook.md)
- [context.invoke](https://upstash.com/docs/workflow/steps/invoke.md)
- [context.notify](https://upstash.com/docs/workflow/steps/notify.md)
- [context.run](https://upstash.com/docs/workflow/steps/run.md)
- [context.sleep](https://upstash.com/docs/workflow/steps/sleep.md)
- [context.sleepUntil](https://upstash.com/docs/workflow/steps/sleepUntil.md)
- [context.waitForEvent](https://upstash.com/docs/workflow/steps/waitForEvent.md)
- [context.waitForWebhook](https://upstash.com/docs/workflow/steps/waitForWebhook.md)
- [General](https://upstash.com/docs/workflow/troubleshooting/general.md)
- [Vercel](https://upstash.com/docs/workflow/troubleshooting/vercel.md)

## OpenAPI Specs

- [openapi](https://upstash.com/docs/workflow/openapi.yaml)