Page Integrity Manager API v1

Create, manage, and activate Page Integrity Manager configurations. Assign or delete event group actions.

Learn more:


Overview

Page Integrity Manager analyzes user interactions with your website to identify suspicious and malicious JavaScript behavior. It also identifies potential vulnerabilities, and any script activities that violate policies you define.

Create and manage Page Integrity Manager (PIM) configurations and specify the pages to monitor in order to focus detections. Take action against suspicious event groups that may potentially be a threat.

Get started

To configure this API for the first time:

  • Review Get Started with APIs for details on how to set up client tokens to access any Akamai API. These tokens appear as custom hostnames that look like this: https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net.

  • To enable this API, choose the API service named Page Integrity Manager API, and set the access level to READ-WRITE.

API concepts

To understand this API’s various URL resources and the data it exchanges, you need to familiarize yourself with these concepts:

  • Contracts and groups. Groups organize access to various Akamai products among members of your organization, and contracts make products available. To create a new Page Integrity configuration you need a contractId and groupId pair.

  • Configuration. A Page Integrity configuration specifies protections settings for your pages. A Page Integrity configuration includes first party domains, the addresses to send alert notifications, and advanced settings.

    After you create and activate a configuration, as the final step you need to inject Page Integrity JavaScript on your pages.

  • Configuration version. You can create and save many versions of a Page Integrity configuration. With versions you can modify or adjust the settings. To update a configuration which is active on staging or production, you need to clone a version and edit it. When it’s ready, activate and test the new version. As you refine and test your updates, you have an audit trail of changes and can rollback to prior versions.

  • Activation. After you create a Page Integrity configuration, you need to activate it. First, you activate it on the staging network, which takes a bit longer because Page Integrity bundles the new Page Integrity JavaScript file and uploads it. After staging is complete, activate the configuration on production.

  • First-party domains. The domains that you control and where you want to use Page Integrity, like example.com. You need to enter them when you create a Page Integrity configuration.

  • Sensitive data paths. The URLs of pages where users enter confidential or sensitive data, like login credentials or payment information.

  • Sensitive data fields. The fields on a webpage form where users enter confidential or sensitive data. The fields fall into several categories, for example credit card number, username, phone number, social security number, or email.

  • Beacons. HTTP requests that transmit detection data for analysis.

  • Event group. A chain of suspicious behaviors that affect many users and may signify a serious threat. Colleagues you specify get email alerts when event groups to review occur. After you investigate an event group you can Create or update an action to be applied to it where you specify how you want to respond to an event group to mitigate the threat.

API workflow

Create a new configuration and activate the new configuration version.

  1. Run List contracts and groups and store a contractId and groupId values where you want to create the new configuration.

  2. Build a new PimConfig object.

  3. POST the object to /page-integrity/v1/pim-configs.

    The operation responds with a PimConfig object where you can find and a pimConfigId, store its value.

  4. Run List configuration versions and store a version.

  5. Make a POST request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/activate.

    The operation responds with a Version object.

  6. As the final step to set the protections you need to inject Page Integrity JavaScript on your pages.

    • For sites using Akamai CDN with other security products, like Web Application Protector or Kona Site Defender, go to Akamai Control Center and edit your Security Policy that covers the hostnames you want to protect, and set JavaScript injection (login required).

    • For sites not on Akamai Intelligent Platform, copy the javaScriptUrl, put it in a script tag <script src=“https://det.example.com/abcdefg.js”></script>. Edit the HTML source of each page you want to protect and insert the tag in the HTML <head> section before any other script. For more information, see Inject Page Integrity JavaScript (login required).

Create a new event group action.

  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. If the configuration version you want to update is active or deactivated on staging or production servers, create a new version. Make a POST request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/copy to get a Version object. Store pimConfigId and version values from this object for the next call.

  4. Run List event groups to get the details of event groups. Assess the threat and decide what action you need to take. Store an eventGroupId of the chosen event group.

  5. Run List event group actions to see what types of action, if any, were previously applied to the event group.

  6. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions/{eventGroupId} to get an EventGroupAction object.

  7. Build a new EventGroupAction object.

  8. Make a PUT request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions/{eventGroupId}.

    The operation responds with an EventGroupAction object.

  9. To activate your new configuration version make a POST request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/activate.

Resources

This section provides details on the API’s various operations.

API summary

Download the RAML descriptors for this API.

Operation Method Endpoint
List contracts and groups GET /page-integrity/v1/contract-groups
List configurations GET /page-integrity/v1/pim-configs
Create a configuration POST /page-integrity/v1/pim-configs{?contractId,groupId}
Get a configuration GET /page-integrity/v1/pim-configs/{pimConfigId}
Get a contract group GET /page-integrity/v1/pim-configs/{pimConfigId}/contract-group
List event groups GET /page-integrity/v1/pim-configs/{pimConfigId}/event-groups
Get an event group GET /page-integrity/v1/pim-configs/{pimConfigId}/event-groups/{eventGroupId}
Get activation history GET /page-integrity/v1/pim-configs/{pimConfigId}/activations
List configuration versions GET /page-integrity/v1/pim-configs/{pimConfigId}/versions
Get a configuration version GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}
Update a configuration version PUT /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}
Activate a configuration version POST /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/activate
Clone a configuration version POST /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/copy
List event group actions GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions
Get an event group action GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}
Create or update an event group action PUT /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}
Delete an event group action DELETE /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}

List contracts and groups

