Skip to content

Webhook Notifications Integration

Webhook notifications allow you to export vulnerability data to your own systems and services. Data is sent as JSON payloads to your specified endpoint.

No Integration Setup Required

Unlike other integrations, webhook notifications don't require a separate integration configuration. You simply provide the webhook URL directly when configuring the workflow action.

Configuration

Webhook exports are configured as actions in workflows. When creating or editing a workflow:

  1. Go to WorkflowsCreate (or edit an existing workflow)
  2. In the Actions step, add an Export action
  3. Select Webhook as the integration type
  4. Enter your webhook URL where the data should be sent

webhook-form

Webhook Payload

When a workflow is triggered, Escape sends a POST request to your webhook URL with a JSON payload containing the resource data (issues, assets, scans, profiles, and locations) that matched the workflow conditions.

Example Payload

{
  "issues": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "SQL Injection",
      "fullName": "SQL Injection - Critical",
      "severity": "HIGH",
      "category": "INJECTION",
      "status": "OPEN",
      "createdAt": "2024-01-15T10:30:00.000Z",
      "context": "The application is vulnerable to SQL injection...",
      "alertUid": "alert-123",
      "securityTestUid": "test-456",
      "assetId": "660e8400-e29b-41d4-a716-446655440001",
      "asset": {
        "id": "660e8400-e29b-41d4-a716-446655440001",
        "name": "https://api.example.com/users",
        "type": "API_ROUTE",
        "class": "SERVICE",
        "uri": "https://api.example.com/users",
        "createdAt": "2024-01-15T08:00:00.000Z",
        "service": {
          "id": "770e8400-e29b-41d4-a716-446655440002",
          "url": "https://api.example.com",
          "type": "REST"
        },
        "tags": []
      },
      "targets": [
        {
          "id": "880e8400-e29b-41d4-a716-446655440003",
          "targetUid": "target-789",
          "scanId": "990e8400-e29b-41d4-a716-446655440004",
          "apiRoute": {
            "operation": "POST",
            "name": "/users"
          }
        }
      ],
      "events": [],
      "scan": {
        "id": "990e8400-e29b-41d4-a716-446655440004",
        "status": "COMPLETED",
        "kind": "FRONTEND_DAST",
        "createdAt": "2024-01-15T09:00:00.000Z",
        "applicationId": "aa0e8400-e29b-41d4-a716-446655440005"
      },
      "application": {
        "id": "aa0e8400-e29b-41d4-a716-446655440005",
        "name": "My Application",
        "scannerKind": "FRONTEND_DAST"
      }
    }
  ],
  "assets": [
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440006",
      "name": "https://api.example.com/users",
      "type": "API_ROUTE",
      "class": "SERVICE",
      "uri": "https://api.example.com/users",
      "createdAt": "2024-01-15T08:00:00.000Z",
      "service": {
        "id": "cc0e8400-e29b-41d4-a716-446655440007",
        "url": "https://api.example.com",
        "type": "REST"
      },
      "scans": [],
      "events": []
    }
  ],
  "scans": [
    {
      "id": "dd0e8400-e29b-41d4-a716-446655440008",
      "status": "COMPLETED",
      "kind": "FRONTEND_DAST",
      "createdAt": "2024-01-15T09:00:00.000Z",
      "updatedAt": "2024-01-15T10:00:00.000Z",
      "applicationId": "ee0e8400-e29b-41d4-a716-446655440009",
      "application": {
        "id": "ee0e8400-e29b-41d4-a716-446655440009",
        "name": "My Application"
      }
    }
  ],
  "profiles": [
    {
      "id": "ff0e8400-e29b-41d4-a716-446655440010",
      "name": "My Application",
      "scannerKind": "FRONTEND_DAST",
      "type": "REST",
      "createdAt": "2024-01-15T07:00:00.000Z",
      "updatedAt": "2024-01-15T07:00:00.000Z"
    }
  ],
  "locations": [
    {
      "id": "110e8400-e29b-41d4-a716-446655440011",
      "name": "US East",
      "type": "PUBLIC",
      "target": "proxy.example.com",
      "ip": "192.0.2.1",
      "region": "us-east-1",
      "enabled": true,
      "createdAt": "2024-01-15T06:00:00.000Z"
    }
  ]
}

Payload Structure

Root Object

Field Type Description
issues array<Issue> Array of issue objects that matched the workflow conditions. Empty array if no issues matched.
assets array<Asset> Array of asset objects that matched the workflow conditions. Empty array if no assets matched.
scans array<ResourceScan> Array of scan objects that matched the workflow conditions. Empty array if no scans matched.
profiles array<Application> Array of application/profile objects that matched the workflow conditions. Empty array if no profiles matched.
locations array<Proxy> Array of proxy/location objects that matched the workflow conditions. Empty array if no locations matched.

Issue Object

Field Type Description
id string (UUID) Unique identifier of the issue
name string Short name of the issue
fullName string Full name of the issue, including risk information
severity string (enum) Severity level: CRITICAL, HIGH, MEDIUM, LOW, INFO
category string (enum) Issue category (e.g., INJECTION, AUTHENTICATION, CRYPTOGRAPHY)
status string (enum) Issue status: OPEN, CLOSED, IGNORED
createdAt string (ISO 8601) Timestamp when the issue was created
context string Description and context of the issue
alertUid string Unique identifier for the alert
securityTestUid string Unique identifier for the security test
assetId string (UUID) ID of the asset associated with this issue
asset Asset (object) Complete asset object with nested relations (see Asset Object below)
targets array<ResourceScanTarget> Array of scan targets where this issue was found
events array<ResourceScanEvent> Array of events related to this issue
scan ResourceScan (object, optional) Scan object if the issue is associated with a specific scan
application Application (object, optional) Application object if the issue is associated with a scan

