# System History API

Fides monitors system changes and offers an API endpoint for accessing the system history. Additionally, a digest of changes made over a 24-hour period is provided, which can be accessed via a webhook.

### Reading from the history API [Permalink for this section](/content/docs/data-mapping/reference/system-history-api#reading-from-the-history-api/index.html)

To access the system history API, please use the following command:

```
GET /api/v1/plus/system/{fides_key}/history?size=10&page=1
```

The parameters are:

- `size` - specifies the number of records to return per call
- `page` - allows the retrieval of additional results.

Below is an example response illustrating a change to the system **name**. The record includes:

- `edited_by` - the user that made the change
- `system_id` - unique ID for the system
- `before` and `after` - records containing the entire state of the system before and after the change
- `created_at` indicating when this system history change was created

```
{
    "items": [
        {
            "edited_by": "[user]",
            "system_id": "[unique_id]",
            "before": {
                "dpo": "dpo@privacy.com",
                "meta": null,
                "name": "beginning_name",
                "tags": [],
                "fides_key": "[fides_key]",
                "vendor_id": "[gvl_vendor]",
                "legal_name": "[legal_name]",
                "description": "[description]",
                "registry_id": null,
                "system_type": "",
                "dpa_location": null,
                "dpa_progress": null,
                "fidesctl_meta": null,
                "legal_address": "[legal_address]",
                "privacy_policy": "[privacy_policy]",
                "responsibility": [],
                "uses_profiling": false,
                "joint_controller": null,
                "dataset_references": [],
                "reason_for_exemption": null,
                "joint_controller_info": "",
                "organization_fides_key": "default_organization",
                "data_security_practices": "",
                "processes_personal_data": true,
                "third_country_transfers": null,
                "administrating_department": "",
                "data_responsibility_title": null,
                "legal_basis_for_profiling": [],
                "legal_basis_for_transfers": "[legal_basis]",
                "does_international_transfers": true,
                "exempt_from_privacy_regulations": false,
                "data_protection_impact_assessment": null,
                "requires_data_protection_assessments": false
            },
            "after": {
                "dpo": "dpo@privacy.com",
                "meta": null,
                "name": "after_name",
                "tags": [],
                "fides_key": "[fides_key]",
                "vendor_id": "[gvl_vendor]",
                "legal_name": "[legal_name]",
                "description": "[description]",
                "registry_id": null,
                "system_type": "",
                "dpa_location": null,
                "dpa_progress": null,
                "fidesctl_meta": null,
                "legal_address": "[legal_address]",
                "privacy_policy": "[privacy_policy]",
                "responsibility": [],
                "uses_profiling": false,
                "joint_controller": null,
                "dataset_references": [],
                "reason_for_exemption": null,
                "joint_controller_info": "",
                "organization_fides_key": "default_organization",
                "data_security_practices": "",
                "processes_personal_data": true,
                "third_country_transfers": null,
                "administrating_department": "",
                "data_responsibility_title": null,
                "legal_basis_for_profiling": [],
                "legal_basis_for_transfers": "[legal_basis]",
                "does_international_transfers": true,
                "exempt_from_privacy_regulations": false,
                "data_protection_impact_assessment": null,
                "requires_data_protection_assessments": false
            },
            "created_at": "2023-09-13T20:08:43.434409+00:00"
        }
    ]
}
```

### Reading from the system change digest [Permalink for this section](/content/docs/data-mapping/reference/system-history-api#reading-from-the-system-change-digest/index.html)

Fides also offers a way subscribe to a digest of system changes by specifying an environment variable or enabling the digest using `fides.toml`.

Environment variable:

```
FIDESPLUS__JOBS__SYSTEM_CHANGE_WEBHOOK_URL="https://destination_url"
```

Configuration value in `fides.toml`:

```
[jobs]
system_change_webhook_url="https://destination_url"
```

The system change digest is generated daily at 6 a.m. EST and posted to the URL specified in `system_change_webhook_url`. The digest contains entries for each unique system that has been edited within the past 24 hours.

```
{
    "modified_systems": [
        {"fides_key": "system_a", "name": "System A"},
        {"fides_key": "system_b", "name": "System B"}
    ]
}
```

The `fides_key` and `name` can be used for reporting or for generating a link to the changed system.

To generate a link to the modified system, construct the following URL using the information from the digest payload: `https://{your_fides_domain}/systems/configure/{fides_key}`
