List audit-log entries (cursor-paginated)
GET
/audit-log
const url = 'https://api.vendorica.com/v1/audit-log?severity=info&limit=50';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.vendorica.com/v1/audit-log?severity=info&limit=50' \ --header 'Authorization: Bearer <token>'Cursor-paginated read of the hash-chained audit trail. Pass ?cursor=<opaque>&limit=<n> to advance; the response carries cursor.nextCursor (null on the last page) plus cursor.hasMore. The legacy ?page= parameter returns 400 — see /v1/openapi.json for the canonical contract.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”entityType
string
entityId
string
operation
string
userId
string
createdFrom
string
createdTo
string
dateFrom
string
dateTo
string
severity
string
ipAddress
string
cursor
string
limit
integer
Responses
Section titled “Responses”Success
Media typeapplication/json
object
success
required
boolean
data
required
Array<object>
object
id
required
string format: uuid
entityType
required
string
entityId
required
string
operation
required
string
oldValues
required
object | null
newValues
required
object | null
changedFields
required
Array<string> | null
userId
required
string | null
userEmail
required
string | null
userRole
required
string | null
ipAddress
required
string | null
userAgent
required
string | null
requestId
required
string | null
description
required
string | null
severity
required
string
createdAt
required
string | null format: date-time
key
additional properties
timestamp
required
string format: date-time
requestId
string
message
string
cursor
required
object
nextCursor
required
string | null
hasMore
required
boolean
limit
required
integer
Example
{ "success": true, "data": [ { "id": "947f0edf-a104-45e7-8dec-65ecc3246c38", "entityType": "string", "entityId": "string", "operation": "string", "oldValues": {}, "newValues": {}, "changedFields": [ "string" ], "userId": "string", "userEmail": "string", "userRole": "string", "ipAddress": "string", "userAgent": "string", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "description": "string", "severity": "string", "createdAt": "2026-08-19T09:41:12.004Z" } ], "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string", "cursor": { "nextCursor": "string", "hasMore": true, "limit": 1 }}Validation error
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Bad request", "code": "BAD_REQUEST", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Unauthorized
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Unauthorized", "code": "UNAUTHORIZED", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Forbidden — missing scope
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Forbidden", "code": "FORBIDDEN", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Not found
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Resource not found", "code": "NOT_FOUND", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Rate limit exceeded
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Too many requests", "code": "TOO_MANY_REQUESTS", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}