curl --request GET \
--url https://www.presolve.com/api/v1/events \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.presolve.com/api/v1/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/events"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"events": [
{
"id": "<string>",
"cursor": "<string>",
"entity": "<string>",
"entityId": "<string>",
"eventType": "<string>",
"occurredAt": "<string>",
"actor": {
"id": "<string>",
"type": "<string>",
"name": "<string>"
},
"payload": {},
"diff": {},
"relatedIds": [
{
"entity": "<string>",
"id": "<string>"
}
],
"correlationId": "<string>",
"metadata": {}
}
],
"nextCursor": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Read the unified event feed
Cursor-ordered public event feed. Requires events:read; results are additionally scope-filtered — a key only sees events for entities whose requiredScope it also holds (e.g. case.* events require cases:read).
Supports one selected organization via organizationId. Omit it to use the key’s organization. HQ descendant access requires an active acting attorney with hq:view_child_orgs, cases:view, cases:view_all, hq:view_all_cases and an HQ admin role. Existing key scopes still apply. The selector requires an integration API key; legacy partner/OIDC routing is unchanged. Repeat the selector on every cursor page, related mutation, upload completion, and detail/download request. See HQ authorization.
Requires the events:read scope. Rate tier: read.
curl --request GET \
--url https://www.presolve.com/api/v1/events \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://www.presolve.com/api/v1/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://www.presolve.com/api/v1/events"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"events": [
{
"id": "<string>",
"cursor": "<string>",
"entity": "<string>",
"entityId": "<string>",
"eventType": "<string>",
"occurredAt": "<string>",
"actor": {
"id": "<string>",
"type": "<string>",
"name": "<string>"
},
"payload": {},
"diff": {},
"relatedIds": [
{
"entity": "<string>",
"id": "<string>"
}
],
"correlationId": "<string>",
"metadata": {}
}
],
"nextCursor": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}{
"success": false,
"error": "<string>",
"code": "<string>"
}Authorizations
Org-issued integration API key (service account credential). The plaintext secret is shown once at creation.
Query Parameters
11 <= x <= 5001 - 1001 - 2001 - 200Select one organization for this request. Defaults to the key organization. An HQ key may select an active descendant when its active acting attorney has the required HQ and resource permissions. Repeat the same organizationId on related mutations, upload completion, detail requests, and every cursor page. See /authorization.