---
updatedAt: 2026-07-01T11:39:07.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/integrations/llms.txt
---

# Test Webhook Subscription

Tests a webhook subscription.


**Security:** Requires authentication using Access Tokens. You can authenticate using the following methods:
- Administrator Roles: Authenticate as admin, Project Admin, or user with the Platform Admin role.
- User with Manage Webhooks Role: Available from Artifactory version 7.137.0
- Scoped Token: Available from Artifactory version 7.135.0 using the `system:webhooks@<project_key>/<jfrog_url>:x` scope.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "JFrog Platform - Webhooks API",
    "description": "Webhook subscription management APIs for the JFrog Platform.\n\n**Authentication:** Access Tokens as bearer token in authorization header (Authorization: Bearer `<token>`)\n\n**Security:** Unless otherwise specified, all APIs require Platform Admin privileges.\n",
    "version": "1.0.0",
    "contact": {
      "name": "JFrog Support"
    }
  },
  "servers": [
    {
      "url": "https://{jfrog_url}"
    }
  ],
  "tags": [
    {
      "name": "Webhooks",
      "description": "Manage webhook subscriptions, testing, and troubleshooting on the JFrog Platform."
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/event/api/v1/subscriptions/test": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Test Webhook Subscription",
        "description": "Tests a webhook subscription.\n\n\n**Security:** Requires authentication using Access Tokens. You can authenticate using the following methods:\n- Administrator Roles: Authenticate as admin, Project Admin, or user with the Platform Admin role.\n- User with Manage Webhooks Role: Available from Artifactory version 7.137.0\n- Scoped Token: Available from Artifactory version 7.135.0 using the `system:webhooks@<project_key>/<jfrog_url>:x` scope.\n",
        "operationId": "testWebhookSubscription",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookSubscriptionCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Test successful"
          },
          "400": {
            "description": "Bad Request - Invalid input"
          },
          "401": {
            "description": "Bad Credentials - Invalid credentials"
          },
          "403": {
            "description": "Permission Denied - Insufficient permissions"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Access Token as bearer token"
      }
    },
    "schemas": {
      "HttpHeader": {
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "NamedSecretCreate": {
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$"
          },
          "value": {
            "type": "string",
            "format": "password"
          }
        }
      },
      "EventFilterCriteria": {
        "type": "object",
        "description": "Domain-specific filter shape.\n",
        "additionalProperties": true,
        "properties": {
          "anyLocal": {
            "type": "boolean"
          },
          "anyRemote": {
            "type": "boolean"
          },
          "anyFederated": {
            "type": "boolean"
          },
          "anyBuild": {
            "type": "boolean"
          },
          "anyReleaseBundle": {
            "type": "boolean"
          },
          "repoKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "selectedBuilds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "includePatterns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "excludePatterns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "registeredReleaseBundlesNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "selectedReleaseBundles": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "selectedEnvironments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "applicationKeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "stages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "EventFilter": {
        "type": "object",
        "required": [
          "domain",
          "event_types"
        ],
        "properties": {
          "domain": {
            "type": "string",
            "description": "Event domain id (e.g. artifact, build, release_bundle_v2_promotion)."
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            },
            "description": "Event type ids to subscribe to."
          },
          "criteria": {
            "$ref": "#/components/schemas/EventFilterCriteria"
          }
        }
      },
      "WebhookHandler": {
        "type": "object",
        "required": [
          "handler_type",
          "url"
        ],
        "properties": {
          "handler_type": {
            "type": "string",
            "enum": [
              "webhook"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "proxy": {
            "type": "string",
            "description": "Self-hosted proxy key (not a URL); omit on cloud."
          },
          "secret": {
            "type": "string",
            "format": "password",
            "description": "Optional signing secret (webhook handler only)."
          },
          "use_secret_for_signing": {
            "type": "boolean",
            "default": false
          },
          "custom_http_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HttpHeader"
            }
          }
        }
      },
      "CustomWebhookHandlerCreate": {
        "type": "object",
        "required": [
          "handler_type",
          "url"
        ],
        "properties": {
          "handler_type": {
            "type": "string",
            "enum": [
              "custom-webhook"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "proxy": {
            "type": "string",
            "description": "Self-hosted proxy key (not a URL); omit on cloud."
          },
          "method": {
            "type": "string",
            "enum": [
              "POST",
              "PUT",
              "GET",
              "PATCH",
              "DELETE"
            ],
            "default": "POST"
          },
          "payload": {
            "type": "string",
            "description": "JSON body template with Go {{.path}} placeholders."
          },
          "http_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HttpHeader"
            }
          },
          "secrets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedSecretCreate"
            }
          }
        }
      },
      "WebhookHandlerInputCreate": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/WebhookHandler"
          },
          {
            "$ref": "#/components/schemas/CustomWebhookHandlerCreate"
          }
        ],
        "discriminator": {
          "propertyName": "handler_type",
          "mapping": {
            "webhook": "#/components/schemas/WebhookHandler",
            "custom-webhook": "#/components/schemas/CustomWebhookHandlerCreate"
          }
        }
      },
      "WebhookSubscriptionCreate": {
        "type": "object",
        "required": [
          "key",
          "enabled",
          "event_filter",
          "handlers"
        ],
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 500,
            "pattern": "^[A-Za-z][A-Za-z0-9_\\-]+$"
          },
          "project_key": {
            "type": "string",
            "description": "Required when all chosen event types support project scope."
          },
          "description": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean",
            "default": false
          },
          "event_filter": {
            "$ref": "#/components/schemas/EventFilter"
          },
          "handlers": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/WebhookHandlerInputCreate"
            }
          },
          "debug": {
            "type": "boolean",
            "default": false
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": false
  }
}
```