Tail what changed
How a caller without a socket learns what its peers did. Omit after for the most recent entries, then copy each page’s next_cursor back as after to walk forward. Scope is taken from your key — organization, plane and sync groups — so a caller cannot widen what it sees by asking.
GET
/v1/logsQuery parameters
afterstringlimitintegermin 1
modelstringopstringAllowed:
createupdatedeletearchiverevivevisiblegroup_addedgroup_removedsincestringResponses
200A page of the feed, oldest first. Entries are discriminated on `object`, so a reader that meets an entry kind it does not know can skip it and keep paging.
objectstringrequireddataobject[]requiredShow propertiesHide properties
Array of
objectOne of:
object
objectstringrequiredidnumberrequiredatstringrequiredmodelstringrequiredopstringrequiredAllowed:
createupdatedeletearchiverevivevisiblegroup_addedgroup_removedrecordIdstringrequiredactorstring | anyrequiredShow propertiesHide properties
Any of:
string
stringany
anydeltaobjectShow propertiesHide properties
idnumberrequiredactionTypestringrequiredAllowed:
IUDAVCGSmodelNamestringrequiredmin length 1
modelIdstringrequiredmin length 1
dataobject | string | anyrequiredShow propertiesHide properties
Any of:
object | string
Any of:
object
objectstring
stringany
anypreviousDataobject | string | anyShow propertiesHide properties
Any of:
object | string
Any of:
object
objectstring
stringany
anycreatedAtstringrequiredactorobject | anyShow propertiesHide properties
Any of:
object
kindstringrequiredAllowed:
useragentsystemidstringrequiredany
anyonBehalfOfobject | anyShow propertiesHide properties
Any of:
object
kindstringrequiredAllowed:
useragentsystemidstringrequiredany
anycapabilityIdstring | anyShow propertiesHide properties
Any of:
string
stringany
anyconfirmationStatestring | anyShow propertiesHide properties
Any of:
string
stringany
anyobject
actorstringrequiredparticipantKindstringrequiredAllowed:
useragentsystemonBehalfOfIdstring | anyrequiredShow propertiesHide properties
Any of:
string
stringany
anyonBehalfOfKindstring | anyrequiredShow propertiesHide properties
Any of:
string
stringany
anycapabilityIdstring | anyrequiredShow propertiesHide properties
Any of:
string
stringany
anydescriptionstringrequiredstatusstringrequiredAllowed:
activequeuedcommittedexpiredcanceledpositionintegermin 0 · max 9007199254740991
expiresAtintegerrequiredmin -9007199254740991 · max 9007199254740991
fenceTokenintegermin -9007199254740991 · max 9007199254740991
targetobjectrequiredShow propertiesHide properties
modelstringrequiredidstringrequiredfieldstringfieldsstring[]metaobjectobjectstringrequiredseqintegerrequiredmin 0 · max 9007199254740991
atstringrequiredclaimIdstringrequiredhas_morebooleanrequirednext_cursorCursor | anyrequiredShow propertiesHide properties
One of:
Cursor
stringany
any400The request did not satisfy the published contract.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring401The Bearer credential is missing, malformed, or expired.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring403The credential does not authorize this operation.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring404The addressed resource does not exist in the credential scope.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring409The request conflicts with current claim, version, or idempotency state.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring429The caller exceeded an enforced rate limit.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring500The server could not complete the request.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstring503A required service is temporarily unavailable.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstringdefaultAn HTTP error not otherwise listed; decoded through the canonical envelope.
typestringrequiredcodestringparamstringmessagestringrequireddoc_urlstringrequest_idstringerrorsobject[]Show propertiesHide properties
Array of
objectcodestringmessagestringrequiredparamstringRequest
curl -X GET "https://api.abloatai.com/api/v1/logs"const response = await fetch("https://api.abloatai.com/api/v1/logs", {
method: "GET"
});import requests
response = requests.get(
"https://api.abloatai.com/api/v1/logs",
)Response
{
"object": "list",
"data": [
{
"object": "log_event",
"id": 0,
"at": "string",
"model": "string",
"op": "create",
"recordId": "string",
"actor": "string",
"delta": {
"id": 0,
"actionType": "I",
"modelName": "string",
"modelId": "string",
"data": {},
"previousData": {},
"createdAt": "string",
"actor": {
"kind": "user",
"id": "string"
},
"onBehalfOf": {
"kind": "user",
"id": "string"
},
"capabilityId": "string",
"confirmationState": "auto"
}
}
],
"has_more": true,
"next_cursor": "string"
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}{
"type": "string",
"code": "string",
"param": "string",
"message": "string",
"doc_url": "string",
"request_id": "string",
"errors": [
{
"code": "string",
"message": "string",
"param": "string"
}
]
}