turbopuffer website screenshot

turbopuffer

turbopuffer is a serverless search engine that combines vector and full-text (BM25) search built from first principles directly on object storage. It exposes a single REST API organized around namespaces — each namespace stores documents with vector embeddings, attributes, and full-text indexes — and supports approximate nearest neighbor, full-text BM25, and hybrid query patterns with attribute filtering, ranking, and aggregation. The platform is used in production by Anthropic, Cursor, Notion, Linear, Superhuman, Pylon, Readwise, and Telus, and handles 4T+ documents, 10M+ writes/s, and 25k+ queries/s across customer fleets. Official client libraries ship for Python, TypeScript, Go, Java, Ruby, and C#, generated from a public OpenAPI 3.1 specification via Stainless. Pricing is tiered (Launch, Scale, Enterprise) with usage-based metering on storage, writes, and queries on top of monthly minimums.

11 APIs 0 Features
Vector SearchFull-Text SearchHybrid SearchBM25ServerlessObject StorageRAGSemantic SearchAI InfrastructureEmbeddings

APIs

turbopuffer REST API

Single REST API for all turbopuffer operations — namespace metadata, write (upsert / patch / delete), vector ANN query, full-text BM25 query, hybrid query, multi-query, explain_...

turbopuffer Write API

Endpoints for upserting, patching, and deleting documents within a namespace. Writes are batched into a per-namespace write-ahead log and become queryable once committed to obje...

turbopuffer Query API

Unified query endpoint that runs vector ANN, full-text BM25, and hybrid queries against a namespace, with attribute filters, top-k, aggregation groups, and ranking controls. Sup...

turbopuffer Namespaces API

Namespace lifecycle and metadata endpoints — list namespaces, read schema / dimensions / row count, warm the cache, export contents, branch_from (copy-on-write clones in constan...

turbopuffer Python SDK

Official Python client library for the turbopuffer REST API, Stainless-generated from the public OpenAPI spec.

turbopuffer TypeScript SDK

Official TypeScript / JavaScript client library for the turbopuffer REST API, Stainless-generated and published to npm.

turbopuffer Go SDK

Official Go client library for the turbopuffer REST API, Stainless-generated from the public OpenAPI spec.

turbopuffer Java SDK

Official Java / Kotlin client library for the turbopuffer REST API, Stainless-generated from the public OpenAPI spec.

turbopuffer Ruby SDK

Official Ruby client library for the turbopuffer REST API, Stainless-generated from the public OpenAPI spec.

turbopuffer C# SDK

Official C# / .NET client library for the turbopuffer REST API, Stainless-generated from the public OpenAPI spec.

tpuf-benchmark

Open-source general-purpose benchmarking tool for turbopuffer deployments. Useful for validating recall, latency, and throughput on a given workload.

Collections

Pricing Plans

Rate Limits

Turbopuffer Rate Limits

3 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHub
GitHub
🔗
OpenAPI
OpenAPI
💰
Pricing
Pricing
🔗
Architecture
Architecture
🔗
Regions
Regions
🔗
Limits
Limits
📰
Blog
Blog
🔗
LlmsText
LlmsText
📜
TermsOfService
TermsOfService
🔗
Customers
Customers

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: turbopuffer API
  version: 0.0.1
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: GET /v1/namespaces
    type: http
  http:
    method: GET
    url: https://{region}.turbopuffer.com/v1/namespaces
    params:
    - name: cursor
      value: ''
      type: query
      description: Retrieve the next page of results.
    - name: prefix
      value: ''
      type: query
      description: Retrieve only the namespaces that match the prefix.
    - name: page_size
      value: ''
      type: query
      description: Limit the number of results per page.
  docs: List namespaces.
- info:
    name: GET /v1/namespaces/{namespace}/schema
    type: http
  http:
    method: GET
    url: https://{region}.turbopuffer.com/v1/namespaces/:namespace/schema
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
  docs: Get namespace schema.
- info:
    name: POST /v1/namespaces/{namespace}/schema
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v1/namespaces/:namespace/schema
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Update namespace schema.
- info:
    name: GET /v2/namespaces/{namespace}/metadata
    type: http
  http:
    method: GET
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace/metadata
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
  docs: Get metadata about a namespace.
- info:
    name: PATCH /v1/namespaces/{namespace}/metadata
    type: http
  http:
    method: PATCH
    url: https://{region}.turbopuffer.com/v1/namespaces/:namespace/metadata
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Update metadata configuration for a namespace.
- info:
    name: GET /v1/namespaces/{namespace}/hint_cache_warm
    type: http
  http:
    method: GET
    url: https://{region}.turbopuffer.com/v1/namespaces/:namespace/hint_cache_warm
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
  docs: Signal turbopuffer to prepare for low-latency requests.
- info:
    name: POST /v1/namespaces/{namespace}/_debug/recall
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v1/namespaces/:namespace/_debug/recall
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Evaluate recall.
- info:
    name: POST /v2/namespaces/{namespace}
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Create, update, or delete documents.
- info:
    name: DELETE /v2/namespaces/{namespace}
    type: http
  http:
    method: DELETE
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
  docs: Delete namespace.
- info:
    name: POST /v2/namespaces/{namespace}/query
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace/query
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Query, filter, full-text search and vector search documents.
- info:
    name: POST /v2/namespaces/{namespace}/query?stainless_overload=multiQuery
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace/query?stainless_overload=multiQuery
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Issue multiple concurrent queries filter or search documents.
- info:
    name: POST /v2/namespaces/{namespace}?stainless_overload=branchFrom
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace?stainless_overload=branchFrom
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Creates an instant, copy-on-write clone of a namespace.
- info:
    name: POST /v2/namespaces/{namespace}?stainless_overload=copyFrom
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace?stainless_overload=copyFrom
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Copy all documents from another namespace into this one.
- info:
    name: POST /v2/namespaces/{namespace}/explain_query
    type: http
  http:
    method: POST
    url: https://{region}.turbopuffer.com/v2/namespaces/:namespace/explain_query
    params:
    - name: namespace
      value: ''
      type: path
      description: The name of the namespace.
    body:
      type: json
      data: '{}'
  docs: Explain a query plan.
bundled: true