Skip to content
Cowliss is in beta: features and pricing may change.

Webhooks

Automations reference webhooks by name, so automation code never hardcodes a URL. A webhook carries its own signing secret, shown only at creation. Payloads follow the Standard Webhooks convention with the v: 1 version field and webhook-id, webhook-timestamp, and webhook-signature headers. A webhook with too many consecutive failures auto-disables until re-enabled. All mutations require org:admin.

Create a webhook

Auth: Session token.

Request body

{
"data": {
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
}
}
}
Field Type Required Constraints
data object yes
data.name string yes length 1–100
data.config object yes
data.config.url string (uri) yes

Response 201

{
"data": {
"id": "string",
"orgId": "string",
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
},
"webhookPayloadVersion": 42,
"disabledAt": "2026-01-15T09:30:00.000Z",
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"signingSecret": "string"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.name string yes
data.config object yes
data.config.url string (uri) yes
data.webhookPayloadVersion integer yes -2147483648 ≤ x ≤ 2147483647
data.disabledAt string (date-time) | null yes
data.createdAt string (date-time) yes
data.updatedAt string (date-time) yes
data.signingSecret string yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

List webhooks

Auth: Session token.

Query parameters

{
"cursor": "string",
"limit": 50,
"q": "string"
}
Field Type Required Constraints
cursor string no
limit integer no default 50; 1 ≤ x ≤ 100
q string no length 0–200

Response 200

{
"data": [
{
"id": "string",
"orgId": "string",
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
},
"webhookPayloadVersion": 42,
"disabledAt": "2026-01-15T09:30:00.000Z",
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
}
],
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object[] yes
data[] object yes
data[].id string yes
data[].orgId string yes
data[].name string yes
data[].config object yes
data[].config.url string (uri) yes
data[].webhookPayloadVersion integer yes -2147483648 ≤ x ≤ 2147483647
data[].disabledAt string (date-time) | null yes
data[].createdAt string (date-time) yes
data[].updatedAt string (date-time) yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

Fetch one webhook

Auth: Session token.

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
},
"webhookPayloadVersion": 42,
"disabledAt": "2026-01-15T09:30:00.000Z",
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.name string yes
data.config object yes
data.config.url string (uri) yes
data.webhookPayloadVersion integer yes -2147483648 ≤ x ≤ 2147483647
data.disabledAt string (date-time) | null yes
data.createdAt string (date-time) yes
data.updatedAt string (date-time) yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

Update a webhook

Setting enabled to true re-enables an auto-disabled webhook and resets its consecutive failure counter to zero. Setting enabled to false disables the webhook manually.

Auth: Session token.

Request body

{
"data": {
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
},
"enabled": true
}
}
Field Type Required Constraints
data object yes
data.name string no length 1–100
data.config object no
data.config.url string (uri) yes
data.enabled boolean no

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"name": "string",
"config": {
"url": "https://example.com/hooks/cowliss"
},
"webhookPayloadVersion": 42,
"disabledAt": "2026-01-15T09:30:00.000Z",
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.name string yes
data.config object yes
data.config.url string (uri) yes
data.webhookPayloadVersion integer yes -2147483648 ≤ x ≤ 2147483647
data.disabledAt string (date-time) | null yes
data.createdAt string (date-time) yes
data.updatedAt string (date-time) yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.

Delete a webhook

Auth: Session token.

Response 200

{
"data": {
"deleted": true
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true,
"warnings": [
{
"code": "string",
"message": "string",
"suggestion": "string"
}
]
}
}
Field Type Required Constraints
data object yes
data.deleted true yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no
meta.warnings object[] no
meta.warnings[] object no
meta.warnings[].code string yes
meta.warnings[].message string yes
meta.warnings[].suggestion string no

Errors follow the shared envelope and code table.