List the contracts and groups for your account which have Page Integrity included. The response is an array of ContractGroups objects. You need groupId and contractId to create a new Page Integrity configuration.

GET /page-integrity/v1/contract-groups

Status 200 application/json

Object type: ContractGroup

Download schema: contractGroups.json

Response body:

{
    "contractGroups": [
        {
            "contractId": "G-3A9VKGY",
            "groupId": 174133
        }
    ]
}

List configurations

List Page Integrity configurations available for your account.

GET /page-integrity/v1/pim-configs

Status 200 application/json

Object type: PimConfig

Download schema: pimConfigs.json

Response body:

{
    "pimConfigs": [
        {
            "pimConfigId": 3819,
            "pimConfigName": "Summary",
            "pimConfigDescription": "Summary pages PIM config",
            "javaScriptUrl": "dev.piecdn.com/6050d5c1cf85a600112cb54c.js",
            "lastCreatedVersion": 2,
            "lastCreatedVersionStatus": "ACTIVE",
            "currentStagingVersion": 2,
            "currentProductionVersion": 1
        },
        {
            "pimConfigId": 4334,
            "pimConfigName": "PaymentsGateway",
            "pimConfigDescription": "PIM config for checkout page",
            "javaScriptUrl": "dev.piecdn.com/6075fa81ca59830011676d3e.js",
            "lastCreatedVersion": 2,
            "lastCreatedVersionStatus": "INACTIVE",
            "currentStagingVersion": 1,
            "currentProductionVersion": 1
        },
        {
            "pimConfigId": 4335,
            "pimConfigName": "images",
            "pimConfigDescription": "Image pages",
            "javaScriptUrl": "dev.piecdn.com/60760db17aefc100129dfbd7.js",
            "lastCreatedVersion": 1,
            "lastCreatedVersionStatus": "INACTIVE",
            "currentStagingVersion": null,
            "currentProductionVersion": null
        },
        {
            "pimConfigId": 4514,
            "pimConfigName": "misc",
            "pimConfigDescription": "Miscellaneous pages",
            "javaScriptUrl": "dev.piecdn.com/60814f88472dc500110e5d59.js",
            "lastCreatedVersion": 1,
            "lastCreatedVersionStatus": "INACTIVE",
            "currentStagingVersion": null,
            "currentProductionVersion": null
        }
    ]
}

Create a configuration

Create a new Page Integrity configuration. Specify the configuration name, add a description and the domains that you control and where you want to use Page Integrity.

Note. When you specify a domain here, all its subdomains also become a part of your Page Integrity configuration. For example, the domain example.com covers sub.example.com or www2.example.com.

POST /page-integrity/v1/pim-configs{?contractId,groupId}

Sample: /page-integrity/v1/pim-configs?contractId=G–3A9VKGY&groupId=174133

Content-Type: application/json

Object type: PimConfig

Download schema: pimConfigRequest.json

Request body:

{
    "pimConfigName": "PaymentsGateway",
    "pimConfigDescription": "PIM config for checkout page",
    "firstPartyDomains": [
        "checkout.example.com"
    ]
}
Parameter Type Sample Description
Required query parameters
contractId String G-3A9VKGY A unique identifier for a contract you have on your account.
groupId Integer 174133 A unique identifier for a group your account is assigned to.

Status 201 application/json

Headers:

Location: /page-integrity/v1/pim-configs/4334

Object type: PimConfig

Download schema: pimConfig.json

Response body:

{
    "pimConfigId": 4334,
    "pimConfigName": "PaymentsGateway",
    "pimConfigDescription": "PIM config for checkout page",
    "javaScriptUrl": "dev.piecdn.com/6075fa81ca59830011676d3e.js",
    "lastCreatedVersion": 1,
    "lastCreatedVersionStatus": "INACTIVE",
    "currentStagingVersion": null,
    "currentProductionVersion": null
}
  1. Run List contracts and groups and store a contractId and groupId values where you want to create the new configuration.

  2. Build a new PimConfig object.

  3. POST the object to /page-integrity/v1/pim-configs.

The operation responds with a PimConfig object. The Location response header points to the newly created configuration version.

Get a configuration

Get details about a Page Integrity configuration, including name, description, its last version’s activation status, and the URL of the unique Page Integrity JavaScript that you need to inject on your web pages.

GET /page-integrity/v1/pim-configs/{pimConfigId}

Sample: /page-integrity/v1/pim-configs/4334

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.

Status 200 application/json

Object type: PimConfig

Download schema: pimConfig.json

Response body:

{
    "pimConfigId": 4334,
    "pimConfigName": "PaymentsGateway",
    "pimConfigDescription": "PIM config for checkout page",
    "javaScriptUrl": "dev.piecdn.com/6075fa81ca59830011676d3e.js",
    "lastCreatedVersion": 2,
    "lastCreatedVersionStatus": "INACTIVE",
    "currentStagingVersion": 1,
    "currentProductionVersion": 1
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}.

The operation responds with a PimConfig object.

Get a contract group

Get a groupId and contractId pair for a specific Page Integrity configuration.

GET /page-integrity/v1/pim-configs/{pimConfigId}/contract-group

Sample: /page-integrity/v1/pim-configs/4334/contract-group

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.

Status 200 application/json

Object type: ContractGroup

Download schema: contractGroup.json

Response body:

{
    "contractId": "G-3A9VKGY",
    "groupId": 174133
}

List event groups

List event groups for a Page Integrity configuration. See what potential threats Page Integrity identified and get the details of event groups including severity, users’ sessions, and sensitive field types affected by suspicious script behaviors.

