Chroma

Chroma (Chroma DB) is an open-source, AI-native vector database (embedding database) for building LLM, RAG, and semantic-search applications. It provides storage, indexing, and retrieval for vector embeddings with metadata filtering, full-text and regex search, and multi-modal retrieval across text, images, and audio. Chroma is Apache-2.0 licensed and self-hostable via a single server, and is also available as Chroma Cloud, a serverless, usage-based managed offering. Its HTTP/REST v2 API is organized around tenants, databases, collections, and the records (embeddings) inside each collection - add, upsert, update, get, query (similarity search), and delete - and is the same interface used by the Python, JavaScript/TypeScript, Rust, and other client libraries.

5 APIs 0 Features
Vector DatabaseVector IndexVector SearchVector StoreEmbeddingsSimilarity SearchRAGSemantic SearchAIAI InferenceMachine LearningOpen Source

APIs

Chroma Collections API

Create, list, get, update, count, and delete collections - the named vector stores that hold embeddings and their metadata. Collections are scoped to a tenant and database and c...

Chroma Records (Embeddings) API

Write and manage the records (embeddings) inside a collection - add, upsert, update, get, count, and delete vectors along with their documents, metadata, and URIs. Records can b...

Chroma Query and Similarity Search API

Run nearest-neighbor vector similarity search over a collection with query embeddings, plus metadata (`where`) and full-text (`where_document`) filters, returning the closest re...

Chroma Tenants and Databases API

Administer the multi-tenancy hierarchy that scopes all collections - create and get tenants, and create, list, get, and delete databases within a tenant. Every collection and re...

Chroma System and Health API

Operational endpoints for a Chroma server - heartbeat, healthcheck, version, and pre-flight checks. On self-hosted deployments a reset endpoint can clear all data when explicitl...

Collections

Pricing Plans

Chroma Db Plans Pricing

4 plans

PLANS

Rate Limits

Chroma Db Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
AgenticAccess
AgenticAccess
🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Chroma Server API (v2)
  version: '2.0'
request:
  auth:
    type: apikey
    key: x-chroma-token
    value: '{{chromaToken}}'
    in: header
items:
- info:
    name: System
    type: folder
  items:
  - info:
      name: Heartbeat
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/heartbeat
    docs: Returns the current server time in nanoseconds; liveness check.
  - info:
      name: Health check
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/healthcheck
    docs: Returns the health status of the server.
  - info:
      name: Get server version
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/version
    docs: Returns the Chroma server version string.
  - info:
      name: Pre-flight checks
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/pre-flight-checks
    docs: Returns server limits and configuration, such as the maximum batch size.
- info:
    name: Tenants and Databases
    type: folder
  items:
  - info:
      name: Create a tenant
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants
      body:
        type: json
        data: "{\n  \"name\": \"my-tenant\"\n}"
    docs: Creates a new tenant.
  - info:
      name: Get a tenant
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
    docs: Retrieves a tenant by name.
  - info:
      name: List databases
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
    docs: Lists the databases within a tenant.
  - info:
      name: Create a database
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      body:
        type: json
        data: "{\n  \"name\": \"my-database\"\n}"
    docs: Creates a new database within a tenant.
  - info:
      name: Get a database
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
    docs: Retrieves a database by name within a tenant.
  - info:
      name: Delete a database
      type: http
    http:
      method: DELETE
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
    docs: Deletes a database and all collections within it.
- info:
    name: Collections
    type: folder
  items:
  - info:
      name: List collections
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
    docs: Lists collections in a database.
  - info:
      name: Create a collection
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      body:
        type: json
        data: "{\n  \"name\": \"my-collection\",\n  \"get_or_create\": true\n}"
    docs: Creates a new collection (named vector store) in a database.
  - info:
      name: Count collections
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections_count
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
    docs: Returns the number of collections in a database.
  - info:
      name: Get a collection
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
    docs: Retrieves a collection by ID.
  - info:
      name: Update a collection
      type: http
    http:
      method: PUT
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"new_name\": \"renamed-collection\"\n}"
    docs: Updates a collection's name, metadata, or index configuration.
  - info:
      name: Delete a collection
      type: http
    http:
      method: DELETE
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
    docs: Deletes a collection and all of its records.
- info:
    name: Records
    type: folder
  items:
  - info:
      name: Add records
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/add
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"ids\": [\"id1\"],\n  \"embeddings\": [[0.1, 0.2, 0.3]],\n  \"documents\": [\"hello world\"],\n  \"metadatas\"\
          : [{\"source\": \"demo\"}]\n}"
    docs: Adds records (embeddings, documents, metadata, URIs) to a collection.
  - info:
      name: Upsert records
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/upsert
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"ids\": [\"id1\"],\n  \"embeddings\": [[0.1, 0.2, 0.3]]\n}"
    docs: Inserts new records or updates existing records matched by id.
  - info:
      name: Update records
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/update
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"ids\": [\"id1\"],\n  \"metadatas\": [{\"source\": \"updated\"}]\n}"
    docs: Updates embeddings, documents, metadata, or URIs of existing records by id.
  - info:
      name: Get records
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/get
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"ids\": [\"id1\"],\n  \"include\": [\"documents\", \"metadatas\"]\n}"
    docs: Retrieves records by id and/or metadata and document filters.
  - info:
      name: Count records
      type: http
    http:
      method: GET
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/count
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
    docs: Returns the number of records in a collection.
  - info:
      name: Delete records
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/delete
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"ids\": [\"id1\"]\n}"
    docs: Deletes records by id and/or by metadata and document filters.
- info:
    name: Query
    type: folder
  items:
  - info:
      name: Query a collection (similarity search)
      type: http
    http:
      method: POST
      url: https://api.trychroma.com/api/v2/tenants/:tenant/databases/:database/collections/:collection_id/query
      params:
      - name: tenant
        value: ''
        type: path
        description: Tenant name or UUID.
      - name: database
        value: ''
        type: path
        description: Database name.
      - name: collection_id
        value: ''
        type: path
        description: Collection UUID.
      body:
        type: json
        data: "{\n  \"query_embeddings\": [[0.1, 0.2, 0.3]],\n  \"n_results\": 10,\n  \"include\": [\"documents\", \"distances\"\
          , \"metadatas\"]\n}"
    docs: Runs nearest-neighbor vector similarity search with optional where and where_document filters.
bundled: true