Skip to content

Update endpoint

PATCH/v1/callbacks/{endpointId}

Rename an alert destination, change where it points, or switch it off and on.

Authentication
SignalSitter API credential or Clerk session JWT · REST guide
Operation ID
updateCallbackEndpoint

Path

endpointIdCallbackEndpointIdRequired

Opaque callback endpoint identifier from a prior read.

  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9_-]*$

Headers

X-Correlation-IDCorrelationId

Optional caller correlation identifier propagated to the response.

  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]*$
Idempotency-KeystringRequired

Opaque retry key retained for the public idempotency window.

  • Minimum length 1
  • Maximum length 255
  • Pattern ^[A-Za-z0-9][A-Za-z0-9._~:/+-]*$
If-MatchEntityTagRequired

Strong resource generation ETag from a prior read.

  • Maximum length 130
  • Pattern ^"[A-Za-z0-9][A-Za-z0-9._~:/+-]*"$

Required

application/jsonCallbackEndpointUpdateRequest
  • An update changes at least one of alias, url, whooshbang, whooshbangGroup, or lifecycle, and never more than one destination at once.
  • A WhooshBang subscriber change states at least one of actorId or notifierId, and a WhooshBang group change states its notifierId.
  • Callback destinations must be public HTTPS URLs without credentials or fragments.
aliasstring
  • Minimum length 1
  • Maximum length 64
  • Pattern ^[A-Za-z0-9][A-Za-z0-9_-]*$
lifecyclestring
One of
  • "active"
  • "disabled"
urlstring
  • Format uri
  • Maximum length 512
whooshbangobject
2 properties
actorIdstring
  • Minimum length 1
  • Maximum length 128
notifierIdstring
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[^\u0000-\u001F\u007F]+$
whooshbangGroupobject
1 property
notifierIdstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[^\u0000-\u001F\u007F]+$
200Successful response
application/jsonCallbackEndpointMetadata
  • Exactly one destination is stated, and it is the one the kind names: a webhook endpoint states a URL and a signing secret, a WhooshBang subscriber endpoint states its subscriber, and a WhooshBang group endpoint states its group.
  • Lifecycle and disabledAt agree, and a disabled endpoint is never the organization default.
  • A rotation overlap names both the previous secret version and when it stops being accepted.
  • updatedAt never precedes createdAt.
aliasstringRequired
  • Minimum length 1
  • Maximum length 64
  • Pattern ^[A-Za-z0-9][A-Za-z0-9_-]*$
createdAtstringRequired
  • Format date-time
  • Pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
disabledAtstring
  • Format date-time
  • Pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
generationintegerRequired
  • Greater than 0
  • Maximum 9007199254740991
idstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9_-]*$
isOrganizationDefaultbooleanRequired
kindstring
One of
  • "webhook"
  • "whooshbang_subscriber"
  • "whooshbang_group"
  • Default "webhook"
lifecyclestringRequired
One of
  • "active"
  • "disabled"
projectIdstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9_-]*$
secretobject
4 properties
issuedAtstringRequired
  • Format date-time
  • Pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
overlapEndsAtstring
  • Format date-time
  • Pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
previousVersioninteger
  • Greater than 0
  • Maximum 65535
versionintegerRequired
  • Greater than 0
  • Maximum 65535
updatedAtstringRequired
  • Format date-time
  • Pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
urlstring
  • Format uri
  • Maximum length 512
whooshbangobject
3 properties
actorIdstringRequired
  • Minimum length 1
  • Maximum length 128
contractVersionstringRequired
  • Minimum length 1
  • Maximum length 64
notifierIdstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[^\u0000-\u001F\u007F]+$
whooshbangGroupobject
2 properties
contractVersionstringRequired
  • Minimum length 1
  • Maximum length 64
notifierIdstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[^\u0000-\u001F\u007F]+$
2 response headers
X-Correlation-IDCorrelationIdRequired

Correlation identifier shared by related operations.

  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]*$
X-Request-IDRequestIdRequired

Request identifier for this response.

  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]*$
Errors
  • 400Invalid request
  • 401Authentication required
  • 403Permission denied
  • 404Resource not found
  • 409Idempotency or concurrent mutation conflict
  • 412Entity tag precondition failed
  • 413Request payload too large
  • 415Unsupported request media type
  • 428Entity tag precondition required
  • 429Authentication rate limited
  • 500Internal server error
  • 503Service temporarily unavailable
Error bodyProblemDetails
application/problem+jsonProblemDetails
  • URI references must pass full URI-reference parsing, including percent escapes, authority brackets, and scheme syntax.
  • Documentation links must parse as credential-free HTTPS URLs or root-relative paths.
  • retryAfterSeconds is allowed only when retryable is true.
codestringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^signalsitter\.[a-z][a-z0-9]*(?:[._][a-z0-9]+)*$
correlationIdstringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]*$
detailstringRequired
  • Minimum length 1
  • Maximum length 1024
  • Pattern ^[^\u0000-\u001F\u007F]*$
fieldErrorsarray of object
  • Maximum items 32

Each item

3 properties
codestringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[a-z][a-z0-9_]*$
messagestringRequired
  • Minimum length 1
  • Maximum length 512
  • Pattern ^[^\u0000-\u001F\u007F]*$
