Member API
List the member's points ledger
The signed-in member’s points entries in their company, newest first (by time recorded, then entry). An order reference is included only for an order the member placed. Responses must be revalidated with the ETag.
GET
/
api
/
member
/
v2026-10
/
points
/
ledger
List the member's points ledger
curl --request GET \
--url https://api.fluid.app/api/member/v2026-10/points/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/member/v2026-10/points/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/member/v2026-10/points/ledger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/member/v2026-10/points/ledger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/member/v2026-10/points/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/member/v2026-10/points/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/member/v2026-10/points/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"data": [
{
"id": "0192f4d2-6a7b-7c80-9d1e-2f3a4b5c6d7e",
"kind": "order_credit",
"amount": 120,
"balance_after": 1250,
"reason": null,
"order_id": "0192f4b0-1c2d-7e30-8f4a-5b6c7d8e9f01",
"occurred_at": "2026-09-28T18:22:41.105331Z"
},
{
"id": "0192f3c9-4d5e-7f60-a1b2-3c4d5e6f7a8b",
"kind": "adjustment",
"amount": 500,
"balance_after": 1130,
"reason": "Birthday bonus",
"order_id": null,
"occurred_at": "2026-09-12T09:00:00.000000Z"
}
],
"meta": {
"request_uuid": "0192f4d3-8c9d-7ea0-b1c2-d3e4f5a6b7c8",
"timestamp": "2026-09-30T15:11:19Z",
"pagination": {
"next_cursor": null
}
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
A member credential in the Authorization: Bearer header: a member
session JWT, a portal JWT whose login is linked to a membership in
that company, or a member token. The credential alone
identifies the member and company.
Query Parameters
Opaque cursor from a previous response's
meta.pagination.next_cursor. A cursor that is malformed,
tampered with or older than three days returns 400.
Page size. Defaults to 25, at most 100.
Required range:
1 <= x <= 100⌘I
List the member's points ledger
curl --request GET \
--url https://api.fluid.app/api/member/v2026-10/points/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/member/v2026-10/points/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/member/v2026-10/points/ledger', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/member/v2026-10/points/ledger",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/member/v2026-10/points/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/member/v2026-10/points/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/member/v2026-10/points/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": 200,
"data": [
{
"id": "0192f4d2-6a7b-7c80-9d1e-2f3a4b5c6d7e",
"kind": "order_credit",
"amount": 120,
"balance_after": 1250,
"reason": null,
"order_id": "0192f4b0-1c2d-7e30-8f4a-5b6c7d8e9f01",
"occurred_at": "2026-09-28T18:22:41.105331Z"
},
{
"id": "0192f3c9-4d5e-7f60-a1b2-3c4d5e6f7a8b",
"kind": "adjustment",
"amount": 500,
"balance_after": 1130,
"reason": "Birthday bonus",
"order_id": null,
"occurred_at": "2026-09-12T09:00:00.000000Z"
}
],
"meta": {
"request_uuid": "0192f4d3-8c9d-7ea0-b1c2-d3e4f5a6b7c8",
"timestamp": "2026-09-30T15:11:19Z",
"pagination": {
"next_cursor": null
}
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"status": 123,
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"request_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2023-11-07T05:31:56Z"
}
}