Asset Object

Field Type Description
id string (UUID) Unique identifier of the asset
name string Display name of the asset
type string (enum) Asset type (e.g., API_ROUTE, FRONTEND, SERVICE, HOST)
class string (enum) Asset class: SERVICE, FRONTEND, HOST, NETWORK, REPOSITORY
uri string Uniform Resource Identifier uniquely identifying the asset
createdAt string (ISO 8601) Timestamp when the asset was first discovered
service AssetService (object, optional) Service details if the asset is a service
frontend AssetFrontend (object, optional) Frontend details if the asset is a frontend
host AssetHost (object, optional) Host details if the asset is a host
repository AssetRepository (object, optional) Repository details if the asset is a repository
schema AssetSchema (object, optional) Schema associated with the asset
scans array<ResourceScan> Array of scans that discovered or updated this asset
events array<ResourceScanEvent> Array of events related to this asset
tags array<Tag> Array of tags associated with the asset

ResourceScan Object

Field Type Description
id string (UUID) Unique identifier of the scan
status string (enum) Scan status: STARTING, RUNNING, COMPLETED, FAILED, CANCELED
kind string (enum) Type of scan (e.g., FRONTEND_DAST, BLST_REST, ASM_REST)
createdAt string (ISO 8601) Timestamp when the scan was created
updatedAt string (ISO 8601) Timestamp when the scan was last updated
finishedAt string (ISO 8601, optional) Timestamp when the scan finished
progressRatio number Progress ratio from 0 to 1
applicationId string (UUID) ID of the application being scanned
application Application (object) Complete application object with nested relations

Application Object (Profile)

Field Type Description
id string (UUID) Unique identifier of the application
name string Name of the application
scannerKind string (enum) Type of scanner used (e.g., FRONTEND_DAST, BLST_REST)
type string (enum) API type: REST, GRAPHQL, GRPC
createdAt string (ISO 8601) Timestamp when the application was created
updatedAt string (ISO 8601) Timestamp when the application was last updated

Proxy Object (Location)

Field Type Description
id string (UUID) Unique identifier of the proxy/location
name string Display name of the location
type string (enum) Proxy type: PUBLIC, PRIVATE
target string Target URL or hostname of the proxy
ip string (optional) IP address of the proxy
region string (optional) Geographic region of the proxy
enabled boolean Whether the proxy is currently enabled
createdAt string (ISO 8601) Timestamp when the proxy was created

ResourceScanTarget Object

Field Type Description
id string (UUID) Unique identifier of the target
targetUid string Unique identifier used to deduplicate targets
scanId string (UUID, optional) ID of the scan that found this target
apiRoute ResourceScanTargetAPIRoute (object, optional) API route details if the target is an API route
codeFile ResourceScanTargetCodeFile (object, optional) Code file details if the target is a code file
graphqlResolver ResourceScanTargetGraphQLResolver (object, optional) GraphQL resolver details if the target is a GraphQL resolver
webPage ResourceScanTargetWebPage (object, optional) Web page details if the target is a web page
webCrawledUrl ResourceScanTargetWebCrawledUrl (object, optional) Web crawled URL details if the target is a crawled URL

AssetService Object

Field Type Description
id string (UUID) Unique identifier of the service
url string Base URL of the service
type string (enum) Service type: REST, GRAPHQL, GRPC, WEBSOCKET, MCP
framework string (enum, optional) Framework used by the service
authProtocol string (enum, optional) Authentication protocol used
authTechnology string (enum, optional) Authentication technology used
cloudProvider string (enum, optional) Cloud provider hosting the service
environment string (enum, optional) Environment: PRODUCTION, STAGING, DEVELOPMENT

ResourceScanTargetAPIRoute Object

Field Type Description
id string (UUID) Unique identifier of the API route
operation string (enum) HTTP method: GET, POST, PUT, DELETE, PATCH, etc.
name string Path or route name
parameters object (optional) JSON object containing parameter definitions
returnType string (optional) Return type of the route
coverage string (enum, optional) Coverage status of the route

ResourceScanTargetCodeFile Object

Field Type Description
id string (UUID) Unique identifier of the code file
language string Programming language of the file
path string File path relative to the repository root

ResourceScanTargetGraphQLResolver Object

Field Type Description
id string (UUID) Unique identifier of the GraphQL resolver
parent string Parent type name
name string Resolver name
parameters object (optional) JSON object containing parameter definitions
returnType string (optional) Return type of the resolver

ResourceScanTargetWebPage Object

Field Type Description
id string (UUID) Unique identifier of the web page
url string URL of the web page
visits number Number of times this page was visited during the scan

ResourceScanTargetWebCrawledUrl Object

Field Type Description
id string (UUID) Unique identifier of the crawled URL
url string URL that was crawled

ResourceScanEvent Object

Field Type Description
id string (UUID) Unique identifier of the event
title string Title of the event
description string Description of the event
level string (enum) Event level: INFO, WARNING, ERROR
stage string (enum) Event stage: EXECUTION, ANALYSIS, etc.
createdAt string (ISO 8601) Timestamp when the event was created
attachments array<ResourceScanEventAttachment> Array of attachments (exchanges, snippets, screenshots, etc.)

Note

The example above shows only the most commonly used fields for clarity. Additional fields may be present in the actual payload.