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

# Introduction

export const Catalog = ({product, type, featured, search, cols = 3}) => {
  const languageIcons = {
    typescript: {
      color: "#3178C6",
      paths: ["M15 17.5c.32.32.754.5 1.207.5h.543c.69 0 1.25-.56 1.25-1.25v-.25a1.5 1.5 0 0 0-1.5-1.5 1.5 1.5 0 0 1-1.5-1.5v-.25c0-.69.56-1.25 1.25-1.25h.543c.453 0 .887.18 1.207.5", "M9 12h4", "M11 12v6", "M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"]
    },
    python: {
      color: "#3776AB",
      paths: ["M12 9H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h3", "M12 15h7a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3", "M8 9V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4", "M11 6h.01", "M13 18h.01"]
    },
    ruby: {
      color: "#CC342D",
      paths: ["M6 3h12l4 6-10 12L2 9l4-6Z", "M2 9h20", "m8 3 4 18 4-18"]
    }
  };
  const catalog = [{
    title: "@upstash/redis",
    description: "HTTP-based Redis client for serverless and edge.",
    href: "/redis/sdks/ts/overview",
    product: "redis",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "upstash-redis (Python)",
    description: "Serverless Redis client for Python.",
    href: "/redis/sdks/py/overview",
    product: "redis",
    type: "sdk",
    lang: "python"
  }, {
    title: "@upstash/ratelimit",
    description: "Rate limiting for serverless, built on Redis.",
    href: "/redis/sdks/ratelimit-ts/overview",
    product: "redis",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "ratelimit (Python)",
    description: "Rate limiting SDK for Python.",
    href: "/redis/sdks/ratelimit-py/overview",
    product: "redis",
    type: "sdk",
    lang: "python"
  }, {
    title: "Realtime",
    description: "Add realtime features to any Next.js app.",
    href: "/realtime/overall/quickstart",
    product: "redis",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "AgentKit",
    description: "Agent memory, RAG, and chat history on Redis.",
    href: "/redis/sdks/agentkit/ai-sdk",
    product: "redis",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "Redis Analytics",
    description: "Event tracking, flags, and A/B testing, powered by Redis.",
    href: "https://github.com/upstash/redis-analytics",
    product: "redis",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "Agent Analytics",
    description: "Track AI agent traffic hitting your website.",
    href: "https://github.com/upstash/agent-analytics",
    product: "redis",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "MCP Server",
    description: "Manage Upstash Redis from AI agents via MCP.",
    href: "/redis/sdks/mcp",
    product: "redis",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "@upstash/vector",
    description: "Vector database client for AI and LLM apps.",
    href: "/vector/sdks/ts/getting-started",
    product: "vector",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "upstash-vector (Python)",
    description: "Vector database client for Python.",
    href: "/vector/sdks/py/gettingstarted",
    product: "vector",
    type: "sdk",
    lang: "python"
  }, {
    title: "@upstash/qstash",
    description: "Publish messages and schedule jobs over HTTP.",
    href: "/qstash/sdks/ts/overview",
    product: "qstash",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "qstash-py",
    description: "QStash messaging and scheduling for Python.",
    href: "/qstash/sdks/py/overview",
    product: "qstash",
    type: "sdk",
    lang: "python"
  }, {
    title: "@upstash/workflow",
    description: "Durable serverless functions and workflows.",
    href: "https://github.com/upstash/workflow-js",
    product: "workflow",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "workflow-py",
    description: "Durable workflows for Python.",
    href: "https://github.com/upstash/workflow-py",
    product: "workflow",
    type: "sdk",
    lang: "python"
  }, {
    title: "Workflow Agents",
    description: "Reliable single and multi-agent workflows.",
    href: "/workflow/agents/overview",
    product: "workflow",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "@upstash/search",
    description: "Full-text and semantic search client.",
    href: "/search/sdks/ts/getting-started",
    product: "search",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "upstash-search (Python)",
    description: "Search client for Python.",
    href: "/search/sdks/py/gettingstarted",
    product: "search",
    type: "sdk",
    lang: "python"
  }, {
    title: "@upstash/box",
    description: "TypeScript SDK for Upstash Box.",
    href: "https://github.com/upstash/box/tree/main/packages/sdk",
    product: "box",
    type: "sdk",
    lang: "typescript",
    featured: true
  }, {
    title: "box (Python)",
    description: "Python SDK for Upstash Box.",
    href: "https://github.com/upstash/box/tree/main/packages/python-sdk",
    product: "box",
    type: "sdk",
    lang: "python"
  }, {
    title: "Box CLI",
    description: "Create and manage boxes from your terminal.",
    href: "https://github.com/upstash/box/tree/main/packages/cli",
    product: "box",
    type: "sdk",
    lang: "typescript"
  }, {
    title: "BullMQ",
    description: "Message queue built on Redis.",
    href: "/redis/integrations/bullmq",
    product: "redis",
    type: "integration",
    lang: "typescript",
    featured: true
  }, {
    title: "Drizzle",
    description: "Cache Drizzle ORM queries with Upstash Redis.",
    href: "/redis/integrations/drizzle",
    product: "redis",
    type: "integration",
    lang: "typescript",
    featured: true
  }, {
    title: "Celery",
    description: "Use Upstash Redis as a Celery broker.",
    href: "/redis/integrations/celery",
    product: "redis",
    type: "integration",
    lang: "python"
  }, {
    title: "Sidekiq",
    description: "Background jobs for Ruby on Upstash Redis.",
    href: "/redis/integrations/sidekiq",
    product: "redis",
    type: "integration",
    lang: "ruby"
  }, {
    title: "n8n (Redis)",
    description: "Automate workflows with Redis nodes in n8n.",
    href: "/redis/integrations/n8n",
    product: "redis",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Prometheus (Redis)",
    description: "Scrape Upstash Redis metrics into Prometheus.",
    href: "/redis/integrations/prometheus",
    product: "redis",
    type: "integration",
    lang: "typescript"
  }, {
    title: "LangChain",
    description: "Vector store integration for LLM apps.",
    href: "/vector/integrations/langchain",
    product: "vector",
    type: "integration",
    lang: "python",
    featured: true
  }, {
    title: "Vercel AI SDK",
    description: "Back the AI SDK with Upstash Vector.",
    href: "/vector/integrations/ai-sdk",
    product: "vector",
    type: "integration",
    lang: "typescript",
    featured: true
  }, {
    title: "LlamaIndex",
    description: "Use Upstash Vector as a LlamaIndex store.",
    href: "/vector/integrations/llamaindex",
    product: "vector",
    type: "integration",
    lang: "python"
  }, {
    title: "Flowise",
    description: "Build LLM flows on Upstash Vector.",
    href: "/vector/integrations/flowise",
    product: "vector",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Langflow",
    description: "Visual LLM apps backed by Upstash Vector.",
    href: "/vector/integrations/langflow",
    product: "vector",
    type: "integration",
    lang: "python"
  }, {
    title: "LlamaParse",
    description: "Parse and index documents into Upstash Vector.",
    href: "/vector/integrations/llamaparse",
    product: "vector",
    type: "integration",
    lang: "python"
  }, {
    title: "Resend",
    description: "Send emails from QStash workflows.",
    href: "/qstash/integrations/resend",
    product: "qstash",
    type: "integration",
    lang: "typescript",
    featured: true
  }, {
    title: "Anthropic",
    description: "Call Claude reliably through QStash.",
    href: "/qstash/integrations/anthropic",
    product: "qstash",
    type: "integration",
    lang: "typescript"
  }, {
    title: "LLM APIs",
    description: "Queue and retry LLM calls with QStash.",
    href: "/qstash/integrations/llm",
    product: "qstash",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Datadog",
    description: "Monitor QStash with Datadog.",
    href: "/qstash/integrations/datadog",
    product: "qstash",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Pipedream",
    description: "Trigger Pipedream workflows from QStash.",
    href: "/qstash/integrations/pipedream",
    product: "qstash",
    type: "integration",
    lang: "typescript"
  }, {
    title: "n8n (QStash)",
    description: "Publish QStash messages from n8n.",
    href: "/qstash/integrations/n8n",
    product: "qstash",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Documentation Crawler",
    description: "Crawl docs and feed them into Upstash Search.",
    href: "/search/tools/documentationcrawler",
    product: "search",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Database Migrator",
    description: "Migrate your data into Upstash Search.",
    href: "/search/tools/databasemigrator",
    product: "search",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Docusaurus",
    description: "Add full-text search to a Docusaurus site.",
    href: "/search/integrations/docusaurus",
    product: "search",
    type: "integration",
    lang: "typescript"
  }, {
    title: "Hacker News Trends",
    description: "Trend search over Hacker News, built on Upstash.",
    href: "https://hackernewstrends.com",
    product: "redis",
    type: "demo",
    lang: "typescript",
    search: true,
    featured: true
  }, {
    title: "Eve: Hacker News Agent",
    description: "A Hacker News agent built with the Vercel Eve framework.",
    href: "https://upstash-hackernews-eve-agent.vercel.app",
    product: "redis",
    type: "demo",
    lang: "typescript",
    search: true,
    featured: true
  }, {
    title: "OpenClaw",
    description: "Run OpenClaw inside an Upstash Box.",
    href: "/box/guides/openclaw-setup",
    product: "box",
    type: "guide"
  }, {
    title: "Hermes",
    description: "Run the Hermes agent inside a Box.",
    href: "/box/guides/hermes-setup",
    product: "box",
    type: "guide"
  }, {
    title: "Crabbox",
    description: "Run your test suite in a Box from your local CLI.",
    href: "/box/guides/crabbox-setup",
    product: "box",
    type: "guide"
  }, {
    title: "Web Scraping with Playwright",
    description: "Scrape dynamic websites with Playwright.",
    href: "/box/guides/web-scraping-playwright",
    product: "box",
    type: "guide"
  }, {
    title: "E-commerce Order Fulfillment",
    description: "Durable order processing with Workflow.",
    href: "/workflow/examples/eCommerceOrderFulfillment",
    product: "workflow",
    type: "demo",
    lang: "typescript",
    featured: true
  }, {
    title: "Image Processing",
    description: "Fan-out image jobs with Workflow.",
    href: "/workflow/examples/imageProcessing",
    product: "workflow",
    type: "demo",
    lang: "typescript",
    featured: true
  }, {
    title: "Customer Onboarding",
    description: "Multi-step onboarding flow with delays.",
    href: "/workflow/examples/customerOnboarding",
    product: "workflow",
    type: "demo",
    lang: "typescript"
  }, {
    title: "Payment Retry",
    description: "Retry failed payments with backoff.",
    href: "/workflow/examples/paymentRetry",
    product: "workflow",
    type: "demo",
    lang: "typescript"
  }, {
    title: "Wait for Event",
    description: "Pause a workflow until an external event.",
    href: "/workflow/examples/waitForEvent",
    product: "workflow",
    type: "demo",
    lang: "typescript"
  }, {
    title: "Auth Webhook",
    description: "Handle auth webhooks durably.",
    href: "/workflow/examples/authWebhook",
    product: "workflow",
    type: "demo",
    lang: "typescript"
  }];
  const matchesProduct = entry => !product || (Array.isArray(entry.product) ? entry.product.includes(product) : entry.product === product);
  const items = catalog.filter(entry => matchesProduct(entry) && (!type || entry.type === type) && (!featured || entry.featured) && (!search || entry.search));
  const gridClass = "u-grid " + (cols >= 3 ? "u-grid--3" : "u-grid--2");
  return <div className={gridClass}>
      {items.map(entry => <a key={entry.href} href={entry.href} className="u-card">
          {entry.lang ? <span className="u-card__icon u-card__icon--brand" role="img" aria-label={entry.lang} style={{
    color: languageIcons[entry.lang].color
  }}>
              <svg className="u-card__lang-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
                {languageIcons[entry.lang].paths.map(path => <path key={path} d={path} />)}
              </svg>
            </span> : null}
          <div className="u-card__body">
            <div className="u-card__title">{entry.title}</div>
            <div className="u-card__desc">{entry.description}</div>
          </div>
        </a>)}
    </div>;
};

