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 Workflows → Create (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, locations, and integrations) that matched the workflow conditions.

The payload is generated from Escape resource entities. Arrays at root are always present (possibly empty). Nested relation objects are present only when available.

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",
        "type": "REST",
        "class": "API_SERVICE",
        "uri": "asset://service/https://api.example.com",
        "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": {
            "id": "a10e8400-e29b-41d4-a716-446655440100",
            "operation": "POST",
            "name": "/users"
          }
        }
      ],
      "events": [],
      "scan": {
        "id": "990e8400-e29b-41d4-a716-446655440004",
        "status": "FINISHED",
        "kind": "ASM_REST",
        "createdAt": "2024-01-15T09:00:00.000Z",
        "applicationId": "aa0e8400-e29b-41d4-a716-446655440005"
      },
      "application": {
        "id": "aa0e8400-e29b-41d4-a716-446655440005",
        "name": "My Application",
        "scannerKind": "ASM_REST"
      }
    }
  ],
  "assets": [
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440006",
      "name": "https://app.example.com",
      "type": "WEBAPP",
      "class": "FRONTEND",
      "uri": "asset://frontend/https://app.example.com",
      "createdAt": "2024-01-15T08:00:00.000Z",
      "frontend": {
        "id": "cc0e8400-e29b-41d4-a716-446655440007",
        "type": "WEBAPP",
        "url": "https://app.example.com"
      },
      "scans": [],
      "events": []
    },
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440016",
      "name": "api.example.com",
      "type": "DNS",
      "class": "HOST",
      "uri": "asset://host/api.example.com",
      "createdAt": "2024-01-15T08:00:00.000Z",
      "host": {
        "id": "cc0e8400-e29b-41d4-a716-446655440017",
        "type": "DNS",
        "address": "api.example.com",
        "ips": [
          "192.0.2.1"
        ],
        "ports": [
          {
            "port": 443,
            "protocols": [
              "HTTPS"
            ]
          }
        ]
      },
      "scans": [],
      "events": []
    },
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440026",
      "name": "escape/product",
      "type": "GITHUB_REPOSITORY",
      "class": "REPOSITORY",
      "uri": "asset://repository/github.com/escape/product",
      "createdAt": "2024-01-15T08:00:00.000Z",
      "repository": {
        "id": "cc0e8400-e29b-41d4-a716-446655440027",
        "type": "GITHUB_REPOSITORY",
        "url": "https://github.com/escape/product",
        "visibility": "PRIVATE"
      },
      "scans": [],
      "events": []
    },
    {
      "id": "bb0e8400-e29b-41d4-a716-446655440036",
      "name": "OpenAPI schema",
      "type": "OPENAPI",
      "class": "SCHEMA",
      "uri": "asset://schema/openapi/https://api.example.com/openapi.json",
      "createdAt": "2024-01-15T08:00:00.000Z",
      "schema": {
        "id": "cc0e8400-e29b-41d4-a716-446655440037",
        "type": "OPENAPI",
        "key": "https://api.example.com/openapi.json",
        "s3Key": "schemas/aa/bb/openapi.json"
      },
      "scans": [],
      "events": []
    }
  ],
  "scans": [
    {
      "id": "dd0e8400-e29b-41d4-a716-446655440008",
      "status": "FINISHED",
      "kind": "ASM_REST",
      "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": "ASM_REST",
      "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": "PRIVATE",
      "target": "proxy.example.com",
      "ip": "192.0.2.1",
      "region": "us-east-1",
      "enabled": true,
      "createdAt": "2024-01-15T06:00:00.000Z"
    }
  ],
  "integrations": [
    {
      "id": "120e8400-e29b-41d4-a716-446655440012",
      "name": "GitHub Org Integration",
      "kind": "GITHUB_API_KEY",
      "valid": true,
      "createdAt": "2024-01-15T06:00:00.000Z",
      "updatedAt": "2024-01-15T06:00:00.000Z"
    }
  ]
}

Payload Structure

Fields marked optional may be absent or null depending on the resource and trigger context.

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.
integrations array<Integration> Array of integration objects that matched the workflow conditions. Empty array if no integration item is included.

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, ACCESS_CONTROL, SCHEMA)
status string (enum) Issue status: OPEN, RESOLVED, MANUAL_REVIEW, IGNORED, FALSE_POSITIVE
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., REST, WEBAPP, DNS, GITHUB_REPOSITORY, OPENAPI)
class string (enum) Asset class (e.g., API_SERVICE, FRONTEND, HOST, REPOSITORY, SCHEMA)
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> (optional) 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, FINISHED, 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: ESCAPE, 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

Integration Object

Field Type Description
id string (UUID) Unique identifier of the integration
name string Integration display name
kind string (enum) Integration kind (e.g., GITHUB_API_KEY, WEBHOOK)
valid boolean Whether the integration is currently considered valid
createdAt string (ISO 8601) Timestamp when the integration was created
updatedAt string (ISO 8601) Timestamp when the integration was last updated

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

AssetFrontend Object

Field Type Description
id string (UUID) Unique identifier of the frontend
type string (enum) Frontend type (currently WEBAPP)
url string Frontend URL
framework string (enum, optional) Frontend framework
authProtocol string (enum, optional) Authentication protocol
authTechnology string (enum, optional) Authentication technology
cloudProvider string (enum, optional) Cloud provider
environment string (enum, optional) Environment
ips array<string> Resolved IPs for the frontend
regionCountryCodes array<string> Country codes where the frontend is observed
tls boolean Whether TLS is enabled

AssetHost Object

Field Type Description
id string (UUID) Unique identifier of the host
type string (enum) Host type: DNS, IPV4, IPV6
address string Main host address
ips array<string> Resolved IP addresses
regionCountryCodes array<string> Country codes where the host is observed
ports array<AssetHostPort> Open ports and protocols
records array<AssetHostRecord> DNS records

AssetHostPort Object

Field Type Description
port number Network port
protocols array<string> Detected protocols (e.g., HTTP, HTTPS)

AssetHostRecord Object

Field Type Description
id string (UUID) Unique identifier of the DNS record
type string Record type (e.g., A, CNAME, MX)
value string Record value

AssetRepository Object

Field Type Description
id string (UUID) Unique identifier of the repository
type string (enum) Repository type: GITHUB_REPOSITORY, GITLAB_REPOSITORY, BITBUCKET_REPOSITORY
url string Repository URL
name string (optional) Repository name
visibility string (enum, optional) Visibility: PUBLIC, PRIVATE, INTERNAL
archived boolean (optional) Whether the repository is archived
lastCommitSha string (optional) Last commit SHA
lastCommitDate string (ISO 8601, optional) Last commit date

AssetSchema Object

Field Type Description
id string (UUID) Unique identifier of the schema
type string (enum) Schema type: OPENAPI, GRAPHQL_SCHEMA, POSTMAN_COLLECTION, etc.
key string Stable schema identifier (URL or generated key)
s3Key string Storage key for the schema artifact
source string (enum, optional) Schema source: UPLOADED, GENERATED, FOUND

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: DEBUG, INFO, WARNING, ERROR
stage string (enum) Event stage: CONFIGURATION, EXECUTION, AGENT_REASONING, AGENT_ACTION
createdAt string (ISO 8601) Timestamp when the event was created
attachments array<ResourceScanEventAttachment> Array of attachments (exchanges, snippets, screenshots, etc.)

Note

The example above is schema-consistent and uses current enum values. The webhook may include additional fields from Escape entities; consumers should ignore unknown fields for forward compatibility.