Skip to main content

Webhooks

Service for configuring webhooks on different events

Quick Startโ€‹

# List available operations
epilot webhooks

# Call an operation
epilot webhooks getPublicKey -p orgId=123e4567-e89b-12d3-a456-426614174000

Common Flagsโ€‹

FlagDescription
-p key=valueSet a named parameter
-d '{...}'Request body JSON
-H 'Key: Value'Custom header
-t, --token <token>Bearer token for authentication
--profile <name>Use a named profile
-s, --server <url>Override server base URL
-i, --includeInclude response headers in output
--jsonOutput raw JSON (no formatting)
-v, --verboseVerbose output (show request details)
--jsonata <expr>JSONata expression to transform response
--definition <file>Override OpenAPI spec file/URL
--guidedPrompt for all parameters interactively
--no-interactiveDisable interactive prompts

Operationsโ€‹

webhooks

Events

getPublicKeyโ€‹

Returns the platform-level Ed25519 public key used to verify

GET /v1/webhooks/.well-known/public-key

Parameters

NameInTypeRequiredDescription
orgIdquerystringYesOrganization ID to retrieve the public key for.

Sample Call

epilot webhooks getPublicKey \
-p orgId=123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot webhooks getPublicKey -p orgId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'public_key'
Sample Response
{
"public_key": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA...\n-----END PUBLIC KEY-----\n",
"algorithm": "ed25519",
"issuer": "epilot"
}

getConfiguredEventsโ€‹

Retrieve events that can trigger webhooks

GET /v1/webhooks/configured-events

Sample Call

epilot webhooks getConfiguredEvents

With JSONata filter:

epilot webhooks getConfiguredEvents --jsonata '$'
Sample Response
[
{
"eventName": "customer_request_created",
"eventLabel": "Customer Request Created"
}
]

getConfigsโ€‹

Search Webhook Client Configs

GET /v1/webhooks/configs

Parameters

NameInTypeRequiredDescription
eventNamequerystringNoFilter configurations by event Name

Sample Call

epilot webhooks getConfigs

With JSONata filter:

epilot webhooks getConfigs --jsonata '$'
Sample Response
[
{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}
]

createConfigโ€‹

Create Webhook Client Config

POST /v1/webhooks/configs

Request Body (required)

Sample Call

epilot webhooks createConfig

With request body:

epilot webhooks createConfig \
-d '{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}'

Using stdin pipe:

cat body.json | epilot webhooks createConfig

With JSONata filter:

epilot webhooks createConfig --jsonata 'id'
Sample Response
{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}

getConfigโ€‹

Get webhook config by id

GET /v1/webhooks/configs/{configId}

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.

Sample Call

epilot webhooks getConfig \
-p configId=7hj28aasgag2gha2

Using positional args for path parameters:

epilot webhooks getConfig 7hj28aasgag2gha2

With JSONata filter:

epilot webhooks getConfig -p configId=7hj28aasgag2gha2 --jsonata 'id'
Sample Response
{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}

updateConfigโ€‹

Update Webhook Client Config

PUT /v1/webhooks/configs/{configId}

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid (length 6) to identify the webhook configuration.

Request Body (required)

Sample Call

epilot webhooks updateConfig \
-p configId=7hj28a

With request body:

epilot webhooks updateConfig \
-p configId=7hj28a \
-d '{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}'

Using positional args for path parameters:

epilot webhooks updateConfig 7hj28a

Using stdin pipe:

cat body.json | epilot webhooks updateConfig -p configId=7hj28a

With JSONata filter:

epilot webhooks updateConfig -p configId=7hj28a --jsonata 'id'
Sample Response
{
"eventName": "CustomerRequest_Created",
"url": "https://my-partner-service.api.com",
"httpMethod": "POST",
"enabled": true,
"auth": {
"authType": "BASIC",
"basicAuthConfig": {
"username": "secretUsername",
"password": "secret7825@!"
}
},
"filter": {
"keyToFilter": "customer_request.productId",
"supportedValues": ["2324245", "5253642"]
}
}

