Chroma website screenshot

Chroma

Chroma (Chroma DB) is an open-source AI-native embedding database designed to make it easy to build LLM applications by providing storage, retrieval, and management for vector embeddings, full-text search, regex search, and multi-modal retrieval (text, image, audio). Distributed under the Apache 2.0 license, Chroma can be self-hosted (single-node Python or distributed Rust-based deployment) or consumed via Chroma Cloud, a managed serverless vector database service offering usage-based pricing. Chroma is the open-source data infrastructure for AI agents and RAG (Retrieval-Augmented Generation) applications, with first-party SDKs for Python and JavaScript/TypeScript and integrations with leading embedding providers (OpenAI, Cohere, Hugging Face, sentence-transformers).

4 APIs 10 Features
AIAI NativeApache 2.0CloudEmbeddingsHybrid SearchJavaScriptLLMMachine LearningMulti-ModalOpen SourcePythonRAGRetrievalSDKSearchServerlessTypeScriptVector Database

APIs

Chroma Server API

The Chroma Server API is a REST API that provides access to the Chroma open-source vector database. It enables developers to create and manage collections of embeddings, add doc...

Chroma Cloud API

Chroma Cloud is a managed, serverless vector database service that provides fast and scalable vector, full-text, and metadata search across terabytes of data. It is backed by Ch...

Chroma Python Client

The Chroma Python Client is a first-party SDK for interacting with both self-hosted Chroma servers and Chroma Cloud. It provides a simple, developer-friendly interface with a co...

Chroma JavaScript Client

The Chroma JavaScript and TypeScript Client is a first-party SDK for interacting with Chroma from JavaScript or TypeScript applications. The v3 rewrite focused on reducing bundl...

Collections

GraphQL

Chroma GraphQL API

Chroma is an open-source embedding database for AI. The API covers collection management, document and embedding upsert, querying by embedding or text, metadata filtering, and m...

GRAPHQL

Pricing Plans

Chroma Plans Pricing

3 plans

PLANS

Rate Limits

Chroma Rate Limits

2 limits

RATE LIMITS

FinOps

Chroma Finops

FINOPS

Features

Document and Metadata Storage
Vector Similarity Search (Dense, Sparse, Hybrid)
Full-Text and Regex Search
Metadata Filtering
Multi-Modal Retrieval (Text, Image, Audio)
Automatic Tokenization and Embedding
Collection Management
Embedding Function Plugins
Self-Hosted and Cloud Deployments
Apache 2.0 Open Source License

Use Cases

RAG (Retrieval Augmented Generation)
Semantic Search
AI Agent Memory
Code Search (AST-Aware Chunking)
Recommendation Systems
Multi-Modal Search (Text + Images)
Question Answering Systems
Knowledge Base Querying

Semantic Vocabularies

Chroma Context

0 classes · 6 properties

JSON-LD

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🌐
Portal
Portal
🔗
Login
Login
💰
Pricing
Pricing
📰
Blog
Blog
👥
GitHubOrg
GitHubOrg
💻
SourceCode
SourceCode
🔗
Discord
Discord
🔗
Twitter
Twitter
🔗
License
License
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
JSONLDContext
JSONLDContext
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
Spectral
Spectral
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Chroma Server API
  version: 2.0.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: System
    type: folder
  items:
  - info:
      name: Check server heartbeat
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/heartbeat
    docs: Returns a heartbeat response indicating the server is alive and accepting requests. Returns the current server timestamp
      as a nanosecond epoch.
  - info:
      name: Get server version
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/version
    docs: Returns the version string of the running Chroma server.
  - info:
      name: Run pre-flight checks
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/pre-flight-checks
    docs: Returns the results of pre-flight checks that verify the server is properly configured and ready to accept requests.
  - info:
      name: Check server health
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/healthcheck
    docs: Returns the health status of the Chroma server. Used by load balancers and orchestration tools to determine if the
      server is healthy and ready to serve traffic.
  - info:
      name: Reset the server
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/reset
    docs: Resets the Chroma server to its initial state, removing all data. This endpoint is typically only available in development
      or test configurations and may be disabled in production deployments.
