curl --request GET \
--url https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes', 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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes",
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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes"
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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes")
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{
"data": [
{
"id": 42,
"field": {
"id": "field-1234",
"entityType": "company",
"name": "Stage",
"type": "global"
},
"entity": {
"id": 1
},
"listEntry": {
"id": 1,
"listId": 1
},
"changer": {
"id": 1,
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@contoso.com"
},
"changedAt": "2024-06-01T12:00:00Z",
"actionType": "update",
"type": "company",
"value": {
"referenceType": "entity",
"id": 1,
"name": "Horizon Technologies",
"domain": "horizontech.com"
}
}
],
"pagination": {
"prevUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw",
"nextUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA"
}
}{
"errors": [
{
"code": "bad-request",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "authorization",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "not-found",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "authentication",
"message": "<string>"
}
]
}Get Field Value Changes on a List Entry
| ⚠️ This endpoint is currently in BETA |
|---|
Paginate through the historical value changes on the fields of a List Entry.
For an overview of field value changes, including which fields support change tracking and how the action types behave, see Field Value Changes.
Each change includes who made the change, when it occurred, the action that was performed, and
the value that was set. Changes are sorted by changedAt in ascending order (oldest first).
You can filter field value changes using the filter query parameter. The filter parameter is a string that
you can specify conditions based on the following properties.
| Property Name | Type | Description | Allowed Operators | Examples |
|---|---|---|---|---|
field.id | text | = | field.id=field-1234 | |
changedAt | datetime | When the change was made. | >, <, >=, <= | changedAt>2026-01-01T00:00:00Z |
changer.id | int64 | The person who made the change. | = | changer.id=1234 |
actionType | text | The type of change (add, update, delete) | = | actionType=add |
curl --request GET \
--url https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes', 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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes",
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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes"
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.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.affinity.co/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes")
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{
"data": [
{
"id": 42,
"field": {
"id": "field-1234",
"entityType": "company",
"name": "Stage",
"type": "global"
},
"entity": {
"id": 1
},
"listEntry": {
"id": 1,
"listId": 1
},
"changer": {
"id": 1,
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@contoso.com"
},
"changedAt": "2024-06-01T12:00:00Z",
"actionType": "update",
"type": "company",
"value": {
"referenceType": "entity",
"id": 1,
"name": "Horizon Technologies",
"domain": "horizontech.com"
}
}
],
"pagination": {
"prevUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw",
"nextUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA"
}
}{
"errors": [
{
"code": "bad-request",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "authorization",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "not-found",
"message": "<string>"
}
]
}{
"errors": [
{
"code": "authentication",
"message": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
List ID
1 <= x <= 9007199254740991List Entry ID
1 <= x <= 9007199254740991Query Parameters
Filter options
Cursor for the next or previous page
"ICAgICAgYmVmb3JlOjo6Nw"
Number of items to include in the page
1 <= x <= 10010
Response
OK
The field value changes for this page
100- fieldValueChanges.CompanyValueChange
- fieldValueChanges.CompanyMultiValueChange
- fieldValueChanges.DatetimeValueChange
- fieldValueChanges.DropdownValueChange
- fieldValueChanges.DropdownMultiValueChange
- fieldValueChanges.FilterableTextValueChange
- fieldValueChanges.FilterableTextMultiValueChange
- fieldValueChanges.LocationValueChange
- fieldValueChanges.LocationMultiValueChange
- fieldValueChanges.NumberValueChange
- fieldValueChanges.NumberMultiValueChange
- fieldValueChanges.PersonValueChange
- fieldValueChanges.PersonMultiValueChange
- fieldValueChanges.RankedDropdownValueChange
- fieldValueChanges.TextValueChange
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?