CentralCSP
APIAlerts

List alert deliveries

Lists the notifications sent for this website, newest first, with the number of attempts and the destination's response. Use it to find out why a notification did not arrive. All alert history is kept 90 days: a delivery older than that is deleted.

Requires the viewer role on the website and the alerting plan feature.

GET
/v1/workspaces/{workspaceId}/websites/{websiteId}/alerts/deliveries

Authorization

headerAuthorizationBearer <JWT>

An OpenID Connect access token from signing in to CentralCSP, acting as the signed-in user.

Path Parameters

workspaceId*string

The workspace's id.

websiteId*string

The website's id.

Query Parameters

cursor?string

The nextCursor of the previous page. Omit it to start from the beginning. A cursor encodes a position and is not meant to be built by hand.

limit*|

How many items to return, from 1 to 200.

Range1 <= value <= 200
Default50
eventId?string

Only the deliveries of this alert.

ruleId?string

Only deliveries produced by this rule.

eventType?AlertEventType

What to notify about.

  • csp-violation:new-type: a new CSP directive and blocked origin pair appears in the reports.
  • csp-hash:new-script-origin: a script loads from a new origin.
  • network-error:new-failing-origin: a new origin starts failing network requests.
  • coop:new-violation, coep:new-violation: a new COOP or COEP violation type appears.
  • permissions-policy:new-violation: a new Permissions Policy violation appears.
  • deprecation:new-api: a deprecated API is reported for the first time.
  • intervention:new-type: a browser intervention is reported for the first time.
  • connection-allowlist:new-blocked-origin: a new blocked connection origin appears.
  • compliance:new-script: a script never seen before runs on a payment page and no reviewer or inventory rule has justified it yet.
  • compliance:script-changed: a payment-page script serves different content and no reviewer or inventory rule has justified the new content yet.
  • csp-violation:spike, integrity-violation:spike, network-error:spike, crash:spike: an hour's report count reaches at least 50 and 3 times the hourly average of the previous 24 hours. Both thresholds are adjustable with config.
  • sbom:new-cve: a technology on the website gains a known vulnerability at or above the rule's minimum severity.
  • sbom:version-status: a technology is detected with, or moves to, one of the rule's statuses.
  • sbom:new-technology: the website starts loading a technology, or a version of one, it did not load before.
Value in"csp-violation:new-type""csp-violation:spike""csp-hash:new-script-origin""integrity-violation:spike""compliance:new-script""compliance:script-changed""network-error:new-failing-origin""network-error:spike""crash:spike""coop:new-violation""coep:new-violation""permissions-policy:new-violation""deprecation:new-api""intervention:new-type""connection-allowlist:new-blocked-origin""sbom:new-cve""sbom:version-status""sbom:new-technology"
channelId?string

Only deliveries to this channel.

status?AlertDeliveryStatus

pending is waiting to be sent or retried, delivered succeeded, failed stopped after the last attempt.

Value in"pending""delivered""failed"

Response Body

A page of alert deliveries.

application/json
  1. response
data*array<>

The alert deliveries on this page.

pagination*

Where this page sits in the full result set.

Example Request
curl -X GET 'https://api.centralcsp.com/v1/workspaces/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/websites/01936b7a-6f2e-7c31-9a4d-2f8e1c5b7d90/alerts/deliveries?limit=50'
Example Response
{  "data": [    {      "id": "string",      "eventId": "string",      "ruleId": "string",      "ruleName": "New third-party script",      "eventType": "csp-hash:new-script-origin",      "channelId": "string",      "channelType": "slack",      "channelName": "string",      "status": "pending",      "attempts": 0,      "responseStatus": 0,      "error": "string",      "createdAt": "2019-08-24T14:15:22Z",      "completedAt": "2019-08-24T14:15:22Z"    }  ],  "pagination": {    "nextCursor": "string",    "hasMore": true,    "total": 0  }}