VRPlatformVRPlatform
Audit

/audit/events

Work in progress: this contract is not frozen and can change without backward compatibility. Read audit events on demand instead of mirroring them into another store. List typed public audit events for the selected team with accounting status and signed net effect per account and currency. Results are ordered by full-precision updatedAt and id; treat cursors as opaque and reuse them only with the region, principal, order, and filters that issued them. Ascending reads trail real time by a short visibility lag so concurrently committed revisions are never skipped. A cursor or updatedFrom before retained history returns 410 with earliestAvailableAt.

Required scope: audit:read

GET
/audit/events
X-API-Key<token>

API key provided in dashboard

In: header

Query Parameters

cursor?string
Length1 <= length
limit?integer
Default50
Range1 <= value <= 100
order?string
Default"desc"
Value in"asc" | "desc"
updatedFrom?string

Timestamp string with date, time, milliseconds, and timezone.

Formatdate-time
updatedTo?string

Timestamp string with date, time, milliseconds, and timezone.

Formatdate-time
entityType?string
Value in"account" | "accountConnection" | "bankRecord" | "listing" | "listingOwnershipPeriod" | "ownerStatement" | "recurringFee" | "reservation" | "transaction"
entityId?string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
actionId?string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
actionCode?string
Length1 <= length
operation?string
Value in"create" | "update" | "delete" | "archive" | "restore" | "execute" | "recalculate"
actorType?string
Value in"user" | "api_key" | "sync" | "automation" | "system"
actorId?string
Length1 <= length
accountingStatus?string
accountId?string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
hasChanges?boolean

Whether any public entity or journal-entry change exists

changedEntityType?string

Public subject participating in entityChanges

Value in"account" | "accountConnection" | "bankRecord" | "listing" | "listingOwnershipPeriod" | "ownerStatement" | "recurringFee" | "reservation" | "transaction" | "paymentLine"
changedPath?string

Exact public registry path for changedEntityType

Length1 <= length

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://staging.api.vrplatform.app/audit/events"
{
  "data": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "revision": 9007199254740991,
      "actionId": "4a2794ff-94cb-4bac-8d36-d5fb36c563a0",
      "team": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "uniqueRef": "string",
        "name": "string"
      },
      "occurredAt": "2024-01-15T12:30:00.000+00:00",
      "updatedAt": "2024-01-15T12:30:00.000+00:00",
      "actor": {
        "type": "user",
        "id": "string",
        "name": "string",
        "email": "user@example.com",
        "label": "string"
      },
      "source": {
        "type": "portal",
        "requestId": "string"
      },
      "action": {
        "code": "string",
        "summary": "string",
        "operation": "create"
      },
      "rootEntity": {
        "type": "account",
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "uniqueRef": "string",
        "name": "string"
      },
      "entityChanges": [
        {
          "entity": {
            "type": "account",
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "uniqueRef": "string",
            "name": "string"
          },
          "operation": "create",
          "changes": [
            {
              "path": "string",
              "before": {
                "type": "string",
                "value": "string"
              },
              "after": {
                "type": "string",
                "value": "string"
              }
            }
          ],
          "redactedFields": [
            "string"
          ]
        }
      ],
      "accountingImpact": {
        "status": "not_applicable",
        "netEffect": [
          {
            "account": {
              "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              "name": "string",
              "category": {
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "name": "string",
                "classification": "string"
              }
            },
            "amount": {
              "type": "money",
              "centTotal": -9007199254740991,
              "currency": "string"
            }
          }
        ]
      }
    }
  ],
  "page": {
    "limit": 9007199254740991,
    "hasMore": true,
    "nextCursor": "string"
  }
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "string",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}