Webhooks
Copy page
Webhook endpoints
List Webhook Destinations
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Query Parameters
11 <= value101 <= value <= 100Filter by agent ID
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations"{
"data": [
{
"agentIds": [
"string"
],
"createdAt": "string",
"description": "string",
"enabled": true,
"evaluatorIds": [
"string"
],
"eventTypes": [
"conversation.created"
],
"headers": {
"property1": "string",
"property2": "string"
},
"id": "string",
"name": "string",
"slackChannelId": "string",
"updatedAt": "string",
"url": "string"
}
],
"pagination": {
"completedCount": 0,
"limit": 10,
"page": 1,
"pages": 0,
"total": 0
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Create Webhook Destination
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Request Body
application/json
Agent IDs to scope this webhook to. Omit or empty for all agents.
Webhook destination description
Whether the webhook destination is enabled
trueEvaluator IDs to scope evaluation.failed events to. Omit or empty for all evaluators.
Event types to subscribe to
1 <= itemsCustom HTTP headers as key-value pairs. Keys must be valid RFC 7230 token characters (alphanumeric plus !#$%&'*+-.^_`|~), max 128 chars. Values: 1-1000 chars. Reserved names: Connection, Keep-Alive, TE, Trailer, Transfer-Encoding, Upgrade, Proxy-Authorization, Proxy-Connection, Content-Length.
Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Webhook destination name
1 <= lengthSlack channel ID for bot-based delivery. Provide either slackChannelId or url, not both.
Destination URL to POST events to. Provide either url or slackChannelId, not both.
uriResponse Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations" \ -H "Content-Type: application/json" \ -d '{ "eventTypes": [ "conversation.created" ], "name": "string" }'{
"data": {
"agentIds": [
"string"
],
"createdAt": "string",
"description": "string",
"enabled": true,
"evaluatorIds": [
"string"
],
"eventTypes": [
"conversation.created"
],
"headers": {
"property1": "string",
"property2": "string"
},
"id": "string",
"name": "string",
"slackChannelId": "string",
"updatedAt": "string",
"url": "string"
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Get Webhook Destination
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations/resource_789"{
"data": {
"agentIds": [
"string"
],
"createdAt": "string",
"description": "string",
"enabled": true,
"evaluatorIds": [
"string"
],
"eventTypes": [
"conversation.created"
],
"headers": {
"property1": "string",
"property2": "string"
},
"id": "string",
"name": "string",
"slackChannelId": "string",
"updatedAt": "string",
"url": "string"
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Update Webhook Destination
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Request Body
application/json
Agent IDs to scope this webhook to. Empty array for all agents.
Webhook destination description
Whether the webhook destination is enabled
Evaluator IDs to scope evaluation.failed events to. Empty array for all evaluators.
Event types to subscribe to
1 <= itemsCustom HTTP headers as key-value pairs. Keys must be valid RFC 7230 token characters (alphanumeric plus !#$%&'*+-.^_`|~), max 128 chars. Values: 1-1000 chars. Reserved names: Connection, Keep-Alive, TE, Trailer, Transfer-Encoding, Upgrade, Proxy-Authorization, Proxy-Connection, Content-Length.
Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Webhook destination name
1 <= lengthSlack channel ID for bot-based delivery. Provide either slackChannelId or url, not both.
Destination URL to POST events to. Provide either url or slackChannelId, not both.
uriResponse Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X PATCH "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations/resource_789" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"agentIds": [
"string"
],
"createdAt": "string",
"description": "string",
"enabled": true,
"evaluatorIds": [
"string"
],
"eventTypes": [
"conversation.created"
],
"headers": {
"property1": "string",
"property2": "string"
},
"id": "string",
"name": "string",
"slackChannelId": "string",
"updatedAt": "string",
"url": "string"
}
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Delete Webhook Destination
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Response Body
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X DELETE "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations/resource_789"{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Test Webhook Destination
Authorization
bearerAuth cookieAuth Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".
In: header
Session-based authentication using HTTP-only cookies. Cookies are automatically sent by browsers. For server-side requests, include cookies with names starting with "better-auth." in the Cookie header.
In: cookie
Path Parameters
Tenant identifier
Project identifier
^[a-z0-9]([a-z0-9-]*[a-z0-9])?$1 <= length <= 255Resource identifier
^[a-zA-Z0-9\-_.]+$1 <= length <= 255Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://api.pilot.inkeep.com/manage/tenants/tenant_123/projects/project-456/webhook-destinations/resource_789/test"{
"error": "string",
"statusCode": 0,
"success": true
}{
"code": "bad_request",
"detail": "Bad Request",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 400,
"title": "Bad Request",
"error": {
"code": "bad_request",
"message": "Bad Request"
}
}{
"code": "unauthorized",
"detail": "Unauthorized",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 401,
"title": "Unauthorized",
"error": {
"code": "unauthorized",
"message": "Unauthorized"
}
}{
"code": "forbidden",
"detail": "Forbidden",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 403,
"title": "Forbidden",
"error": {
"code": "forbidden",
"message": "Forbidden"
}
}{
"code": "not_found",
"detail": "Not Found",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 404,
"title": "Not Found",
"error": {
"code": "not_found",
"message": "Not Found"
}
}{
"code": "unprocessable_entity",
"detail": "Unprocessable Entity",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 422,
"title": "Unprocessable Entity",
"error": {
"code": "unprocessable_entity",
"message": "Unprocessable Entity"
}
}{
"code": "internal_server_error",
"detail": "Internal Server Error",
"instance": "/conversations/123",
"requestId": "req_1234567890",
"status": 500,
"title": "Internal Server Error",
"error": {
"code": "internal_server_error",
"message": "Internal Server Error"
}
}Invoke agent via trigger webhook
Path Parameters
Tenant ID
Project ID
Agent ID
Trigger ID
Request Body
application/json
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.pilot.inkeep.com/run/tenants/string/projects/string/agents/string/triggers/string" \ -H "Content-Type: application/json" \ -d '{ "property1": null, "property2": null }'{
"invocations": [
{
"conversationId": "string",
"invocationId": "string",
"runAsUserId": "string"
}
],
"success": true
}{
"error": "string",
"validationErrors": [
"string"
]
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}{
"error": "string"
}