ackDB

Set/clear attribute values on a contact

:id = contact id or email. Accepts contact-scope keys only. Same all-or-nothing validation, null-clears-DELETEs-the-row, and no-op-writes-emit-nothing semantics as the company variant; the trait.updated event lands on the contact's company timeline.

put/api/v1/ackdb/contacts/{id}/attributes

Request

  • Base URL
    http://localhost:3009
  • Auth
    HTTP bearer

Path parameters

idstring required

Contact reference — a contact id (ULID) or an email (looked up, lowercased). Email is unique per entity, not globally — a match across multiple entities returns 409 AMBIGUOUS_IDENTITY instead of guessing.

Request body

valuesobject required

Map of attribute key → new value (or null to clear). Must be non-empty.

actorstring

Who made the change — recorded as the value row's updatedBy and the timeline event's actor (person.attribute.changed for people, trait.updated for companies/contacts). Defaults to "api". Observe/agent write paths stamp the real user automatically.

Response

{ entityId, contactId, applied: {key: value}, cleared: [key], updatedAt }.

dataunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.