Upstash Redis Search is our first extension beyond the official Redis spec. Using the Rust-based Tantivy under the hood, we provide an extremely fast way to search through Redis data.

<Frame>
  <img src="https://mintcdn.com/upstash-cloud-4725/BExo6uNPm1qEMYmf/img/redis-search/redis-search-cover.png?fit=max&auto=format&n=BExo6uNPm1qEMYmf&q=85&s=7aa0fc949428fae79bea793fcc5146c5" alt="Redis Search overview" width="5760" height="3240" data-path="img/redis-search/redis-search-cover.png" />
</Frame>

* **Easy Integration**: Works with JSON, hashes, strings, and streams out of the box
* **Auto-Synchronization**: Once you created an index, all write operations are automatically tracked
* **Intuitive Query Language**: A type-safe JSON-based query syntax with boolean operators, fuzzy matching, phrase queries,
  regex support, and more.
* **Production-Ready Performance**: Built on Tantivy, a fast full-text search engine library written in Rust

## Next Steps

<CardGroup cols={2}>
  <Card title="Getting Started" icon="rocket" href="/redis/search/getting-started">
    Create your first index and run a query in a few lines of code
  </Card>

  <Card title="Schema Definition" icon="table-columns" href="/redis/search/schema-definition">
    Define the fields you want to index and how they are matched
  </Card>

  <Card title="Querying" icon="magnifying-glass" href="/redis/search/querying">
    Learn the JSON-based query language with filters and operators
  </Card>

  <Card title="Searching Streams" icon="water" href="/redis/search/streams">
    Search individual stream entries by their field values
  </Card>

  <Card title="Recipes" icon="book-open" href="/redis/search/recipes/overview">
    Complete, real-world examples you can adapt to your own use cases
  </Card>
</CardGroup>

## Demos

<Catalog product="redis" type="demo" search cols={3} />
