---
title: "Append records"
method: POST
path: "/api/v1/log/append"
---

# Append records

`POST /api/v1/log/append`

Append one or more records to the log. Each record has a key (used for
partitioning scans) and a value (arbitrary bytes, both base64-encoded in
JSON).

Set `awaitDurable` to `true` to block until the records are persisted to
durable storage. When `false` (the default), the server acknowledges the
write as soon as records are buffered in memory.

## Request body

- AppendRequest — Request body for appending records to the log.
  - `records` Record[], required — One or more records to append.
    - `key` string, byte, required — Partition key, base64-encoded.
    - `value` string, byte, required — Record payload, base64-encoded.
  - `awaitDurable` boolean — Whether to wait for durable persistence before responding.

## Response `200`

Records appended successfully.

- AppendResponse — Response after successfully appending records.
  - `status` string, required
  - `recordsAppended` integer, required — Number of records written.
  - `startSequence` integer, required — Sequence number assigned to the first appended record.

## Other responses

- `400` — Invalid input (malformed JSON or missing fields).
- `500` — Internal server error.

---

[API](https://skmtc.net/opendata-oss/apis/opendata-log-api.md) · [All operations](https://skmtc.net/opendata-oss/apis/opendata-log-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/opendata-oss/opendata-log-api/versions/792e23c43301/schema)
