v1

latestOpenAPI 3.1.02026-07-13154170539.0 KB
Logs

Atomic Field Update

Apply an atomic operation to a numeric field in a log entry.

This endpoint performs race-safe atomic updates directly in PostgreSQL, ensuring correct results even under high concurrent load.

Supported operations:

  • +N: Add N to the current value
  • -N: Subtract N from the current value
  • *N: Multiply the current value by N
  • /N: Divide the current value by N

If the field doesn't exist or is NULL, it is treated as 0 before the operation.

patch/v0/logs/{log_id}/fields/{field_name}/atomic

Path parameters

log_idinteger required

The ID of the log to update

The ID of the log to update

field_namestring required

The name of the field to update atomically

The name of the field to update atomically

Request body

operationstring required

Atomic operation to apply. Supported formats: +N, -N, *N, /N where N is a number.

fieldstring nullable

(Upsert mode) Name of the numeric field to update atomically.

projectstring nullable

(Upsert mode) Name of the project.

contextstring nullable

(Upsert mode) Context path for the log.

unique_keysobject nullable

(Upsert mode) Unique key configuration for the context. Maps key names to types (str, int, float).

initial_dataobject nullable

(Upsert mode) Data to use when creating a new log entry. Must include all unique key values.

add_to_all_contextboolean

(Upsert mode) If true, also adds the log to the 'All/*' archive context.

Example request

{
  "operation": "+1",
  "field": "cumulative_spend",
  "project": "Assistants",
  "context": "42/7/Spending/Monthly",
  "unique_keys": {
    "_assistant_id": "str",
    "month": "str"
  },
  "initial_data": {
    "_assistant_id": "123",
    "_org_id": 456,
    "month": "2026-01"
  }
}

Response

Atomic operation applied successfully

new_valuenumber required

The new value of the field after the operation.

log_idinteger nullable

ID of the log entry (included in upsert mode).

createdboolean nullable

True if a new log was created (upsert mode only).

mirrored_contextsstring[] nullable

List of archive contexts the log was mirrored to (upsert mode only).