For Developers
List Audit Log Events
This model is part of an upcoming API update which is currently in beta and therefore subject to change.
GET https://ed.link/api/v2/audit/events/scope/:scope
Retrieve a reverse-chronological list of recorded Events within a specified scope.
You must provide your application secret key in order to access this endpoint. This authentication mechanism is a little bit different than most other requests in our API because it is not made in the "scope" of one particular integration or person. You can find your application secret on the Edlink dashboard.
Request Parameters
This query allows for paging through results via the $next parameter.
You may narrow the results using the $filter parameter, which follows our standard filtering format. The following properties are filterable:
| Property | Operators | Description |
|---|---|---|
id | equals | Filter by Event ID. |
action | equals | Filter by action identifier, e.g. assignment.submit. Values are lowercased before matching. |
severity | equals | Filter by severity. One of debug, low, medium, high, or emergency. Values are lowercased before matching. |
actor.type | equals | Filter by actor.type. One of person, system, or anonymous. |
actor.value | contains | Filter by a matching value in any Identifier within actor.identifiers. |
actor.issuer | contains | Filter by a matching issuer in any Identifier within actor.identifiers, e.g. edlink. |
target.type | contains | Filter to Events that include a target with this type. |
target.value | contains | Filter to Events that include a target whose Identifier array contains a matching value. |
target.issuer | contains | Filter to Events that include a target whose Identifier array contains a matching issuer. |
context.user_agent | equals | Filter by context.user_agent. |
context.http_method | equals | Filter by context.http_method. |
context.http_status | equals | Filter by context.http_status. |
context.path | equals | Filter by context.path. |
context.ip | equals | Filter by context.ip. |
context.query | equals | Filter by context.query. |
data | contains | Filter to Events containing a fuzzy string match within their stored after payload (data is sugar for after). |
before | contains | Filter to Events containing a fuzzy string match within their before object. |
after | contains | Filter to Events containing a fuzzy string match within their after object. |
Sample Request
axios.get('https://ed.link/api/v2/audit/events/scope/acme-tenant-7f3a', {
headers: {
authorization: `Bearer ${application_secret_key}`
},
params: {
$filter: JSON.stringify({
action: [{ operator: 'equals', value: 'assignment.submit' }],
severity: [{ operator: 'equals', value: 'high' }],
'actor.value': [{ operator: 'contains', value: '00000000-0000-0000-0000-000000000000' }],
'actor.issuer': [{ operator: 'contains', value: 'edlink' }]
})
}
});
Sample Response
{
"$request": "00000000-0000-0000-0000-000000000000",
"$data": [
{
"id": "00000000-0000-0000-0000-000000000000",
"created_date": "2026-06-02T18:00:24.573Z",
"actor": {
"identifiers": [
{ "value": "00000000-0000-0000-0000-000000000000", "issuer": "edlink" },
{ "value": "acme_user_42", "issuer": "acme" }
],
"type": "person",
"details": {...}
},
"action": "assignment.submit",
"action_type": "create",
"severity": "medium",
"targets": [
{ "identifiers": [{ "value": "123", "issuer": "acme", "name": "Midterm Essay" }], "type": "assignment" },
{ "identifiers": [{ "value": "ABC", "issuer": "acme" }], "type": "class" }
],
"scope": "acme-tenant-7f3a",
"institution": "00000000-0000-0000-0000-000000000000",
"context": {
"user_agent": "Chrome/123"
},
"data": {}
}
]
}