deleteConfigโ€‹

Delete Webhook Client Config

DELETE /v1/webhooks/configs/{configId}

Parameters

NameInTypeRequiredDescription
configIdpathstringYesId of the config to de deleted.

Sample Call

epilot webhooks deleteConfig \
-p configId=CustomerRequest

Using positional args for path parameters:

epilot webhooks deleteConfig CustomerRequest

With JSONata filter:

epilot webhooks deleteConfig -p configId=CustomerRequest --jsonata '$'

triggerWebhookโ€‹

Trigger a webhook

POST /v1/webhooks/configs/{configId}/trigger

Parameters

NameInTypeRequiredDescription
syncquerybooleanNoIf set to true, the webhook will be triggered synchronously. Otherwise, it will be triggered asynchronously.
configIdpathstringYesShort uuid to identify the webhook configuration.

Request Body (required)

Sample Call

epilot webhooks triggerWebhook \
-p configId=7hj28aasgag2gha2

With request body:

epilot webhooks triggerWebhook \
-p configId=7hj28aasgag2gha2 \
-d '{
"metadata": {
"action": "Manual triggered by user with id 123456",
"origin": "string",
"creation_timestamp": "string",
"webhook_id": "string",
"webhook_name": "string",
"automation_name": "string",
"organization_id": "string",
"user_id": "string",
"correlation_id": "string",
"execution_id": "string",
"action_id": "string"
}
}'

Using positional args for path parameters:

epilot webhooks triggerWebhook 7hj28aasgag2gha2

Using stdin pipe:

cat body.json | epilot webhooks triggerWebhook -p configId=7hj28aasgag2gha2

With JSONata filter:

epilot webhooks triggerWebhook -p configId=7hj28aasgag2gha2 --jsonata 'status_code'
Sample Response
{
"status_code": "string",
"message": "string",
"body": {},
"code": "string",
"status": "succeeded",
"start_date": "string",
"end_date": "string",
"event_id": "string"
}

batchReplayEventsโ€‹

Replay a batch of webhook events

POST /v1/webhooks/configs/{configId}/events/replay-batch

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.

Request Body (required)

Sample Call

epilot webhooks batchReplayEvents \
-p configId=7hj28aasgag2gha2 \
-d '{"eventIds":["2f1b7cf8-ff55-4359-966f-e56f39a52c94","48c984bf-466b-470b-b743-d07cea168243"]}'

Using positional args for path parameters:

epilot webhooks batchReplayEvents 7hj28aasgag2gha2

Using stdin pipe:

cat body.json | epilot webhooks batchReplayEvents -p configId=7hj28aasgag2gha2

With JSONata filter:

epilot webhooks batchReplayEvents -p configId=7hj28aasgag2gha2 --jsonata '$'

getEventByIdโ€‹

Get a webhook event by its id

GET /v1/webhooks/configs/{configId}/events/{eventId}

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.
eventIdpathstringYesEvent id

Sample Call

epilot webhooks getEventById \
-p configId=7hj28aasgag2gha2 \
-p eventId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot webhooks getEventById 7hj28aasgag2gha2 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot webhooks getEventById -p configId=7hj28aasgag2gha2 -p eventId=123e4567-e89b-12d3-a456-426614174000 --jsonata 'event_id'
Sample Response
{
"event_id": "string",
"org_id": "string",
"webhook_config_id": "string",
"url": "string",
"created_at": "2021-04-27T12:01:13.000Z",
"event_name": "string",
"http_response": {
"status_code": 0,
"message": "string",
"body": {},
"code": "string"
},
"metadata": {
"action": "Manual triggered by user with id 123456",
"origin": "string",
"creation_timestamp": "string",
"webhook_id": "string",
"webhook_name": "string",
"automation_name": "string",
"organization_id": "string",
"user_id": "string",
"correlation_id": "string",
"execution_id": "string",
"action_id": "string"
},
"status": "succeeded",
"http_method": "GET",
"payload": "string"
}

