---
title: "Update Collection"
method: PATCH
path: "/collections/{readable_id}"
tags: ["collections"]
---

# Update Collection

`PATCH /collections/{readable_id}`

Update an existing collection's properties.

You can modify:
- **Name**: The display name shown in the UI
- **Sync configuration**: Schedule settings for automatic data synchronization

Note that the `readable_id` cannot be changed after creation to maintain stable
API endpoints and preserve existing integrations.

## Path parameters

- `readable_id` string, required — The unique readable identifier of the collection to update

## Request body

- CollectionUpdate — Schema for updating an existing collection. Allows updating the collection's display name and default sync configuration. The readable_id is immutable to maintain stable API endpoints and references.
  - `name` string, nullable — Updated display name for the collection. Must be between 4 and 64 characters.
  - `sync_config` SyncConfig — Sync configuration with automatic env var loading. Env vars use double underscore as delimiter: SYNC_CONFIG__HANDLERS__ENABLE_VECTOR_HANDLERS=false
    - `destinations` DestinationConfig — Controls where entities are written.
      - `skip_vespa` boolean — Skip writing to native Vespa
      - `target_destinations` string[], nullable — If set, ONLY write to these destination UUIDs
      - `exclude_destinations` string[], nullable — Skip these destination UUIDs
    - `handlers` HandlerConfig — Controls which handlers run during sync.
      - `enable_vector_handlers` boolean — Enable VectorDBHandler
      - `enable_raw_data_handler` boolean — Enable RawDataHandler (ARF)
      - `enable_postgres_handler` boolean — Enable EntityPostgresHandler
    - `cursor` CursorConfig — Controls incremental sync cursor behavior.
      - `skip_load` boolean — Don't load cursor (fetch all entities)
      - `skip_updates` boolean — Don't persist cursor progress
    - `behavior` BehaviorConfig — Miscellaneous execution behavior flags.
      - `skip_hash_comparison` boolean — Force INSERT for all entities
      - `replay_from_arf` boolean — Replay from ARF storage instead of calling source
      - `skip_guardrails` boolean — Skip usage guardrails (entity count checks)

## Response `200`

Updated collection

- Collection — API-facing collection schema with embedding metadata. Extends CollectionRecord with vector_size and embedding_model_name, which are resolved by the CollectionService from the deployment metadata and the dense embedder registry. Excludes vector_db_deployment_metadata_id (internal FK).
  - `name` string, required — Human-readable display name for the collection.
  - `readable_id` string, required — URL-safe unique identifier used in API endpoints. This becomes non-optional once the collection is created.
  - `id` string, uuid, required — Unique system identifier for the collection. This UUID is generated automatically and used for internal references.
  - `sync_config` SyncConfig — Sync configuration with automatic env var loading. Env vars use double underscore as delimiter: SYNC_CONFIG__HANDLERS__ENABLE_VECTOR_HANDLERS=false
    - `destinations` DestinationConfig — Controls where entities are written.
      - `skip_vespa` boolean — Skip writing to native Vespa
      - `target_destinations` string[], nullable — If set, ONLY write to these destination UUIDs
      - `exclude_destinations` string[], nullable — Skip these destination UUIDs
    - `handlers` HandlerConfig — Controls which handlers run during sync.
      - `enable_vector_handlers` boolean — Enable VectorDBHandler
      - `enable_raw_data_handler` boolean — Enable RawDataHandler (ARF)
      - `enable_postgres_handler` boolean — Enable EntityPostgresHandler
    - `cursor` CursorConfig — Controls incremental sync cursor behavior.
      - `skip_load` boolean — Don't load cursor (fetch all entities)
      - `skip_updates` boolean — Don't persist cursor progress
    - `behavior` BehaviorConfig — Miscellaneous execution behavior flags.
      - `skip_hash_comparison` boolean — Force INSERT for all entities
      - `replay_from_arf` boolean — Replay from ARF storage instead of calling source
      - `skip_guardrails` boolean — Skip usage guardrails (entity count checks)
  - `created_at` string, date-time, required — Timestamp when the collection was created (ISO 8601 format).
  - `modified_at` string, date-time, required — Timestamp when the collection was last modified (ISO 8601 format).
  - `organization_id` string, uuid, required — Identifier of the organization that owns this collection. Collections are isolated per organization.
  - `created_by_email` string, email, nullable — Email address of the user who created this collection.
  - `modified_by_email` string, email, nullable — Email address of the user who last modified this collection.
  - `status` 'ACTIVE' | 'NEEDS SOURCE' | 'ERROR' — Collection status enum.
  - `vector_size` integer, required — Vector dimensions used by this collection (derived from deployment metadata).
  - `embedding_model_name` string, required — Name of the embedding model used for this collection (derived from deployment metadata).
  - `source_connection_summaries` SourceConnectionSummary[] — Lightweight list of source connections attached to this collection. Contains only short_name and name, suitable for rendering icons in list views.
    - `short_name` string, required
    - `name` string, required

## Other responses

- `404` — Collection Not Found
- `422` — Validation Error
- `429` — Rate Limit Exceeded

---

[API](https://skmtc.net/airweave-ai/apis/airweave.md) · [All operations](https://skmtc.net/airweave-ai/apis/airweave/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/airweave-ai/airweave/versions/bf410c28c0c6/schema)
