Typesense website screenshot

Typesense

Typesense is a fast, typo-tolerant, open-source search engine designed for developer productivity. It provides instant search experiences with support for full-text search, faceting, filtering, sorting, geo-based search, vector search, and conversational AI search. Typesense is available as an open-source self-hosted solution or as a managed cloud service via Typesense Cloud.

5 APIs 16 Features
Full-Text SearchOpen SourceSearch EngineTypo ToleranceVector Search

APIs

Typesense Search API

The core Typesense REST API for managing collections, indexing documents, and performing full-text, faceted, filtered, sorted, geo-based, and multi-search queries. Supports syno...

Typesense Vector Search API

The Typesense Vector Search API extends the core search capabilities with vector and hybrid search. It supports indexing embedding fields, querying by vector proximity, and comb...

Typesense Conversational Search API

The Typesense Conversational Search API enables AI-powered question answering over your search index. It supports conversation models (OpenAI, Cloudflare Workers AI), NL search ...

Typesense Analytics API

The Typesense Analytics API tracks search events and provides insights into search behavior, popular queries, no-result queries, and click analytics. Supports rule-based aggrega...

Typesense Cloud Management API

The Typesense Cloud Management API enables provisioning and managing Typesense Cloud clusters programmatically. Supports creating, updating, terminating clusters, scheduling con...

Collections

GraphQL

Typesense GraphQL Schema

This GraphQL schema provides a conceptual type system for the [Typesense](https://typesense.org) open-source search engine REST API. Typesense is a fast, typo-tolerant search en...

GRAPHQL

Pricing Plans

Typesense Plans Pricing

5 plans

PLANS

Rate Limits

Typesense Rate Limits

3 limits

RATE LIMITS

FinOps

Features

Open Source: GPL v3 self-hosted, free at any scale
Cloud Small from ~$0.045/hr (0.5 GB RAM, single node)
Cloud Medium from ~$0.18/hr (2 GB RAM, single node)
Cloud HA Multi-node: ~3x base for 3-node cluster
Enterprise custom: dedicated support, self-hosted Enterprise license
Typo-tolerant full-text search
Geosearch and faceted search
Vector search and hybrid search
Federated multi-collection search
REST API with scoped API keys
Configurable per-key rate limits
InstantSearch.js compatibility
Auto-suggestions and autocomplete
Synonyms, stop words, stemming
Curation rules for promoted results
Open-source SDKs for many languages

Semantic Vocabularies

Typesense Context

0 classes · 12 properties

JSON-LD

JSON Structure

Typesense Collection Structure

7 properties

JSON STRUCTURE

Typesense Search Result Structure

9 properties

JSON STRUCTURE

Typesense Structure

0 properties

JSON STRUCTURE

Example Payloads

Typesense Search Example

2 fields

EXAMPLE

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
👥
GitHubOrganization
GitHubOrganization
📰
Blog
Blog
🔗
Slack Community
Slack Community
🔗
Docker Hub
Docker Hub
🔗
npm
npm
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONStructure
JSONStructure
🔗
JSONStructure
JSONStructure
🔗
Vocabulary
Vocabulary
🔗
SpectralRules
SpectralRules

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Typesense Vector Search API
  version: '30.1'
request:
  auth:
    type: apikey
    key: X-TYPESENSE-API-KEY
    value: '{{X-TYPESENSE-API-KEY}}'
    placement: header
items:
- info:
    name: Vector Collections
    type: folder
  items:
  - info:
      name: Create A Collection With Vector Fields
      type: http
    http:
      method: POST
      url: '{protocol}://{hostname}:{port}/collections'
      body:
        type: json
        data: '{}'
    docs: Creates a collection that includes vector embedding fields for semantic search. Vector fields are defined with a
      type of float[] and a num_dim property specifying the number of dimensions. The embed property can be used to configure
      automatic embedding generation from source fields using built-in models or external APIs like OpenAI.
- info:
    name: Vector Search
    type: folder
  items:
  - info:
      name: Perform Vector Or Hybrid Search
      type: http
    http:
      method: GET
      url: '{protocol}://{hostname}:{port}/collections/:collectionName/documents/search'
      params:
      - name: collectionName
        value: ''
        type: path
        description: Name of the collection.
      - name: q
        value: ''
        type: query
        description: Text search query. Use * for pure vector search without keyword matching.
      - name: query_by
        value: ''
        type: query
        description: Comma-separated list of fields to search against for keyword matching.
      - name: vector_query
        value: ''
        type: query
        description: Vector query in the format field_name:([v1,v2,...],k:num) or field_name:([], id:doc_id) for finding similar
          documents. The k parameter controls how many nearest neighbors to return.
      - name: filter_by
        value: ''
        type: query
        description: Filter conditions to narrow search results.
      - name: sort_by
        value: ''
        type: query
        description: Sort conditions. Use _vector_distance for sorting by vector similarity.
      - name: include_fields
        value: ''
        type: query
        description: Comma-separated list of fields to include in results.
      - name: exclude_fields
        value: ''
        type: query
        description: Comma-separated list of fields to exclude from results.
      - name: page
        value: ''
        type: query
        description: Page number for pagination.
      - name: per_page
        value: ''
        type: query
        description: Number of results per page.
      - name: prefix
        value: ''
        type: query
        description: Whether prefix search is enabled for keyword matching.
    docs: Searches for documents using vector similarity, keyword matching, or a hybrid combination of both. When vector_query
      is specified, Typesense performs nearest-neighbor search using the specified vector field. When combined with a text
      query (q parameter), results are scored using a hybrid approach that blends keyword relevance and vector similarity.
  - info:
      name: Multi-search With Vector Queries
      type: http
    http:
      method: POST
      url: '{protocol}://{hostname}:{port}/multi_search'
      body:
        type: json
        data: '{}'
    docs: Sends multiple search requests in a single HTTP request, where one or more requests can include vector queries for
      semantic or hybrid search across different collections.
- info:
    name: NL Search Models
    type: folder
  items:
  - info:
      name: List All NL Search Models
      type: http
    http:
      method: GET
      url: '{protocol}://{hostname}:{port}/nl_search_models'
    docs: Retrieves all natural language search models configured in the Typesense instance. NL search models are used for
      query understanding and semantic matching.
  - info:
      name: Create An NL Search Model
      type: http
    http:
      method: POST
      url: '{protocol}://{hostname}:{port}/nl_search_models'
      body:
        type: json
        data: '{}'
    docs: Creates a new natural language search model configuration for semantic query understanding.
  - info:
      name: Retrieve An NL Search Model
      type: http
    http:
      method: GET
      url: '{protocol}://{hostname}:{port}/nl_search_models/:modelId'
      params:
      - name: modelId
        value: ''
        type: path
        description: ID of the NL search model.
    docs: Retrieves a specific NL search model by ID.
  - info:
      name: Update An NL Search Model
      type: http
    http:
      method: PUT
      url: '{protocol}://{hostname}:{port}/nl_search_models/:modelId'
      params:
      - name: modelId
        value: ''
        type: path
        description: ID of the NL search model.
      body:
        type: json
        data: '{}'
    docs: Updates an existing NL search model configuration.
  - info:
      name: Delete An NL Search Model
      type: http
    http:
      method: DELETE
      url: '{protocol}://{hostname}:{port}/nl_search_models/:modelId'
      params:
      - name: modelId
        value: ''
        type: path
        description: ID of the NL search model.
    docs: Deletes an NL search model by ID.
bundled: true