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_type/:scope_id

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:

PropertyOperatorsDescription
idequalsFilter by Event ID.
actionequalsFilter by action identifier, e.g. assignment.submit.
actor.typeequalsFilter by actor.type. One of person, system, or external.
actor.valuecontainsFilter by a matching value in any Identifier within actor.identifiers.
actor.issuercontainsFilter by a matching issuer in any Identifier within actor.identifiers, e.g. edlink.
target.typecontainsFilter to Events that include a target with this type.
target.valuecontainsFilter to Events that include a target whose Identifier array contains a matching value.
target.issuercontainsFilter to Events that include a target whose Identifier array contains a matching issuer.
context.user_agentequalsFilter by context.user_agent.
context.http_methodequalsFilter by context.http_method.
context.http_statusequalsFilter by context.http_status.
context.pathequalsFilter by context.path.
context.ipequalsFilter by context.ip.
context.queryequalsFilter by context.query.
datacontainsFilter to Events containing a fuzzy string match within their data object.

Sample Request

axios.get('https://ed.link/api/v2/audit/events/00000000-0000-0000-0000-000000000000/integration', {
    headers: {
        authorization: `Bearer ${application_secret_key}`
    },
    params: {
        $filter: JSON.stringify({
            action: [{ operator: 'equals', value: 'assignment.submit' }],
            '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",
            "targets": [
                { "identifiers": [{ "value": "123", "issuer": "acme" }], "type": "assignment" },
                { "identifiers": [{ "value": "ABC", "issuer": "acme" }], "type": "class" }
            ],
            "scope": {
                "id": "00000000-0000-0000-0000-000000000000",
                "type": "integration"
            },
            "context": {
                "user_agent": "Chrome/123"
            },
            "data": {}
        }
    ]
}