Skip to content
API PlatformDevelopers
POST/v1/webhooks/endpoints/{endpoint_id}/disablebeta

Turn an endpoint off

Needs
Manage webhook endpoints (webhooks:write)
Plan
Any plan with API access
Limits
60 a minute per key
Dry run
Yes — every check runs with ?dry_run=true, nothing changes
Undo
Turn it on again (missed events can be replayed).

Pauses deliveries to one endpoint. Nothing is deleted. Events that happen while it is off are not delivered later.

Try it

Path

The endpoint id.

Test mode (dry run): nothing will change
Turns test mode off for this page only. It switches back when you leave the page.

Code and response

curl -X POST 'https://mcp.wa-api.cloud/v1/webhooks/endpoints/ep_01J8Z6Q4M9W2X7K3B5N1R0T8YA/disable?dry_run=true' \
  -H "Authorization: Bearer $API_KEY"

The code reads your key from $API_KEY.

Parameters

Parameters
FieldTypeWhat it is
endpoint_idrequiredstring · pathThe endpoint id.pattern ^ep_[0-9A-HJKMNP-TV-Z]{26}$Signed in? Pick one from your data with “My data”.

Headers

Headers
FieldTypeWhat it is
AuthorizationrequiredheaderBearer $API_KEY — your API key.
Api-VersionheaderThe API version to use, e.g. 2026-10-01. Default: the version your key is pinned to.one of: 2026-10-01 · pattern ^\d{4}-\d{2}-\d{2}$

Response 200

The endpoint.

Response fields
FieldTypeWhat it is
endpointrequiredobject
idrequiredstring
urlrequiredstring
descriptionrequiredstring or null
statusrequiredstringactive | disabled | paused
custom_headersrequiredobjectCustom header names; values masked to the last 4 characters.
consecutive_failuresrequirednumber
disabled_atrequiredstring or null
disabled_reasonrequiredstring or null
signing_secretrequiredstringAlways masked. The secret is shown once, on create or rotate.
payload_formatrequiredstring"data" = the event's data object as the body; "envelope" = {id, type, version, api_version, occurred_at, company_id, data}.one of: data, envelope
created_atrequiredstring or null
updated_atrequiredstring or null
subscriptionsobject or null
countrequirednumber
all_activerequiredboolean
event_typesrequiredarray of object
changedrequiredboolean
dry_runbooleantrue when this was a dry run: every check ran and nothing changed.

Errors

Errors are application/problem+json. Branch on code.

StatusCodeWhen
400invalid_input

A field is missing or has the wrong format. errors[] points at each field.

401unauthenticated

The Authorization header is missing, the key is unknown, expired or revoked.

403entitlement_required

The workspace's plan does not include API access (api_access).

403insufficient_scope

The key does not have the permission this operation needs.

404not_found

No endpoint with this id.

429rate_limited

The key or workspace went over its rate limit. Wait for Retry-After seconds.

503upstream_unavailable

A service behind the API is briefly unavailable. Safe to retry with backoff.

504timeout

The change did not finish in time. Retry with the same Idempotency-Key: it never runs twice.

Examples

Pause deliveries

Response 200

{
  "endpoint": {
    "id": "ep_01J8Z6Q4M9W2X7K3B5N1R0T8YA",
    "url": "https://hooks.example.com/incoming",
    "description": "Order system",
    "status": "disabled",
    "custom_headers": {
      "X-Hook-Token": "••••9f2a"
    },
    "payload_format": "envelope",
    "consecutive_failures": 0,
    "disabled_reason": null,
    "signing_secret": "whsec_••••••••",
    "created_at": "2026-09-10T12:00:00Z",
    "updated_at": "2026-09-10T12:00:00Z",
    "disabled_at": null
  },
  "changed": true
}

Operation path

The same operation is also at POST /v1/ops/webhooks_disable_endpoint, with every field in the JSON body.