Software Secure Workload
Activity Configure

Secure Workload OpenAPIs Change Logs Search

Last updated: Jun 09, 2025

Search

This endpoint returns the list of change log items matching the specified criteria.

GET /openapi/v1/change_logs

Parameters: The request URL contains the following parameters

Name

Type

Description

root_app_scope_id

string

(optional) Required for root scope owners. Filter results by root scope.

association_name

string

(optional) Required for root scope owners. The item type to return. For example: “H4Users”

history_action

string

(optional) Change action. For example: “update”

details

string

(optional) Action details. For example: “soft-delete”

before_epoch

integer

(optional) Include results created before this unix timestamp.

after_epoch

integer

(optional) Include results created after this unix timestamp.

offset

integer

(optional) Number of results to skip.

limit

integer

(optional) Limit number of results, default 1000.

Response object: Returns a list of change log objects.

Response

The response is a JSON object in the body with the following properties.

Name

Type

Description

total_count

integer

Total number of items matching before applying offset or limit.

items

array of objects

List of results.

Sample python code

Fetch last 100 scope object changes within a given root scope within the last day.

root_app_scope_id = '5ce480db497d4f1ca1fc2b2b'
one_day_ago = int(time.time() - 24*60*60)
resp = restclient.get('/change_logs', params={'root_app_scope_id': root_app_scope_id,
                                               'association_name': 'AppScope',
                                               'after_epoch': one_day_ago,
                                               'limit': 100})

Fetch the second thousand scope object changes.

root_app_scope_id = '5ce480db497d4f1ca1fc2b2b'
resp = restclient.get('/change_logs', params={'root_app_scope_id': root_app_scope_id,
                                              'association_name': 'AppScope',
                                              'offset': 1000})

Further refine these results to only show new scope creations.

root_app_scope_id = '5ce480db497d4f1ca1fc2b2b'
one_day_ago = int(time.time() - 24 * 60 * 60)
resp = restclient.get('/change_logs', params={'root_app_scope_id': root_app_scope_id,
                                              'association_name': 'AppScope',
                                              'history_action': 'create',
                                              'after_epoch': one_day_ago,
                                              'limit': 100})

A site admin could use limit and offset to iteratively fetch all changes across all scopes.

resp = restclient.get('/change_logs', params={'offset': 100, 'limit': 100})