Venafi Webhooks API
The Webhooks API from Venafi — 2 operation(s) for webhooks.
The Webhooks API from Venafi — 2 operation(s) for webhooks.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/venafi-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Certificate Manager - SaaS Webhooks API
version: '1.0'
servers:
- description: US Region
url: https://api.venafi.cloud
- description: EU Region
url: https://api.eu.venafi.cloud
- description: AU Region
url: https://api.au.venafi.cloud
- description: UK Region
url: https://api.uk.venafi.cloud
- description: SG Region
url: https://api.sg.venafi.cloud
- description: CA Region
url: https://api.ca.venafi.cloud
tags:
- name: Webhooks
paths:
/v1/connectors/{id}:
put:
description: 'Can be used to update specific fields. Only fields specified in the request will be updated.
When the connector’s target is a webhook (`generic`, `slack`, or `teams`), updating the connector triggers the same outbound connectivity check as creation. The service performs a live POST request Certificate Manager - SaaS to the configured `connection.url`. If the endpoint is unreachable (for example, due to DNS failure, TLS handshake issues, or network/firewall restrictions), the update request fails with a descriptive error.'
operationId: connectors_update
parameters:
- description: Connector ID
in: path
name: id
required: true
schema:
description: Connector ID
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorsUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorsInformation'
description: Connector Updated
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Connector Not Found
'412':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
security:
- tppl-api-key: []
summary: Update Connector properties
tags:
- Webhooks
x-rbac:
cm-only: true
permissions:
access_type: write
description: Ability to update a connector
name: ngts.connector.update
roles:
- PKIAdmin
- PlatformAdmin
delete:
description: 'Delete a Connector.
Deleting a connector removes its configuration for delivering events to the target endpoint, but it does not modify any customer firewall allowlisting or network settings. If your webhook endpoint requires allowlisting Venafi Cloud NAT IP addresses, that configuration must be managed separately.'
operationId: connectors_delete
parameters:
- description: Connector ID
in: path
name: id
required: true
schema:
description: Connector ID
format: uuid
type: string
responses:
'204':
description: Connector Deleted
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Connector Not Found
'412':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
security:
- tppl-api-key: []
summary: Delete a Connector
tags:
- Webhooks
x-rbac:
cm-only: true
permissions:
access_type: write
description: Ability to delete a connector
name: ngts.connector.delete
roles:
- PKIAdmin
- PlatformAdmin
/v1/connectors:
get:
description: Retrieve a list of all Connectors for a company
operationId: connectors_getAll
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorsResponse'
description: Success
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
'412':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
security:
- tppl-api-key: []
summary: Retrieve all Connectors for a company
tags:
- Webhooks
x-rbac:
cm-only: true
permissions:
access_type: read
description: Ability to read all connectors
name: ngts.connector.get
roles:
- PKIAdmin
- PlatformAdmin
post:
description: Create a Connector for your company. When the connector’s target is a webhook (`generic`, `slack`, or `teams`), the service performs a live outbound POST request from Certificate Manager - SaaS to the specified `connection.url` during creation. This validates DNS resolution, TLS handshake, and network reachability. If the URL is unreachable (for example, blocked by firewall rules or incorrect DNS), the connector creation request fails with a timeout or connection error. This behavior is expected and prevents creating connectors that cannot receive webhook notifications.
operationId: connectors_create
requestBody:
content:
application/json:
examples:
simpleWebhook:
summary: Simple generic webhook connector
value:
name: simple-webhook
properties:
filter: '{}'
target:
connection: "{\n \"url\": \"https://example.com/webhook\",\n \"headers\": {\n \"Authorization\": \"Splunk 12345678-ABCD\"\n }\n}\n"
type: generic
schema:
$ref: '#/components/schemas/ConnectorsCreationRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorsInformation'
description: Connector Created
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse4'
description: Request Conditions Failed
security:
- tppl-api-key: []
summary: Create a Connector
tags:
- Webhooks
x-rbac:
cm-only: true
permissions:
access_type: write
description: Ability to create a connector
name: ngts.connector.create
roles:
- PKIAdmin
- PlatformAdmin
components:
schemas:
ConnectorsInformation:
properties:
id:
description: Unique identifier of the connector.
format: uuid
type: string
name:
description: Human-readable name of the connector.
type: string
properties:
$ref: '#/components/schemas/WebhookProperties'
status:
description: Current status of the connector (for example, enabled or disabled).
type: string
required:
- id
- name
- status
- properties
type: object
Target:
properties:
connection:
description: "JSON object that configures the webhook connection for this target.\nSupported fields:\n- `url` (string, required): HTTPS endpoint URL for the webhook.\n- `headers` (object, optional): Key/value pairs of HTTP headers. Only the `Authorization` header is honored by the webhook service; all other headers are ignored.\n- `secret` (string, optional): Shared secret used to generate an HMAC signature sent in the `VaaS-Signature` header.\nWebhook deliveries always use `Content-Type: application/json`. Custom `Content-Type` values are not supported.\nExample:\n ```json\n{\n\"url\": \"https://example.com/webhook\",\n\"headers\": {\n\"Authorization\": \"Splunk 12345678-ABCD\"\n},\n\"secret\": \"my-shared-secret\"\n }\n"
format: json
type: string
type:
description: 'The delivery mechanism for this connector. For webhook-based notifications, use:
- `generic` for a standard HTTPS webhook endpoint
- `slack` for a Slack webhook target
- `teams` for a Microsoft Teams webhook target
'
enum:
- generic
- slack
- teams
type: string
required:
- connection
- type
type: object
WebhookProperties:
description: "Connector properties for webhook-based notifications.\nWebhook notifications are delivered as HTTP POST requests with a JSON body structured as:\n```json\n{\n \"events\": [\n {\n \"eventName\": \"string\",\n \"eventType\": \"string\",\n \"message\": \"string\",\n \"criticality\": 0,\n \"createdAt\": \"2025-01-15T12:45:00Z\"\n }\n ]\n}\n```\nOnly one event is included per request. The webhook service sets `Content-Type: application/json`, `VaaS-Timestamp`, and, when a `secret` is configured in the connection, `VaaS-Signature`.\n"
properties:
filter:
$ref: '#/components/schemas/Filter1'
target:
$ref: '#/components/schemas/Target'
required:
- filter
- target
type: object
ErrorInformation3:
properties:
args:
items:
$ref: '#/components/schemas/AnyValue3'
type: array
code:
format: int32
type: integer
message:
type: string
type: object
ErrorResponse4:
properties:
errors:
items:
$ref: '#/components/schemas/ErrorInformation3'
type: array
type: object
Filter1:
format: json
type: string
ConnectorsCreationRequest:
properties:
name:
type: string
properties:
$ref: '#/components/schemas/WebhookProperties'
required:
- name
- properties
type: object
ConnectorsUpdateRequest:
properties:
properties:
$ref: '#/components/schemas/WebhookProperties'
required:
- properties
type: object
ConnectorsResponse:
properties:
connectors:
items:
$ref: '#/components/schemas/ConnectorsInformation'
type: array
required:
- connectors
type: object
AnyValue3:
description: Can be any value - string, number, boolean, array or object.
securitySchemes:
service-account:
in: header
name: service-account
type: apiKey
tppl-api-key:
in: header
name: tppl-api-key
type: apiKey
x-readme:
samples-languages:
- curl
- go
- java
- javascript
- node
- python