Update Records

Change fields on existing records without a build, or delete records with `delete`. Send each record's id and only the fields to change: keyword, enum, identifier, number, date, geo and bool fields, and access lists. `null` clears a field. Up to 1,000 records per request. Changes apply in order within about a second. Text fields need a build (422 FIELD_NEEDS_REBUILD). The reply lists anything that waits for the next build.

Authentication

AuthorizationBearer

A write key, issued by Captain. Server side only. Sent as Authorization: Bearer <key>.

Path parameters

indexstringRequiredformat: "^[a-z0-9][a-z0-9_-]{0,47}$"
index name

Headers

Idempotency-KeystringOptional<=255 characters

Replays within 24 hours return the stored response (header Idempotent-Replayed: true). The same key on a different request answers 422. A concurrent duplicate answers 409. Failed requests do not keep the key.

Request

This endpoint expects an object.
recordslist of objectsOptional

each: the id field plus the fields to set (keyword, enum, identifier, number, date, geo, bool, and the acl / deny fields). null clears a field

deletelist of stringsOptional
ids to delete

Response

accepted
live_updatesenumOptional
Live updates apply only on the region that accepted them.
Allowed values:
regions_appliedlist of stringsOptional

The region where this update applies, within about a second (GET …/updates shows when).

regions_pendinglist of stringsOptional
Regions without this update until the index's next build is published and restored there.
replicates_on_next_buildbooleanOptional

True when builds are published to every region: the next build started after this update carries it everywhere (one accepted while a build runs waits for the build after).

indexstringOptional
seqintegerOptional
accepted_atdoubleOptional
updatedintegerOptional
deletedintegerOptional
servedbooleanOptional
stale_until_buildlist of stringsOptional
fields updated for filters, facets and sort at once, whose words the keyword lanes see only after the next build
stale_features_until_buildlist of enumsOptional

what still reflects the data before this update until the next build: typeahead, spelling and search_evidence (the no-typed-word answer) keep a deleted record’s words and do not learn a changed value’s words; hit_display: values shown on hits from the record’s mapped roles (rating, price, title…). Filters, sort, facets, hit.fields and GET change at once

Allowed values:
© 2026 Captain