GET /page-integrity/v1/pim-configs/{pimConfigId}/event-groups

Sample: /page-integrity/v1/pim-configs/4334/event-groups

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.

Status 200 application/json

Object type: EventGroup

Download schema: eventGroups.json

Response body:

{
    "eventGroups": [
        {
            "pimConfigId": 4334,
            "eventGroupId": "aeb68d30",
            "severity": "CRITICAL",
            "alertTime": null,
            "threatProbability": 94,
            "firstSeenTime": "2021-05-24T15:52:53.941Z",
            "lastSeenTime": "2021-05-24T15:52:53.941Z",
            "isTest": false,
            "affectedSessions": 1,
            "affectedSessionsPercent": 1,
            "monitoredSensitiveDataFieldTypes": [
                "CREDIT_CARD_CARD_HOLDER_NAME",
                "CREDIT_CARD_CVV",
                "PII_ADDRESS",
                "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
                "CREDENTIALS_USER_NAME",
                "PII_FIRST_NAME",
                "PII_ZIP_CODE",
                "PII_LAST_NAME",
                "CREDIT_CARD_CREDIT_CARD_NUMBER",
                "PII_ID_NUMBER"
            ],
            "reflectedSensitiveDataFieldTypes": [
                "CREDIT_CARD_CARD_HOLDER_NAME",
                "CREDIT_CARD_CVV",
                "PII_ADDRESS",
                "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
                "CREDENTIALS_USER_NAME",
                "PII_FIRST_NAME",
                "PII_ZIP_CODE",
                "PII_LAST_NAME",
                "CREDIT_CARD_CREDIT_CARD_NUMBER",
                "PII_ID_NUMBER"
            ],
            "suspiciousEventType": "KEYLOGGER",
            "sourceDomains": [
                {
                    "domain": "s3.amazonaws.com",
                    "reputation": 50
                }
            ],
            "destinationDomain": {
                "domain": "www.akamai-stats.com",
                "reputation": 83
            }
        },
        {
            "pimConfigId": 4334,
            "eventGroupId": "277e4e51",
            "severity": "INFO",
            "alertTime": null,
            "threatProbability": 24,
            "firstSeenTime": "2020-12-01T21:34:13.215Z",
            "lastSeenTime": "2020-12-01T21:34:13.215Z",
            "isTest": false,
            "affectedSessions": 1,
            "affectedSessionsPercent": 2,
            "monitoredSensitiveDataFieldTypes": [],
            "reflectedSensitiveDataFieldTypes": [],
            "suspiciousEventType": "LOW_REPUTATION_DOMAIN",
            "sourceDomains": [],
            "destinationDomain": {
                "domain": "www.vakamai-stats.com",
                "reputation": 94
            }
        },
        {
            "pimConfigId": 4334,
            "eventGroupId": "74e9631c",
            "severity": "INFO",
            "alertTime": null,
            "threatProbability": 22,
            "firstSeenTime": "2020-11-07T23:46:14.190Z",
            "lastSeenTime": "2021-03-13T01:18:42.699Z",
            "isTest": false,
            "affectedSessions": 17,
            "affectedSessionsPercent": 30,
            "monitoredSensitiveDataFieldTypes": [],
            "reflectedSensitiveDataFieldTypes": [],
            "suspiciousEventType": "LOW_REPUTATION_DOMAIN",
            "sourceDomains": [],
            "destinationDomain": {
                "domain": "www.akamai-stats.com",
                "reputation": 85
            }
        }
    ]
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/event-groups.

  3. The operation responds with an array of EventGroup objects.

Get an event group

Get the details of an event group including severity, event type, users’ sessions, and sensitive field types affected by suspicious script behaviors, the source domain of the script, and the domain it’s sending data to. This information helps you assess the situation and take an appropriate event group action.

GET /page-integrity/v1/pim-configs/{pimConfigId}/event-groups/{eventGroupId}

Sample: /page-integrity/v1/pim-configs/4334/event-groups/aeb68d30

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
eventGroupId String aeb68d30 Uniquely identifies an event group.

Status 200 application/json

Object type: EventGroup

Download schema: eventGroup.json

Response body:

{
    "pimConfigId": 4334,
    "eventGroupId": "aeb68d30",
    "severity": "CRITICAL",
    "alertTime": null,
    "threatProbability": 94,
    "firstSeenTime": "2021-05-24T15:52:53.941Z",
    "lastSeenTime": "2021-05-24T15:52:53.941Z",
    "isTest": false,
    "affectedSessions": 1,
    "affectedSessionsPercent": 1,
    "monitoredSensitiveDataFieldTypes": [
        "CREDIT_CARD_CARD_HOLDER_NAME",
        "CREDIT_CARD_CVV",
        "PII_ADDRESS",
        "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
        "CREDENTIALS_USER_NAME",
        "PII_FIRST_NAME",
        "PII_ZIP_CODE",
        "PII_LAST_NAME",
        "CREDIT_CARD_CREDIT_CARD_NUMBER",
        "PII_ID_NUMBER"
    ],
    "reflectedSensitiveDataFieldTypes": [
        "CREDIT_CARD_CARD_HOLDER_NAME",
        "CREDIT_CARD_CVV",
        "PII_ADDRESS",
        "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
        "CREDENTIALS_USER_NAME",
        "PII_FIRST_NAME",
        "PII_ZIP_CODE",
        "PII_LAST_NAME",
        "CREDIT_CARD_CREDIT_CARD_NUMBER",
        "PII_ID_NUMBER"
    ],
    "suspiciousEventType": "KEYLOGGER",
    "sourceDomains": [
        {
            "domain": "s3.amazonaws.com",
            "reputation": 50
        }
    ],
    "destinationDomain": {
        "domain": "www.akamai-stats.com",
        "reputation": 83
    }
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List event groups and store an eventGroupId

  3. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/event-groups/{eventGroupId}.

  4. The operation responds with an EventGroup object.

Get activation history

Get a history of activations for a Page Integrity configuration on the staging and production networks.

GET /page-integrity/v1/pim-configs/{pimConfigId}/activations

Sample: /page-integrity/v1/pim-configs/4334/activations

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.

Status 200 application/json

Object type: Activation

Download schema: pimConfigActivations.json

Response body:

{
    "pimConfigId": 4334,
    "activations": [
        {
            "version": 1,
            "user": "ccare2",
            "network": "PRODUCTION",
            "activationNotes": "Making initial version live",
            "activationTime": "2021-04-22T08:53:33.652Z"
        },
        {
            "version": 1,
            "user": "ccare2",
            "network": "STAGING",
            "activationNotes": "Staging initial version",
            "activationTime": "2021-04-22T08:53:24.482Z"
        }
    ]
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/activations.

The operation responds with an array of Activation objects.

List configuration versions

List versions of a Page Integrity configuration. You get details of each version.

GET /page-integrity/v1/pim-configs/{pimConfigId}/versions

Sample: /page-integrity/v1/pim-configs/4334/versions

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.

Status 200 application/json

Object type: Version

Download schema: pimConfigVersions.json

Response body:

{
    "pimConfigId": 4334,
    "versions": [
        {
            "pimConfigId": 4334,
            "version": 2,
            "versionNotes": "Onboard cart summary pages",
            "stagingStatus": "INACTIVE",
            "stagingActivationTime": null,
            "stagingDeactivationTime": null,
            "productionStatus": "INACTIVE",
            "productionActivationTime": null,
            "productionDeactivationTime": null,
            "clonedFromVersion": 1,
            "firstPartyDomains": [
                "checkout.example.com",
                "cart.example.com"
            ],
            "notificationEmailAddresses": null,
            "eventsPerHourAlertsThreshold": 100,
            "eventsPrevalenceAlertsThreshold": 1,
            "supportSinglePageApplication": false,
            "storeSessionIdInCookie": false,
            "sensitiveDataPaths": [
                "/finalize",
                "/purchases"
            ]
        },
        {
            "pimConfigId": 4334,
            "version": 1,
            "versionNotes": "Initial PIM config",
            "stagingStatus": "ACTIVE",
            "stagingActivationTime": "2021-04-22T08:53:24.000Z",
            "stagingDeactivationTime": null,
            "productionStatus": "ACTIVE",
            "productionActivationTime": "2021-04-22T08:53:33.000Z",
            "productionDeactivationTime": null,
            "clonedFromVersion": null,
            "firstPartyDomains": [
                "checkout.example.com"
            ],
            "notificationEmailAddresses": null,
            "eventsPerHourAlertsThreshold": 100,
            "eventsPrevalenceAlertsThreshold": 1,
            "supportSinglePageApplication": false,
            "storeSessionIdInCookie": false
        }
    ]
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/versions.

The operation responds with a list of Version objects.

Get a configuration version

Get details for a Page Integrity configuration version.

GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}

Sample: /page-integrity/v1/pim-configs/4334/versions/1

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.

Status 200 application/json

Object type: Version

Download schema: pimConfigVersion.json

Response body:

{
    "pimConfigId": 4334,
    "version": 1,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "ACTIVE",
    "stagingActivationTime": "2021-04-22T08:53:24.000Z",
    "stagingDeactivationTime": null,
    "productionStatus": "ACTIVE",
    "productionActivationTime": "2021-04-22T08:53:33.000Z",
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}.

The operation responds with a Version object.

Update a configuration version

Update details of a Page Integrity configuration version. Add or remove first party domains, the emails to send notifications to, or the URLs of pages where users enter confidential or sensitive data. You can only modify a configuration version that’s inactive. Set whether you use Page Integrity on a single page application or to store the session ID in a cookie. If a configuration version is active or deactivated on either staging or production, you need to first clone it and then edit.

PUT /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}

Sample: /page-integrity/v1/pim-configs/4334/versions/1

Content-Type: application/json

Object type: Version

Download schema: pimConfigVersion.json

Request body:

{
    "pimConfigId": 4334,
    "version": 1,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "ACTIVE",
    "stagingActivationTime": "2021-04-22T08:53:24.000Z",
    "stagingDeactivationTime": null,
    "productionStatus": "ACTIVE",
    "productionActivationTime": "2021-04-22T08:53:33.000Z",
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}
Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.

Status 200 application/json

Object type: Version

Download schema: pimConfigVersion.json

Response body:

{
    "pimConfigId": 4334,
    "version": 1,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "ACTIVE",
    "stagingActivationTime": "2021-04-22T08:53:24.000Z",
    "stagingDeactivationTime": null,
    "productionStatus": "ACTIVE",
    "productionActivationTime": "2021-04-22T08:53:33.000Z",
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Run Get a configuration version.

  4. Modify the Version object.

  5. PUT the object to /page-integrity/v1/pim-configs/{pimConfigId}/{version}.

The operation reflects back a modified Version object.

Activate a configuration version

Activate a Page Integrity configuration version for the staging or production network. Before activating it on production you need to activate it for staging first.

You can have up to five active Page Integrity configurations at the same time. If you need more, contact your account team.

Note, that when the configuration version is activated, you need to add the Page Integrity JavaScript tag to your pages.

POST /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/activate

Sample: /page-integrity/v1/pim-configs/4334/versions/1/activate

Content-Type: application/json

Object type: Activation

Download schema: pimConfigActivationRequest.json

Request body:

{
    "network": "PRODUCTION",
    "activationNotes": "Activate"
}
Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.

Status 200 application/json

Object type: Version

Download schema: pimConfigVersion.json

Response body:

{
    "pimConfigId": 4334,
    "version": 1,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "ACTIVE",
    "stagingActivationTime": "2021-04-22T08:53:24.000Z",
    "stagingDeactivationTime": null,
    "productionStatus": "ACTIVE",
    "productionActivationTime": "2021-04-22T08:53:33.000Z",
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Build a request body where you include network member with a value STAGING or PRODUCTION and activationNotes member to add information about this activation.

  4. Make a POST request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/activate.

The operation responds with a Version object.

Clone a configuration version

Create a new Page Integrity configuration version based on an existing one. Use this operation if a configuration version you want to modify has active or deactivated status on STAGING or PRODUCTION. You need to clone this version to update it.

POST /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/copy

Sample: /page-integrity/v1/pim-configs/4334/versions/1/copy

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.

Status 201 application/json

Headers:

Location: /page-integrity/v1/pim-configs/4334/versions/2

Object type: Version

Download schema: pimConfigVersion.json

Response body:

{
    "pimConfigId": 4334,
    "version": 2,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "INACTIVE",
    "stagingActivationTime": null,
    "stagingDeactivationTime": null,
    "productionStatus": "INACTIVE",
    "productionActivationTime": null,
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Make a POST request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/copy.

The operation responds with a Version object. The Location response header points to the newly created configuration version.

List event group actions

List all event group actions configured for a Page Integrity configuration version. When Page Integrity detects a chain of suspicious behaviors affecting many users, it generates an eventGroupId. The response shows what action was taken to mitigate the risk.

GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions

Sample: /page-integrity/v1/pim-configs/4334/versions/1/event-group-actions

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.

Status 200 application/json

Object type: EventGroupAction

Download schema: eventGroupActions.json

Response body:

{
    "eventGroupActions": [
        {
            "pimConfigId": 4334,
            "version": 1,
            "eventGroupId": "aeb68d30",
            "action": "MITIGATED_DENY_OUTBOUND_TRAFFIC"
        },
        {
            "pimConfigId": 4334,
            "version": 1,
            "eventGroupId": "277e4e51",
            "action": "MITIGATED_ELSEWHERE"
        },
        {
            "pimConfigId": 4334,
            "version": 1,
            "eventGroupId": "74e9631c",
            "action": "MITIGATED_DENY_ACCESS_TO_SENSITIVE_DATA"
        }
    ]
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions.

The operation responds with an array of EventGroupAction objects.

Get an event group action

Get the event group action configured for a specific event group within a Page Integrity configuration version.

GET /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}

Sample: /page-integrity/v1/pim-configs/4334/versions/1/event-group-actions/aeb68d30

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.
eventGroupId String aeb68d30 Uniquely identifies an event group.

Status 200 application/json

Object type: EventGroupAction

Download schema: eventGroupAction.json

Response body:

{
    "pimConfigId": 683,
    "version": 6,
    "eventGroupId": "aeb68d30",
    "action": "MITIGATED_DENY_OUTBOUND_TRAFFIC"
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Run List event group actions and store an eventGroupId.

  4. Make a GET request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions/{eventGroupId}.

The operation responds with an EventGroupAction object.

Create or update an event group action

Respond to an event group to mitigate the risk to your users. Update an event group action for a specific event group within a Page Integrity configuration version. After Page Integrity Manager creates an event group, users can set an event group action with this API.

Note. You can only modify a configuration version prior to activation. In other cases clone this version first and then edit it.

PUT /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}

Sample: /page-integrity/v1/pim-configs/4334/versions/1/event-group-actions/aeb68d30

Content-Type: application/json

Object type: EventGroupAction

Download schema: eventGroupAction.json

Request body:

{
    "pimConfigId": 683,
    "version": 6,
    "eventGroupId": "aeb68d30",
    "action": "MITIGATED_DENY_OUTBOUND_TRAFFIC"
}
Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.
eventGroupId String aeb68d30 Uniquely identifies an event group.

Status 200 application/json

Object type: EventGroupAction

Download schema: eventGroupAction.json

Response body:

{
    "pimConfigId": 683,
    "version": 6,
    "eventGroupId": "aeb68d30",
    "action": "MITIGATED_DENY_OUTBOUND_TRAFFIC"
}
  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Run List event groups and store an eventGroupId.

  4. Run Get an event group action.

  5. Modify the EventGroupAction object.

  6. PUT the object to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions/{eventGroupId}.

The operation reflects back a modified EventGroupAction object.

Delete an event group action

Cancel an event group action for a specific event group within a configuration version. Page Integrity stops performing this action.

DELETE /page-integrity/v1/pim-configs/{pimConfigId}/versions/{version}/event-group-actions/{eventGroupId}

Sample: /page-integrity/v1/pim-configs/4334/versions/1/event-group-actions/aeb68d30

Parameter Type Sample Description
URL path parameters
pimConfigId Integer 4334 A unique identifier of a Page Integrity configuration.
version Integer 1 Version number for a specific Page Integrity configuration.
eventGroupId String aeb68d30 Uniquely identifies an event group.

Status 204

  1. Run List configurations and store a pimConfigId of the configuration you want.

  2. Run List configuration versions and store a version.

  3. Run List event group actions and store an eventGroupId.

  4. Make a DELETE request to /page-integrity/v1/pim-configs/{pimConfigId}/{version}/event-group-actions/{eventGroupId}.

Data

This section provides details for each type of data object the Page Integrity Manager API exchanges.

Download the JSON schemas for this API.

This section’s data schema tables list membership requirements as follows:

Member is required in requests, or always present in responses, even if its value is empty or null.
Member is optional, and may be omitted in some cases.
Member is out of scope, and irrelevant to the specified interaction context. If you include the member in that context, it either triggers an error, or is ignored.

ContractGroup

Specifies contracts and groups associated with your account for which Page Integrity can be used.

Download schema: contractGroup.json

Sample GET response:

{
    "contractGroups": [
        {
            "contractId": "G-3A9VKGY",
            "groupId": 174133
        }
    ]
}

ContractGroup members

Member Type Required Description
ContractGroup: Specifies contracts and groups associated with your account for which Page Integrity can be used.
contractId String A unique identifier for a contract you have on your account.
groupId Integer A unique identifier for a group your account is assigned to.

PimConfig

A Page Integrity configuration that collects details of your script detection setup.

Download schema: pimConfig.json, pimConfigRequest.json

Sample GET response:

{
    "pimConfigId": 4334,
    "pimConfigName": "PaymentsGateway",
    "pimConfigDescription": "PIM config for checkout page",
    "javaScriptUrl": "dev.piecdn.com/6075fa81ca59830011676d3e.js",
    "lastCreatedVersion": 2,
    "lastCreatedVersionStatus": "INACTIVE",
    "currentStagingVersion": 1,
    "currentProductionVersion": 1
}

Sample POST request:

{
    "pimConfigName": "PaymentsGateway",
    "pimConfigDescription": "PIM config for checkout page",
    "firstPartyDomains": [
        "checkout.example.com"
    ]
}

PimConfig members

Member Type GET POST Description
PimConfig: A Page Integrity configuration that collects details of your script detection setup.
currentProductionVersion Integer Read-only. The version of the specific Page Integrity configuration active on production.
currentStagingVersion Integer Read-only. The version of the specific Page Integrity configuration active on staging.
firstPartyDomains Array The domains you own and where you use Page Integrity to monitor activity of the scripts.
javaScriptUrl String Read-only. The URL of a unique detection JavaScript file generated by Page Integrity Manager.
lastCreatedVersion Integer Read-only. The last created version of the specific Page Integrity configuration.
lastCreatedVersionStatus Enumeration Read-only. Status of a configuration on the staging or production networks. A configuration can be currently INACTIVE which means it has never been activated and can be modified. ACTIVE means it protects your sites. DEACTIVATED means it was active at one point but was later deactivated.
pimConfigDescription String, Null Additional information describing what the configuration protects.
pimConfigId Integer Read-only. A unique identifier of a Page Integrity configuration.
pimConfigName String The name of the Page Integrity configuration.

Version

Specifies details about a security configuration version, such as first party domains, production and staging status details, the emails to send notifications to, alert thresholds, and the URLs of pages where users enter confidential or sensitive data. You can also see whether Page Integrity runs in a single page application compatible mode or stores the session ID in a cookie.

Download schema: pimConfigVersion.json

Sample GET request:

{
    "pimConfigId": 4334,
    "version": 1,
    "versionNotes": "Initial PIM config",
    "stagingStatus": "ACTIVE",
    "stagingActivationTime": "2021-04-22T08:53:24.000Z",
    "stagingDeactivationTime": null,
    "productionStatus": "ACTIVE",
    "productionActivationTime": "2021-04-22T08:53:33.000Z",
    "productionDeactivationTime": null,
    "clonedFromVersion": null,
    "firstPartyDomains": [
        "checkout.example.com"
    ],
    "notificationEmailAddresses": null,
    "eventsPerHourAlertsThreshold": 100,
    "eventsPrevalenceAlertsThreshold": 1,
    "supportSinglePageApplication": false,
    "storeSessionIdInCookie": false
}

Version members

Member Type Required Description
Version: Specifies details about a security configuration version, such as first party domains, production and staging status details, the emails to send notifications to, alert thresholds, and the URLs of pages where users enter confidential or sensitive data. You can also see whether Page Integrity runs in a single page application compatible mode or stores the session ID in a cookie.
clonedFromVersion Integer, Null Read-only. The version from which you cloned this version. If the value is null the configuration version was not cloned.
eventsPerHourAlertsThreshold Integer Read-only. The number of beacons per hour that show the identical suspicious or malicious JavaScript behavior. When the threshold is reached, the alert triggers.
eventsPrevalenceAlertsThreshold Integer Read-only. The proportion of beacons that include an event to total beacons. When the threshold is reached, the alert triggers.
firstPartyDomains Array The domains you own and where you use Page Integrity.
notificationEmailAddresses Array, Null The email addresses to get a message when an event group occurs. You can leave this array empty if you don’t want to notify anybody.
pimConfigId Integer Read-only. A unique identifier of a Page Integrity configuration.
productionActivationTime String, Null Read-only. ISO 8601 timestamp indicating when the configuration version was activated on production. If the value is null the configuration version was never activated.
productionDeactivationTime String, Null Read-only. ISO 8601 timestamp indicating when the configuration version was deactivated on production. If the value is null the configuration version was never deactivated.
productionStatus Enumeration Read-only. Status of a configuration on the staging or production networks. A configuration can be currently INACTIVE which means it has never been activated and can be modified. ACTIVE means it protects your sites. DEACTIVATED means it was active at one point but was later deactivated.
sensitiveDataPaths Array The URLs of pages where users enter confidential or sensitive data, like login credentials or payment information.
stagingActivationTime String, Null Read-only. ISO 8601 timestamp indicating when the configuration version was activated on staging. If the value is null the configuration version was never activated.
stagingDeactivationTime String, Null Read-only. ISO 8601 timestamp indicating when the configuration version was deactivated on staging. If the value is null the configuration version was never deactivated.
stagingStatus Enumeration Read-only. Status of a configuration on the staging or production networks. A configuration can be currently INACTIVE which means it has never been activated and can be modified. ACTIVE means it protects your sites. DEACTIVATED means it was active at one point but was later deactivated.
storeSessionIdInCookie Boolean When enabled, it stores a PIM_SESSION_ID cookie in order to use it in an analytics tool.
supportSinglePageApplication Boolean Whether the Page Integrity JavaScript should run in a single-page application compatible mode. Enable if you have a single-page application (SPA) website, where new elements are dynamically generated with JavaScript, without loading entire new pages.
version Integer Read-only. Version number for a specific Page Integrity configuration.
versionNotes String, Null The notes entered for the version.

Activation

Activation settings for a configuration version.

Download schema: pimConfigActivations.json

Sample GET response:

{
    "pimConfigId": 4334,
    "activations": [
        {
            "version": 1,
            "user": "ccare2",
            "network": "PRODUCTION",
            "activationNotes": "Making initial version live",
            "activationTime": "2021-04-22T08:53:33.652Z"
        },
        {
            "version": 1,
            "user": "ccare2",
            "network": "STAGING",
            "activationNotes": "Staging initial version",
            "activationTime": "2021-04-22T08:53:24.482Z"
        }
    ]
}

Activation members

Member Type Required Description
Activation: Activation settings for a configuration version.
activations Activation.activations[] Specifies activation settings for a configuration version.
pimConfigId Integer A unique identifier of a Page Integrity configuration.
Activation.activations[]: Specifies activation settings for a configuration version.
activationNotes String, Null Any additional notes you enter to clarify the reason for the activation.
activationTime String ISO 8601 timestamp indicating when the activation was completed.
network Enumeration Shows the status of a configuration version on either the STAGING or PRODUCTION network.
user String The user who requested the activation.
version Integer Version number for a specific Page Integrity configuration that is activated.

EventGroup

Collects details of a chain of suspicious behaviors that affect many users and may signify a serious threat.

Download schema: eventGroup.json

Sample GET request:

{
    "pimConfigId": 4334,
    "eventGroupId": "aeb68d30",
    "severity": "CRITICAL",
    "alertTime": null,
    "threatProbability": 94,
    "firstSeenTime": "2021-05-24T15:52:53.941Z",
    "lastSeenTime": "2021-05-24T15:52:53.941Z",
    "isTest": false,
    "affectedSessions": 1,
    "affectedSessionsPercent": 1,
    "monitoredSensitiveDataFieldTypes": [
        "CREDIT_CARD_CARD_HOLDER_NAME",
        "CREDIT_CARD_CVV",
        "PII_ADDRESS",
        "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
        "CREDENTIALS_USER_NAME",
        "PII_FIRST_NAME",
        "PII_ZIP_CODE",
        "PII_LAST_NAME",
        "CREDIT_CARD_CREDIT_CARD_NUMBER",
        "PII_ID_NUMBER"
    ],
    "reflectedSensitiveDataFieldTypes": [
        "CREDIT_CARD_CARD_HOLDER_NAME",
        "CREDIT_CARD_CVV",
        "PII_ADDRESS",
        "CREDIT_CARD_EXPIRATION_MONTH_YEAR",
        "CREDENTIALS_USER_NAME",
        "PII_FIRST_NAME",
        "PII_ZIP_CODE",
        "PII_LAST_NAME",
        "CREDIT_CARD_CREDIT_CARD_NUMBER",
        "PII_ID_NUMBER"
    ],
    "suspiciousEventType": "KEYLOGGER",
    "sourceDomains": [
        {
            "domain": "s3.amazonaws.com",
            "reputation": 50
        }
    ],
    "destinationDomain": {
        "domain": "www.akamai-stats.com",
        "reputation": 83
    }
}

EventGroup members

Member Type Required Description
EventGroup: Collects details of a chain of suspicious behaviors that affect many users and may signify a serious threat.
affectedSessions Integer The number of user sessions where suspicious script activity was observed.
affectedSessionsPercent Integer The percentage of user sessions where suspicious script activity was observed calculated from the total number of user sessions on your websites.
alertTime String ISO 8601 timestamp indicating when an alert notification was last sent to notification email addresses.
destinationDomain EventGroup.destinationDomain The domain the script sends data to.
eventGroupId String Uniquely identifies an event group.
firstSeenTime String ISO 8601 timestamp indicating when the event group was first observed.
isTest Boolean Whether the event group is not a real threat but was simulated to test Page Integrity setup.
lastSeenTime String ISO 8601 timestamp indicating when the event group was last observed.
monitoredSensitiveDataFieldTypes Enumeration Categories of sensitive data fields. See monitoredSensitiveDataFieldTypes values for available values.
pimConfigId Integer A unique identifier of a Page Integrity configuration.
reflectedSensitiveDataFieldTypes Enumeration Categories of sensitive data fields. See monitoredSensitiveDataFieldTypes values for available values.
severity Enumeration A status of an event group or a potential threat that it poses. MONITORED means that Page Integrity collects data about the event group, CRITICAL signals a serious and immediate threat that should be mitigated at once, HIGH indicates a situation you probably want to investigate and address immediately, MEDIUM indicates a potentially serious threat worth investigating, LOW means there’s a minor issue that may require your attention, but shouldn’t be treated with priority, INFO indicates a chain of repeated behaviors that in most cases doesn’t signify a threat.
sourceDomains EventGroup.sourceDomains[] The domain the script sends data to.
suspiciousEventType String The category the threat belongs to, for example web skimming or customer hijacking.
threatProbability Integer A score indicating how serious the potential threat is. The higher the score, the more significant the threat.
EventGroup.destinationDomain: The domain the script sends data to.
domain String The domain name.
reputation Integer The score that shows whether a domain is trustworthy on a scale from 1 to 100. The higher the score, the better the reputation.
EventGroup.sourceDomains[]: The domain the script sends data to.
domain String The domain name.
reputation Integer The score that shows whether a domain is trustworthy on a scale from 1 to 100. The higher the score, the better the reputation.

monitoredSensitiveDataFieldTypes and reflectedSensitiveDataFieldTypes values

Each sensitive field you add to your Page Integrity configuration has its associated type and can have a subtype. Sensitive field types appear in the EventGroup object.

Type Description Subtype
CREDIT_CARD Credit card information. CREDIT_CARD_CREDIT_CARD_NUMBER
CREDIT_CARD_EXPIRATION_MONTH_YEAR
CREDIT_CARD_EXPIRATION_MONTH
CREDIT_CARD_EXPIRATION_YEAR
CREDIT_CARD_CVV
CREDIT_CARD_CARD_HOLDER_NAME
CREDENTIALS Login credentials that authenticate a user. CREDENTIALS_PASSWORD
CREDENTIALS_USER_NAME
PII Personally identifiable information. PII_FIRST_NAME
In these field types users enter data that can be potentially used to identify a particular person. PII_LAST_NAME
PII_MIDDLE_NAME
PII_FULL_NAME
PII_PHONE_NUMBER
PII_ID_NUMBER
PII_ADDRESS
PII_ZIP_CODE
PII_EMAIL
PII_PASSPORT
PII_BANK_ACCOUNT
PII_INTERNATIONAL_BANK_ACCOUNT_NUMBER
SSN Social Security Number
EMAIL The email address.
SENSITIVE_DATA Confidential information that shouldn’t be disclosed to outside parties.
OTHER Field types which don’t fall into any other category.

EventGroupAction

Information about actions set for event groups within a Page Integrity configuration.

Download schema: eventGroupAction.json

Sample PUT request:

{
    "pimConfigId": 683,
    "version": 6,
    "eventGroupId": "aeb68d30",
    "action": "MITIGATED_DENY_OUTBOUND_TRAFFIC"
}

EventGroupAction members

Member Type GET PUT Description
EventGroupAction: Information about actions set for event groups within a Page Integrity configuration.
action Enumeration The actions you can take to mitigate the risk suspicious scripts pose for your users. You can select one of these actions: MITIGATED_DENY_OUTBOUND_TRAFFIC means that Page Integrity stops sending data to the destination URL, MITIGATED_DENY_ACCESS_TO_SENSITIVE_DATA means that Page Integrity blocks the source domain’s access to confidential data like passwords or credit card numbers, MITIGATED_ELSEWHERE indicates that you contained the threat outside Page Integrity, for example in your script management software, IGNORED means that you confirm that the event group is not a threat.
eventGroupId String Uniquely identifies an event group.
pimConfigId Integer A unique identifier of a Page Integrity configuration.
version Integer Version number for a specific Page Integrity configuration.

Errors

This section provides details on the data object that reflects the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases.

Error responses

When the API encounters an issue, it responds with JSON objects that adhere to the HTTP Problem Details standard and include details useful for debugging.

This example shows that the request could not be authenticated:

{
    "error": "Unauthorized",
    "message": "You do not have the necessary access to perform this operation.",
    "path": "/page-integrity/v1/contract-groups",
    "status": 401,
    "timestamp": "2021-06-22T00:24:02.992+00:00"
}

HTTP status codes

The API returns these HTTP status codes for both success and failure scenarios:

Code Description
200 The operation succeeded.
201 Resource successfully created.
204 Successfully processed request.
400 Bad Request. This typically occurs due to a problem with the format of request data, such as an non-parsing or invalid body of data, or an invalid set of query parameters or values.
401 API authentication failure. See Get started for guidance on how to correctly set up your API hostname token.
403 No permission to access this resource. This most likely reflects a limitation on the identity of the Control Center user corresponding to the API client. See Get started to make sure you have permission to access all the functionality you need.
404 Resource not found. This typically occurs when a resource keyed by a URL path parameter no longer exists, or if the request URL is garbled in some other way.
409 Something in the request data indicates a conflict with the current state of the resource.
500 Internal server error.
503 Too many requests. Service is temporarily unavailable.