replayEventโ€‹

Replay a webhook event

POST /v1/webhooks/configs/{configId}/events/{eventId}/replay

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.
eventIdpathstringYesEvent id

Sample Call

epilot webhooks replayEvent \
-p configId=7hj28aasgag2gha2 \
-p eventId=123e4567-e89b-12d3-a456-426614174000

Using positional args for path parameters:

epilot webhooks replayEvent 7hj28aasgag2gha2 123e4567-e89b-12d3-a456-426614174000

With JSONata filter:

epilot webhooks replayEvent -p configId=7hj28aasgag2gha2 -p eventId=123e4567-e89b-12d3-a456-426614174000 --jsonata '$'

getWebhookExampleโ€‹

Generate an example payload for a webhook configuration based on trigger type

POST /v1/webhooks/configs/{configId}/example

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.

Request Body (required)

Sample Call

epilot webhooks getWebhookExample \
-p configId=7hj28aasgag2gha2 \
-d '{"automation_id":"automation_123"}'

Using positional args for path parameters:

epilot webhooks getWebhookExample 7hj28aasgag2gha2

Using stdin pipe:

cat body.json | epilot webhooks getWebhookExample -p configId=7hj28aasgag2gha2

With JSONata filter:

epilot webhooks getWebhookExample -p configId=7hj28aasgag2gha2 --jsonata 'entity._title'
Sample Response
{
"metadata": {
"action": "Manual triggered by user with id 123456",
"origin": "string",
"creation_timestamp": "string",
"webhook_id": "string",
"webhook_name": "string",
"automation_name": "string",
"organization_id": "string",
"user_id": "string",
"correlation_id": "string",
"execution_id": "string",
"action_id": "string"
},
"entity": {},
"relations": [
{}
]
}

getWebhookEventsV2โ€‹

List webhook events and filter them by status, timestamp, etc.

POST /v2/webhooks/configs/{configId}/events

Parameters

NameInTypeRequiredDescription
configIdpathstringYesShort uuid to identify the webhook configuration.

Request Body

Sample Call

epilot webhooks getWebhookEventsV2 \
-p configId=7hj28aasgag2gha2

With request body:

epilot webhooks getWebhookEventsV2 \
-p configId=7hj28aasgag2gha2 \
-d '{
"limit": 25,
"cursor": {
"created_at": "2025-10-31T12:34:56Z",
"event_id": "evt_1234567890abcdef"
},
"timestamp": {
"from": "2025-10-01T00:00:00Z",
"to": "2025-10-31T23:59:59Z"
},
"event_id": "evt_1234567890abcdef",
"status": "succeeded"
}'

Using positional args for path parameters:

epilot webhooks getWebhookEventsV2 7hj28aasgag2gha2

Using stdin pipe:

cat body.json | epilot webhooks getWebhookEventsV2 -p configId=7hj28aasgag2gha2

With JSONata filter:

epilot webhooks getWebhookEventsV2 -p configId=7hj28aasgag2gha2 --jsonata 'data'
Sample Response
{
"data": [
{
"event_id": "string",
"org_id": "string",
"webhook_config_id": "string",
"url": "string",
"created_at": "2021-04-27T12:01:13.000Z",
"event_name": "string",
"http_response": {
"status_code": 0,
"message": "string",
"body": {},
"code": "string"
},
"metadata": {
"action": "Manual triggered by user with id 123456",
"origin": "string",
"creation_timestamp": "string",
"webhook_id": "string",
"webhook_name": "string",
"automation_name": "string",
"organization_id": "string",
"user_id": "string",
"correlation_id": "string",
"execution_id": "string",
"action_id": "string"
},
"status": "succeeded",
"http_method": "GET",
"payload": "string"
}
],
"next_cursor": {
"created_at": "2025-10-31T12:34:56Z",
"event_id": "evt_1234567890abcdef"
},
"has_more": true
}