- info:
    name: Tenants
    type: folder
  items:
  - info:
      name: Create a tenant
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants
      body:
        type: json
        data: '{}'
    docs: Creates a new tenant in the Chroma server. Tenants are the top-level organizational unit and contain databases.
      A default tenant is created automatically on server startup.
  - info:
      name: Get a tenant
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
    docs: Returns an existing tenant by name. Includes the tenant name and unique identifier.
- info:
    name: Databases
    type: folder
  items:
  - info:
      name: List databases
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: limit
        value: ''
        type: query
        description: Maximum number of items to return
      - name: offset
        value: ''
        type: query
        description: Number of items to skip before returning results
    docs: Returns a list of all databases within the specified tenant. Supports pagination through limit and offset parameters.
  - info:
      name: Create a database
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      body:
        type: json
        data: '{}'
    docs: Creates a new database within the specified tenant. Databases contain collections and are the primary unit for organizing
      data within a tenant.
  - info:
      name: Get a database
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
    docs: Returns an existing database by name within the specified tenant. Includes the database name, unique identifier,
      and tenant association.
  - info:
      name: Delete a database
      type: http
    http:
      method: DELETE
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
    docs: Deletes an existing database and all its collections from the specified tenant. This operation is irreversible.
- info:
    name: Collections
    type: folder
  items:
  - info:
      name: List collections
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: limit
        value: ''
        type: query
        description: Maximum number of items to return
      - name: offset
        value: ''
        type: query
        description: Number of items to skip before returning results
    docs: Returns a list of all collections within the specified database and tenant. Supports pagination through limit and
      offset parameters.
  - info:
      name: Create a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      body:
        type: json
        data: '{}'
    docs: Creates a new collection within the specified database and tenant. Collections store embeddings, documents, and
      associated metadata. You can optionally specify a get_or_create flag to return an existing collection if one with the
      same name already exists.
  - info:
      name: Get a collection
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
    docs: Returns an existing collection by its unique identifier within the specified database and tenant.
  - info:
      name: Update a collection
      type: http
    http:
      method: PUT
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Updates an existing collection's name or metadata. You can change the collection name and update or replace the
      metadata associated with the collection.
  - info:
      name: Delete a collection
      type: http
    http:
      method: DELETE
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
    docs: Deletes an existing collection and all its records from the specified database. This operation is irreversible.
- info:
    name: Records
    type: folder
  items:
  - info:
      name: Count records in a collection
      type: http
    http:
      method: GET
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/count
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
    docs: Returns the number of records stored in the specified collection.
  - info:
      name: Add records to a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/add
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Adds new records to the specified collection. Records consist of embeddings, optional documents, optional metadata,
      and optional URIs. Each record must have a unique ID. If a record with the same ID already exists, the operation will
      fail. Supports batch operations of up to 100,000 or more items at once.
  - info:
      name: Get records from a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/get
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Retrieves records from the specified collection by their IDs or by a metadata filter. At least one of ids or where
      must be provided. Use the include parameter to specify which fields to return in the response.
  - info:
      name: Update records in a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/update
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Updates existing records in the specified collection. Records are identified by their IDs. You can update the embeddings,
      documents, metadata, and URIs of existing records.
  - info:
      name: Upsert records in a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/upsert
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Upserts records in the specified collection. If a record with the given ID already exists, it will be updated. If
      it does not exist, it will be created. This combines the functionality of add and update into a single operation.
  - info:
      name: Delete records from a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/delete
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Deletes records from the specified collection. Records can be deleted by their IDs or by a metadata filter. The
      embeddings, documents, and metadata associated with each deleted record will be permanently removed.
  - info:
      name: Query records in a collection
      type: http
    http:
      method: POST
      url: http://localhost:8000/api/v2/tenants/:tenantName/databases/:databaseName/collections/:collectionId/query
      params:
      - name: tenantName
        value: ''
        type: path
        description: The name of the tenant
      - name: databaseName
        value: ''
        type: path
        description: The name of the database
      - name: collectionId
        value: ''
        type: path
        description: The unique identifier of the collection
      body:
        type: json
        data: '{}'
    docs: Performs a vector similarity search on the specified collection. Returns the nearest neighbors to the provided query
      embeddings or query texts. Supports metadata filtering with where clauses and document content filtering with where_document
      clauses. Results include distances, embeddings, documents, metadatas, and URIs based on the include parameter.
bundled: true