> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://turbopuffer.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://turbopuffer.ferndocs.com/_mcp/server.

# Introduction

## What is turbopuffer?

turbopuffer is a fast, object-storage native search engine optimized for first-stage retrieval. It combines vector search (ANN/kNN), full-text search (BM25), and exact filtering in a single API — built to run efficiently on top of object storage like S3 or GCS.

## Key features

#### [Vector Search](/docs/guides/vector-search)

Approximate nearest neighbor (ANN) and exact kNN search over high-dimensional embeddings.

#### [Full-Text Search](/docs/guides/full-text-search)

BM25-based full-text search with configurable tokenization, stemming, and language support.

#### [Hybrid Search](/docs/guides/hybrid-search)

Combine vector and full-text queries in a single request with multi-query and RRF reranking.

#### [Object Storage Native](/docs/architecture)

Built on object storage for virtually unlimited scale at low cost — no warm-up required.

## Core concepts

**Namespaces** are the primary organizational unit in turbopuffer. Each namespace holds a collection of documents, each with an `id`, an optional vector embedding, and arbitrary typed attributes.

**Documents** consist of:

* `id` — a string, UUID, or integer identifier
* `vector` — a dense float array (optional)
* attributes — typed fields (string, int, float, bool, datetime, and array variants)

**Schemas** define the type and indexing configuration for each attribute — whether it's filterable, full-text searchable, ANN-indexed, or auto-embedded.

## Authentication

All API requests require a Bearer token. Set your API key as the `Authorization` header:

```
Authorization: Bearer <your-api-key>
```

Get your API key from the [turbopuffer dashboard](https://turbopuffer.com/join).

## Regions

turbopuffer is available in multiple regions. Specify your region in the base URL:

```
https://{region}.turbopuffer.com
```

For example: `https://gcp-us-central1.turbopuffer.com`