Skip to content

Append batch

POST
/logs/{log_id}/append_batch

Appends multiple events in a single request. The request body contains raw bytes that are split by the delimiter to produce individual payloads. Events are appended in array order. The service does not return until all events are durably stored. Total request size must not exceed 10 MB. Counts as a single request against rate limits. Required role: member.

Idempotency: Requires the Idempotency-Key header. Each event gets a per-event key ‘{base}:{index}’ for safe batch retries. If a network failure occurs mid-batch, retrying republishes all events; already-processed events are deduplicated within the configured window (default: 1 hour in production).

log_id
required
string

Log ID (UUID)

delimiter
required
string

Delimiter string used to split the body into individual payloads (e.g., ‘\n’ for newline)

Idempotency-Key
required
string

Required. Base idempotency key for the batch. Each event gets ‘{base}:{index}’ (e.g., ‘batch-123:0’, ‘batch-123:1’). Enables safe retries even if batch partially succeeded. Deduplication applies within the configured window (default: 1 hour in production).

Raw payloads separated by the delimiter. Must not exceed 10 MB.

Array<integer>

All events stored

Response after appending multiple events. Returned only after all events are durably stored.

object
sequences
required

Assigned sequence numbers in the same order as the request payloads. The last sequence number can be used for read-after-write consistency.

Array<integer>
success
required

True when all events were durably stored.

boolean

Invalid request (missing header, invalid delimiter, or empty body)

Unauthorized

Log not found

Server error