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
Parameters
Section titled “Parameters”Path
endpointIdCallbackEndpointIdRequiredOpaque 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-IDCorrelationIdOptional caller correlation identifier propagated to the response.
- Minimum length
1 - Maximum length
128 - Pattern
^[A-Za-z0-9][A-Za-z0-9._:/-]*$
Idempotency-KeystringRequiredOpaque retry key retained for the public idempotency window.
- Minimum length
1 - Maximum length
255 - Pattern
^[A-Za-z0-9][A-Za-z0-9._~:/+-]*$
If-MatchEntityTagRequiredStrong resource generation ETag from a prior read.
- Maximum length
130 - Pattern
^"[A-Za-z0-9][A-Za-z0-9._~:/+-]*"$
Request body
Section titled “Request body”Required
application/json
CallbackEndpointUpdateRequest- 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_-]*$
lifecyclestringOne of
"active""disabled"
urlstring- Format
uri - Maximum length
512
whooshbangobject2 properties
actorIdstring- Minimum length
1 - Maximum length
128
notifierIdstring- Minimum length
1 - Maximum length
128 - Pattern
^[^\u0000-\u001F\u007F]+$
whooshbangGroupobject1 property
notifierIdstringRequired- Minimum length
1 - Maximum length
128 - Pattern
^[^\u0000-\u001F\u007F]+$
Responses
Section titled “Responses”200Successful response
application/json
CallbackEndpointMetadata- 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_-]*$
isOrganizationDefaultbooleanRequiredkindstringOne of
"webhook""whooshbang_subscriber""whooshbang_group"
- Default
"webhook"
lifecyclestringRequiredOne of
"active""disabled"
projectIdstringRequired- Minimum length
1 - Maximum length
128 - Pattern
^[A-Za-z0-9][A-Za-z0-9_-]*$
secretobject4 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
whooshbangobject3 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]+$
whooshbangGroupobject2 properties
contractVersionstringRequired- Minimum length
1 - Maximum length
64
notifierIdstringRequired- Minimum length
1 - Maximum length
128 - Pattern
^[^\u0000-\u001F\u007F]+$
2 response headers
X-Correlation-IDCorrelationIdRequiredCorrelation identifier shared by related operations.
- Minimum length
1 - Maximum length
128 - Pattern
^[A-Za-z0-9][A-Za-z0-9._:/-]*$
X-Request-IDRequestIdRequiredRequest 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+json
ProblemDetails- 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
Part 2
instancestring- Minimum length
1 - Maximum length
512 - Pattern
^[^\s\u0000-\u001F\u007F]+$
limitobject7 properties
attemptedinteger- Minimum
0 - Maximum
9007199254740991
currentinteger- Minimum
0 - Maximum
9007199254740991
dimensionstringRequiredOne 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
planobject3 properties
idstringRequiredOne 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
remediationstringRequiredOne of
"upgrade_plan""reduce_usage""increase_interval""remove_feature""retry_after_refresh""contact_support""export_data"
serviceStatestringOne 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
Part 2
messagestringRequired- Minimum length
1 - Maximum length
512 - Pattern
^[^\u0000-\u001F\u007F]*$
retryablebooleanRequiredretryAfterSecondsinteger- 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]+$
Operation contract
Section titled “Operation contract”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" ]}