pathstringRequired
  • Maximum length 256

All of

Part 1
  • Pattern ^[^\u0000-\u001F\u007F]*$
Part 2
  • Pattern ^(?:|(?:\/(?:[^~]|~[01])*)+)$
instancestring
  • Minimum length 1
  • Maximum length 512
  • Pattern ^[^\s\u0000-\u001F\u007F]+$
limitobject
7 properties
attemptedinteger
  • Minimum 0
  • Maximum 9007199254740991
currentinteger
  • Minimum 0
  • Maximum 9007199254740991
dimensionstringRequired
One of
  • "active_monitors"
  • "beat_cadence"
  • "minimum_interval_seconds"
  • "measurements_per_observation"
  • "stored_observations"
  • "observation_retention_seconds"
  • "callback_endpoints"
  • "detector_feature"
  • "api_requests_per_minute"
  • "mcp_requests_per_minute"
  • "service_state"
  • "entitlement_lease"
limitinteger
  • Minimum 0
  • Maximum 9007199254740991
planobject
3 properties
idstringRequired
One of
  • "free"
  • "builder"
  • "smart"
  • "scale"
namestringRequired
  • Minimum length 1
  • Maximum length 64
  • Pattern ^[^\p{Cc}\p{Cf}\p{Zl}\p{Zp}]+$
versionintegerRequired
  • Greater than 0
  • Maximum 9007199254740991
remediationstringRequired
One of
  • "upgrade_plan"
  • "reduce_usage"
  • "increase_interval"
  • "remove_feature"
  • "retry_after_refresh"
  • "contact_support"
  • "export_data"
serviceStatestring
One of
  • "active"
  • "payment_grace"
  • "abuse_suspended"
  • "canceled"
  • "deleting"
remediationarray of object
  • Maximum items 8

Each item

3 properties
codestringRequired
  • Minimum length 1
  • Maximum length 128
  • Pattern ^[a-z][a-z0-9_]*$
documentationstring
  • Minimum length 1
  • Maximum length 512

All of

Part 1
  • Pattern ^[^\s\u0000-\u001F\u007F]+$
Part 2
  • Pattern ^(?:\/(?!\/)|[Hh][Tt][Tt][Pp][Ss]:\/\/)
messagestringRequired
  • Minimum length 1
  • Maximum length 512
  • Pattern ^[^\u0000-\u001F\u007F]*$
retryablebooleanRequired
retryAfterSecondsinteger
  • Greater than 0
  • Maximum 86400
statusintegerRequired
  • Minimum 400
  • Maximum 599
titlestringRequired
  • Minimum length 1
  • Maximum length 160
  • Pattern ^[^\u0000-\u001F\u007F]*$
typestringRequired
  • Minimum length 1
  • Maximum length 512
  • Pattern ^[^\s\u0000-\u001F\u007F]+$

The operation exactly as it appears in the generated contract. References resolve within the OpenAPI document.

Show raw OpenAPI for updateCallbackEndpoint
{
"operationId": "updateCallbackEndpoint",
"parameters": [
{
"description": "Optional caller correlation identifier propagated to the response.",
"in": "header",
"name": "X-Correlation-ID",
"required": false,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
{
"description": "Opaque callback endpoint identifier from a prior read.",
"in": "path",
"name": "endpointId",
"required": true,
"schema": {
"$ref": "#/components/schemas/CallbackEndpointId"
}
},
{
"description": "Opaque retry key retained for the public idempotency window.",
"in": "header",
"name": "Idempotency-Key",
"required": true,
"schema": {
"maxLength": 255,
"minLength": 1,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._~:/+-]*$",
"type": "string"
}
},
{
"description": "Strong resource generation ETag from a prior read.",
"in": "header",
"name": "If-Match",
"required": true,
"schema": {
"$ref": "#/components/schemas/EntityTag"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallbackEndpointUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallbackEndpointMetadata"
}
}
},
"description": "Successful response",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"400": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Invalid request",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"401": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Authentication required",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"403": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Permission denied",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"404": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Resource not found",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"409": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Idempotency or concurrent mutation conflict",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"412": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Entity tag precondition failed",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"413": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Request payload too large",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"415": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Unsupported request media type",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"428": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Entity tag precondition required",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"429": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Authentication rate limited",
"headers": {
"Retry-After": {
"description": "Required retry delay in seconds.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RetryAfterHeader"
}
},
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"500": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Internal server error",
"headers": {
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
},
"503": {
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
},
"description": "Service temporarily unavailable",
"headers": {
"Retry-After": {
"description": "Required retry delay in seconds.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RetryAfterHeader"
}
},
"X-Correlation-ID": {
"description": "Correlation identifier shared by related operations.",
"required": true,
"schema": {
"$ref": "#/components/schemas/CorrelationId"
}
},
"X-Request-ID": {
"description": "Request identifier for this response.",
"required": true,
"schema": {
"$ref": "#/components/schemas/RequestId"
}
}
}
}
},
"security": [
{
"apiCredential": []
},
{
"clerkSession": []
}
],
"summary": "Update a callback endpoint's alias, destination, or lifecycle; setting lifecycle switches deliveries off and back on",
"tags": [
"Callback endpoints"
]
}