curl -X PATCH "https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f" \
-H "x-api-key: ${DCYCLE_API_KEY}" \
-H "x-organization-id: ${DCYCLE_ORG_ID}" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'
import os
import requests
response = requests.patch(
"https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
headers={
"x-api-key": os.environ["DCYCLE_API_KEY"],
"x-organization-id": os.environ["DCYCLE_ORG_ID"],
},
json={
"enabled": True
},
timeout=30,
)
response.raise_for_status()
print(response.status_code, response.json())
const axios = require('axios');
const response = await axios.patch('https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f', {
"enabled": true
}, {
headers: {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
},
});
console.log(response.status, response.data);
{
"id": "5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
"url": "https://erp.example.com/dcycle/webhooks",
"description": "ERP integration",
"event_types": [
"ingest_job.finished"
],
"enabled": true,
"consecutive_failures": 0,
"disabled_reason": null,
"created_at": "2026-10-01T09:12:44.512031",
"updated_at": "2026-10-01T09:12:44.512031"
}
Update Webhook Endpoint
Change a webhook endpoint
PATCH
/
v2
/
webhook-endpoints
/
{endpoint_id}
curl -X PATCH "https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f" \
-H "x-api-key: ${DCYCLE_API_KEY}" \
-H "x-organization-id: ${DCYCLE_ORG_ID}" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'
import os
import requests
response = requests.patch(
"https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
headers={
"x-api-key": os.environ["DCYCLE_API_KEY"],
"x-organization-id": os.environ["DCYCLE_ORG_ID"],
},
json={
"enabled": True
},
timeout=30,
)
response.raise_for_status()
print(response.status_code, response.json())
const axios = require('axios');
const response = await axios.patch('https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f', {
"enabled": true
}, {
headers: {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
},
});
console.log(response.status, response.data);
{
"id": "5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
"url": "https://erp.example.com/dcycle/webhooks",
"description": "ERP integration",
"event_types": [
"ingest_job.finished"
],
"enabled": true,
"consecutive_failures": 0,
"disabled_reason": null,
"created_at": "2026-10-01T09:12:44.512031",
"updated_at": "2026-10-01T09:12:44.512031"
}
← Webhooks
Change the URL, events, description or
enabled. Omitted fields keep their value. Setting enabled: true also clears consecutive_failures and disabled_reason, so it is how you re-enable an endpoint Dcycle disabled.
Beta. Part of the webhooks API, currently in beta. The contract may still change before general availability.
curl -X PATCH "https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f" \
-H "x-api-key: ${DCYCLE_API_KEY}" \
-H "x-organization-id: ${DCYCLE_ORG_ID}" \
-H "Content-Type: application/json" \
-d '{
"enabled": true
}'
import os
import requests
response = requests.patch(
"https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
headers={
"x-api-key": os.environ["DCYCLE_API_KEY"],
"x-organization-id": os.environ["DCYCLE_ORG_ID"],
},
json={
"enabled": True
},
timeout=30,
)
response.raise_for_status()
print(response.status_code, response.json())
const axios = require('axios');
const response = await axios.patch('https://api.dcycle.io/v2/webhook-endpoints/5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f', {
"enabled": true
}, {
headers: {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
},
});
console.log(response.status, response.data);
{
"id": "5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6f",
"url": "https://erp.example.com/dcycle/webhooks",
"description": "ERP integration",
"event_types": [
"ingest_job.finished"
],
"enabled": true,
"consecutive_failures": 0,
"disabled_reason": null,
"created_at": "2026-10-01T09:12:44.512031",
"updated_at": "2026-10-01T09:12:44.512031"
}
Request
Headers
string
required
API key of an organization admin.Example:
sk_live_1234567890abcdefstring
required
The organization that owns the endpoints.Example:
a8315ef3-dd50-43f8-b7ce-d839e68d51fastring
required
Must be
application/jsonPath Parameters
uuid
required
The endpoint
id.Example: 5c9e2f14-8b7a-4d3e-9f60-1a2b3c4d5e6fBody Parameters
string
New HTTPS URL. Same rules as on creation.
array[string]
Replaces the subscription. Available values:
ingest_job.finished.string | null
null clears it.boolean
false stops deliveries; true re-enables and resets the failure count.Response
The updated endpoint (200 OK):
uuid
Endpoint id.
string
Where the events are sent.
string | null
Free text to recognize the endpoint.
array[string]
Subscribed events. Available values:
ingest_job.finished.boolean
Disabled endpoints receive nothing.
integer
Deliveries in a row that ended
failed. At 5 the endpoint is disabled.string | null
TOO_MANY_FAILURES when Dcycle disabled the endpoint; null otherwise.datetime
UTC.
datetime
UTC.
Common Errors
401 Unauthorized
Missing or invalid API key.403 Forbidden
ORG_ADMIN_REQUIRED: only organization admins can manage webhook endpoints. LOGGED_USER_NOT_MEMBER: the API key’s user is not a member of the organization.
404 Not Found
The endpoint does not exist or belongs to another organization. Both cases return the same response.422 Unprocessable Entity
The body is invalid, in the standard validation format. The URL must usehttps, point to a public host and carry no
credentials; event_types needs at least one subscribable event.
{
"detail": [
{ "loc": ["body", "url"], "msg": "Value error, The URL must point to a public host", "type": "value_error" }
]
}
Related Endpoints
Get Webhook Endpoint
Read it back
Rotate Webhook Secret
Replace the secret
Was this page helpful?