PATCH
/v1/organizations/{organizationId}/applications/{applicationId}/environments/{environmentKey}/webhook-endpoints/{endpointId}Update a signed webhook endpoint
Authentication
Request
| Name | In | Required | Description |
|---|---|---|---|
x-request-id | header | No | No description declared. |
organizationId | path | Yes | No description declared. |
applicationId | path | Yes | No description declared. |
environmentKey | path | Yes | No description declared. |
endpointId | path | Yes | No description declared. |
Origin | header | Yes | No description declared. |
x-vchat-csrf | header | Yes | No description declared. |
Request body Required
Request body.
{
"$ref": "#/components/schemas/UpdateWebhookEndpointRequestDto",
"properties": {
"destinationUrl": {
"maxLength": 2048,
"type": "string"
},
"eventTypes": {
"items": {
"enum": [
"chat.channel.created.v1",
"chat.channel.updated.v1",
"chat.channel_membership.added.v1",
"chat.channel_membership.reactivated.v1",
"chat.channel_membership.updated.v1",
"chat.channel_membership.removed.v1",
"chat.message.created.v1",
"chat.message.updated.v1",
"chat.message.deleted.v1",
"chat.message.reply_created.v1",
"chat.message.reply_updated.v1",
"chat.message.reply_deleted.v1",
"chat.message.reaction_added.v1",
"chat.message.reaction_removed.v1"
],
"type": "string"
},
"type": "array"
},
"expectedVersion": {
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"name": {
"maxLength": 80,
"minLength": 1,
"type": "string"
}
},
"required": [
"expectedVersion"
],
"type": "object"
}cURL template
Replace path placeholders, the credential, and request body with values valid for your exact scope.
curl --request PATCH \
+ --url 'https://api.example.com/v1/organizations/{organizationId}/applications/{applicationId}/environments/{environmentKey}/webhook-endpoints/{endpointId}' \
+ -H 'Authorization: Bearer <token>' \
+ -H 'Content-Type: application/json' \
+ --data '<request-body>'Responses
200
application/json
{
"$ref": "#/components/schemas/WebhookEndpointMutationResponseDto",
"properties": {
"data": {
"$ref": "#/components/schemas/WebhookEndpointMutationDataDto",
"properties": {
"changed": {
"type": "boolean"
},
"endpoint": {
"$ref": "#/components/schemas/WebhookEndpointDto"
}
},
"required": [
"endpoint",
"changed"
],
"type": "object"
},
"meta": {
"$ref": "#/components/schemas/WebhookResponseMetaDto",
"properties": {
"nextCursor": {
"type": "object"
},
"requestId": {
"type": "string"
}
},
"required": [
"requestId"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}400
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}401
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}403
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}404
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}409
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}422
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}429
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}503
application/json
{
"$ref": "#/components/schemas/PublicErrorResponseDto",
"properties": {
"error": {
"$ref": "#/components/schemas/PublicErrorBodyDto",
"properties": {
"code": {
"enum": [
"validation_failed",
"authentication_failed",
"authentication_required",
"reauthentication_required",
"permission_denied",
"resource_not_found",
"idempotency_conflict",
"target_account_unavailable",
"organization_owner_removal_conflict",
"organization_owner_role_conflict",
"organization_role_conflict",
"membership_conflict",
"invitation_conflict",
"invitation_expired",
"application_name_conflict",
"application_settings_version_conflict",
"environment_settings_version_conflict",
"app_user_version_conflict",
"channel_type_conflict",
"channel_type_version_conflict",
"channel_type_limit_reached",
"channel_conflict",
"channel_version_conflict",
"channel_membership_conflict",
"channel_membership_version_conflict",
"channel_membership_limit_reached",
"message_conflict",
"message_version_conflict",
"channel_read_state_conflict",
"thread_reply_limit_reached",
"message_reaction_type_not_allowed",
"message_reaction_limit_reached",
"thread_read_state_conflict",
"credential_limit_reached",
"credential_lifecycle_conflict",
"device_registration_conflict",
"device_registration_version_conflict",
"device_registration_limit_reached",
"attachment_upload_incomplete",
"attachment_not_ready",
"attachment_limit_reached",
"moderation_relationship_limit_reached",
"moderation_blocklist_limit_reached",
"moderation_case_resolution_conflict",
"message_moderation_rejected",
"retention_policy_version_conflict",
"data_job_not_cancelable",
"data_job_not_ready",
"data_job_limit_exceeded",
"webhook_endpoint_conflict",
"webhook_endpoint_version_conflict",
"webhook_endpoint_limit_reached",
"webhook_destination_rejected",
"webhook_secret_rotation_conflict",
"webhook_delivery_not_replayable",
"conflict",
"rate_limit_exceeded",
"internal_error",
"service_unavailable"
],
"example": "service_unavailable",
"type": "string"
},
"details": {
"$ref": "#/components/schemas/PublicErrorDetailsDto"
},
"message": {
"example": "The service is temporarily unavailable.",
"type": "string"
},
"requestId": {
"example": "req_01J00000000000000000000000",
"type": "string"
}
},
"required": [
"code",
"message",
"requestId",
"details"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}Contract source
This page is generated from artifacts/openapi/openapi.json. The dedicated endpoint folder documents authorization, validation, errors, consistency, idempotency, events, retries, and client reconciliation.