---
title: "Bulk set objects"
method: POST
path: "/v1/objects/{collection}/bulk/set"
tags: ["Objects", "Bulk operations"]
---

# Bulk set objects

`POST /v1/objects/{collection}/bulk/set`

Bulk sets up to 1,000 objects at a time in the specified collection.

## Path parameters

- `collection` string, required

## Request body

- BulkSetObjectsRequest — A request to set objects in bulk.
  - `objects` BulkSetObjectRequest[], required — A list of objects.
    - `channel_data` union — An optional set of [channel data](/managing-recipients/setting-channel-data) for the object. This is a list of `ChannelData` objects.
      - object — A request to set channel data for a type of channel inline.
      - unknown
    - `created_at` string, date-time, nullable — Timestamp when the resource was created.
    - `id` string, required — Unique identifier for the object.
    - `name` string, nullable — An optional name for the object.
    - `preferences` union — An optional set of [preferences](/concepts/preferences) for the object.
      - object — Inline set preferences for a recipient, where the key is the preference set id. Preferences that are set inline will be merged into any existing preferences rather than replacing them.
      - unknown

## Response `200`

OK

- BulkOperation — A bulk operation entity.
  - `__typename` string, required — The typename of the schema.
  - `completed_at` string, date-time, nullable — Timestamp when the bulk operation was completed.
  - `error_count` integer — The number of failed operations.
  - `error_items` object[] — A list of items that failed to be processed.
    - `collection` string, nullable — The collection this object belongs to.
    - `id` string, required — Unique identifier for the object.
  - `estimated_total_rows` integer, required — The estimated total number of rows to process.
  - `failed_at` string, date-time, nullable — Timestamp when the bulk operation failed.
  - `id` string, uuid, required — Unique identifier for the bulk operation.
  - `inserted_at` string, date-time, required — Timestamp when the resource was created.
  - `name` string, required — The name of the bulk operation.
  - `processed_rows` integer, required — The number of rows processed so far.
  - `progress_path` string, uri — The URI to the bulk operation's progress.
  - `started_at` string, date-time, nullable — Timestamp when the bulk operation was started.
  - `status` 'queued' | 'processing' | 'completed' | 'failed', required — The status of the bulk operation.
  - `success_count` integer, required — The number of successful operations.
  - `updated_at` string, date-time, required — The timestamp when the resource was last updated.

## Changes

- **2026-04-14** `3e8f3a4664d4` — 23 info
  - added the new `is_between` enum value to the request property `objects/items/preferences/oneOf[subschema #1: InlinePreferenceSetRequest]/additionalProperties/categories/anyOf[subschema #1: PreferenceSetRequestCategories]/additionalProperties/oneOf[subschema #2: PreferenceSetWorkflowCategorySettingObject]/channel_types/anyOf[subschema #1: PreferenceSetChannelTypes]/chat/oneOf[subschema #2: PreferenceSetChannelTypeSetting]/conditions/items/operator`
  - added the new `is_between` enum value to the request property `objects/items/preferences/oneOf[subschema #1: InlinePreferenceSetRequest]/additionalProperties/categories/anyOf[subschema #1: PreferenceSetRequestCategories]/additionalProperties/oneOf[subschema #2: PreferenceSetWorkflowCategorySettingObject]/channel_types/anyOf[subschema #1: PreferenceSetChannelTypes]/email/oneOf[subschema #2: PreferenceSetChannelTypeSetting]/conditions/items/operator`
  - added the new `is_between` enum value to the request property `objects/items/preferences/oneOf[subschema #1: InlinePreferenceSetRequest]/additionalProperties/categories/anyOf[subschema #1: PreferenceSetRequestCategories]/additionalProperties/oneOf[subschema #2: PreferenceSetWorkflowCategorySettingObject]/channel_types/anyOf[subschema #1: PreferenceSetChannelTypes]/http/oneOf[subschema #2: PreferenceSetChannelTypeSetting]/conditions/items/operator`
  - added the new `is_between` enum value to the request property `objects/items/preferences/oneOf[subschema #1: InlinePreferenceSetRequest]/additionalProperties/categories/anyOf[subschema #1: PreferenceSetRequestCategories]/additionalProperties/oneOf[subschema #2: PreferenceSetWorkflowCategorySettingObject]/channel_types/anyOf[subschema #1: PreferenceSetChannelTypes]/in_app_feed/oneOf[subschema #2: PreferenceSetChannelTypeSetting]/conditions/items/operator`
  - …19 more
- …earlier changes not shown

[Full history](https://skmtc.dev/knocklabs/apis/knock-api/changes/v1/objects/:collection/bulk/set/post.md)

---

[API](https://skmtc.dev/knocklabs/apis/knock-api.md) · [All operations](https://skmtc.dev/knocklabs/apis/knock-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/knocklabs/knock-api/revisions/4b8499dddbc5/schema)
