Get all field value changes
Changed onRetrieve field value changes across all entities and fields in your Affinity workspace.
For an overview of field value changes, including which fields support change tracking and how the action types behave, see Field Value Changes.
This endpoint is built for delta-sync. Within a single sync, follow pagination.nextUrl to page through results until it becomes null, which means you have reached the most recent change. To run the next incremental sync, record the changedAt of the last change you processed and, on your next sync, filter for changes newer than that timestamp (for example, filter=changedAt>2024-06-01T12:00:00Z). Do not persist nextUrl between syncs, since it is null once you are caught up. Changes are returned in ascending order of changedAt, then by internal change ID. Only fields with change tracking enabled are included.
You can filter results using the filter query parameter.
| Property Name | Type | Description | Allowed Operators | Examples |
|---|---|---|---|---|
| field.id | text | = | field.id=field-1234 | |
| listEntry.id | int64 | = | listEntry.id=5678 | |
| changer.id | int64 | The person who made the change. | = | changer.id=9012 |
| changedAt | datetime | When the change was made. | >, <, >=, <= | changedAt>=2025-01-01T00:00:00Z |
| actionType | text | The type of change (add, update, delete) | = | actionType=add |
Filters can be combined:
- | (OR) to match any of multiple values: field.id=field-1 | field.id=field-2
- & (AND) to require all conditions: changedAt>=2025-01-01T00:00:00Z & changedAt<=2025-12-31T23:59:59Z
Request
- Base URLhttps://api.affinity.co
- URLhttps://api.affinity.co/v2/field-value-changes
- AuthHTTP bearer
Query parameters
Filter options
Properties to sort by. Defaults to changedAt. Prefix with - for descending order.
Cursor for the next or previous page
Number of items to include in the page
Response
OK
Example response
{
"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"
}
],
"pagination": {
"prevUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw",
"nextUrl": "https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA"
}
}Changes
- info
added
authenticationauthorizationbad-requestconflictmethod-not-allowednot-acceptablenot-foundnot-implementedrate-limitservertimeoutunprocessable-entityunsupported-media-typevalidationdiscriminator mapping keys to the/response property for the response status - info
added
bad-requestvalidationdiscriminator mapping keys to the/response property for the response status - info
added
companycompany-multidatetimedropdowndropdown-multifilterable-textfilterable-text-multilocationlocation-multinumbernumber-multipersonperson-multiranked-dropdowntextdiscriminator mapping keys to the/response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status - info
added
entitydeleted-entitydiscriminator mapping keys to the///response property for the response status
- info