API reference
Append records
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.
POST
/
api
/
v1
/
log
/
append
Append records
curl --request POST \
--url http://localhost:3001/api/v1/log/append \
--header 'Content-Type: application/json' \
--data '
{
"records": [
{
"key": "dGVzdC1rZXk=",
"value": "dGVzdC12YWx1ZQ=="
}
],
"awaitDurable": false
}
'import requests
url = "http://localhost:3001/api/v1/log/append"
payload = {
"records": [
{
"key": "dGVzdC1rZXk=",
"value": "dGVzdC12YWx1ZQ=="
}
],
"awaitDurable": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
records: [{key: 'dGVzdC1rZXk=', value: 'dGVzdC12YWx1ZQ=='}],
awaitDurable: false
})
};
fetch('http://localhost:3001/api/v1/log/append', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/api/v1/log/append",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'records' => [
[
'key' => 'dGVzdC1rZXk=',
'value' => 'dGVzdC12YWx1ZQ=='
]
],
'awaitDurable' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3001/api/v1/log/append"
payload := strings.NewReader("{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3001/api/v1/log/append")
.header("Content-Type", "application/json")
.body("{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/api/v1/log/append")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"recordsAppended": 1,
"startSequence": 42
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}Body
application/json
⌘I
Append records
curl --request POST \
--url http://localhost:3001/api/v1/log/append \
--header 'Content-Type: application/json' \
--data '
{
"records": [
{
"key": "dGVzdC1rZXk=",
"value": "dGVzdC12YWx1ZQ=="
}
],
"awaitDurable": false
}
'import requests
url = "http://localhost:3001/api/v1/log/append"
payload = {
"records": [
{
"key": "dGVzdC1rZXk=",
"value": "dGVzdC12YWx1ZQ=="
}
],
"awaitDurable": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
records: [{key: 'dGVzdC1rZXk=', value: 'dGVzdC12YWx1ZQ=='}],
awaitDurable: false
})
};
fetch('http://localhost:3001/api/v1/log/append', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3001",
CURLOPT_URL => "http://localhost:3001/api/v1/log/append",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'records' => [
[
'key' => 'dGVzdC1rZXk=',
'value' => 'dGVzdC12YWx1ZQ=='
]
],
'awaitDurable' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3001/api/v1/log/append"
payload := strings.NewReader("{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3001/api/v1/log/append")
.header("Content-Type", "application/json")
.body("{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3001/api/v1/log/append")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"records\": [\n {\n \"key\": \"dGVzdC1rZXk=\",\n \"value\": \"dGVzdC12YWx1ZQ==\"\n }\n ],\n \"awaitDurable\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"recordsAppended": 1,
"startSequence": 42
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}