API Reference

Triggers

Copy page

Operations for managing triggers

List Triggers

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100

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/agents/agent_789/triggers"
{
  "data": [
    {
      "authentication": "string",
      "createdAt": "string",
      "description": "string",
      "enabled": true,
      "id": "string",
      "inputSchema": "string",
      "messageTemplate": "string",
      "name": "string",
      "outputTransform": "string",
      "signatureVerification": {
        "algorithm": "sha256",
        "componentJoin": {
          "separator": "string",
          "strategy": "concatenate"
        },
        "encoding": "hex",
        "signature": {
          "key": "string",
          "prefix": "string",
          "regex": "string",
          "source": "header"
        },
        "signedComponents": [
          {
            "key": "string",
            "regex": "string",
            "required": true,
            "source": "header",
            "value": "string"
          }
        ],
        "validation": {
          "allowEmptyBody": true,
          "headerCaseSensitive": false,
          "normalizeUnicode": false
        }
      },
      "signingSecretCredentialReferenceId": "string",
      "updatedAt": "string",
      "webhookUrl": "string"
    }
  ],
  "pagination": {
    "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 Trigger

POST
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

Request Body

application/json

authentication?
createdAt?string
description?string

Trigger description

enabled?boolean

Whether the trigger is enabled

Defaulttrue
id?string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
inputSchema?

JSON Schema for input validation

messageTemplate?string

Message template with {{placeholder}} syntax

Length1 <= length
name*string

Trigger name

Length1 <= length
outputTransform?
signatureVerification?

Configuration for webhook signature verification

signingSecretCredentialReferenceId?string

Reference to credential containing signing secret

updatedAt?string

Response 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/agents/agent_789/triggers" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "data": {
    "authentication": "string",
    "createdAt": "string",
    "description": "string",
    "enabled": true,
    "id": "string",
    "inputSchema": "string",
    "messageTemplate": "string",
    "name": "string",
    "outputTransform": "string",
    "signatureVerification": {
      "algorithm": "sha256",
      "componentJoin": {
        "separator": "string",
        "strategy": "concatenate"
      },
      "encoding": "hex",
      "signature": {
        "key": "string",
        "prefix": "string",
        "regex": "string",
        "source": "header"
      },
      "signedComponents": [
        {
          "key": "string",
          "regex": "string",
          "required": true,
          "source": "header",
          "value": "string"
        }
      ],
      "validation": {
        "allowEmptyBody": true,
        "headerCaseSensitive": false,
        "normalizeUnicode": false
      }
    },
    "signingSecretCredentialReferenceId": "string",
    "updatedAt": "string",
    "webhookUrl": "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 Trigger

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{id}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

id*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255

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/agents/agent_789/triggers/resource_789"
{
  "data": {
    "authentication": "string",
    "createdAt": "string",
    "description": "string",
    "enabled": true,
    "id": "string",
    "inputSchema": "string",
    "messageTemplate": "string",
    "name": "string",
    "outputTransform": "string",
    "signatureVerification": {
      "algorithm": "sha256",
      "componentJoin": {
        "separator": "string",
        "strategy": "concatenate"
      },
      "encoding": "hex",
      "signature": {
        "key": "string",
        "prefix": "string",
        "regex": "string",
        "source": "header"
      },
      "signedComponents": [
        {
          "key": "string",
          "regex": "string",
          "required": true,
          "source": "header",
          "value": "string"
        }
      ],
      "validation": {
        "allowEmptyBody": true,
        "headerCaseSensitive": false,
        "normalizeUnicode": false
      }
    },
    "signingSecretCredentialReferenceId": "string",
    "updatedAt": "string",
    "webhookUrl": "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 Trigger

PATCH
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{id}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

id*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255

Request Body

application/json

agentId?string
Lengthlength <= 256
authentication?
createdAt?string
description?string

Trigger description

enabled?boolean

Whether the trigger is enabled

id?string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
inputSchema?

JSON Schema for input validation

messageTemplate?string

Message template with {{placeholder}} syntax

Length1 <= length
name?string

Trigger name

Length1 <= length
outputTransform?
projectId?string
Lengthlength <= 256
signatureVerification?

Configuration for webhook signature verification

signingSecretCredentialReferenceId?string

Reference to credential containing signing secret

tenantId?string
Lengthlength <= 256
updatedAt?string

Response 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/agents/agent_789/triggers/resource_789" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "authentication": "string",
    "createdAt": "string",
    "description": "string",
    "enabled": true,
    "id": "string",
    "inputSchema": "string",
    "messageTemplate": "string",
    "name": "string",
    "outputTransform": "string",
    "signatureVerification": {
      "algorithm": "sha256",
      "componentJoin": {
        "separator": "string",
        "strategy": "concatenate"
      },
      "encoding": "hex",
      "signature": {
        "key": "string",
        "prefix": "string",
        "regex": "string",
        "source": "header"
      },
      "signedComponents": [
        {
          "key": "string",
          "regex": "string",
          "required": true,
          "source": "header",
          "value": "string"
        }
      ],
      "validation": {
        "allowEmptyBody": true,
        "headerCaseSensitive": false,
        "normalizeUnicode": false
      }
    },
    "signingSecretCredentialReferenceId": "string",
    "updatedAt": "string",
    "webhookUrl": "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 Trigger

DELETE
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{id}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

id*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255

Response 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/agents/agent_789/triggers/resource_789"
Empty
{
  "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"
  }
}

List Trigger Invocations

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{id}/invocations

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

id*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255

Query Parameters

page?number
Default1
Range1 <= value
limit?number
Default10
Range1 <= value <= 100
status?string

Filter by invocation status

Value in"pending" | "success" | "failed"
from?string

Start date for filtering (ISO8601)

Formatdate-time
to?string

End date for filtering (ISO8601)

Formatdate-time

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/agents/agent_789/triggers/resource_789/invocations"
{
  "data": [
    {
      "conversationId": "string",
      "createdAt": "string",
      "errorMessage": "string",
      "id": "string",
      "requestPayload": "string",
      "status": "string",
      "transformedPayload": "string",
      "triggerId": "string"
    }
  ],
  "pagination": {
    "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"
  }
}

Get Trigger Invocation

GET
/manage/tenants/{tenantId}/projects/{projectId}/agents/{agentId}/triggers/{id}/invocations/{invocationId}

Authorization

bearerAuth cookieAuth
AuthorizationBearer <token>

Bearer token authentication. Use this for API clients and service-to-service communication. Set the Authorization header to "Bearer ".

In: header

better-auth.session_token<token>

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

tenantId*string

Tenant identifier

projectId*string

Project identifier

agentId*string

Agent identifier

id*string

Resource identifier

Match^[a-zA-Z0-9\-_.]+$
Length1 <= length <= 255
invocationId*string

Trigger Invocation 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/agents/agent_789/triggers/resource_789/invocations/string"
{
  "data": {
    "conversationId": "string",
    "createdAt": "string",
    "errorMessage": "string",
    "id": "string",
    "requestPayload": "string",
    "status": "string",
    "transformedPayload": "string",
    "triggerId": "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"
  }
}