0

Update a webhook

by
Published Oct 17, 2025

Update the webhook with the provided ID.

Script render Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Render = {
3
	apiKey: string
4
}
5
/**
6
 * Update a webhook
7
 * Update the webhook with the provided ID.
8

9
 */
10
export async function main(
11
	auth: Render,
12
	webhookId: string,
13
	body: {
14
		name?: string
15
		url?: string
16
		enabled?: false | true
17
		eventFilter?:
18
			| 'autoscaling_config_changed'
19
			| 'autoscaling_ended'
20
			| 'autoscaling_started'
21
			| 'branch_deleted'
22
			| 'build_ended'
23
			| 'build_started'
24
			| 'commit_ignored'
25
			| 'cron_job_run_ended'
26
			| 'cron_job_run_started'
27
			| 'deploy_ended'
28
			| 'deploy_started'
29
			| 'disk_created'
30
			| 'disk_updated'
31
			| 'disk_deleted'
32
			| 'image_pull_failed'
33
			| 'instance_count_changed'
34
			| 'job_run_ended'
35
			| 'maintenance_mode_enabled'
36
			| 'maintenance_mode_uri_updated'
37
			| 'maintenance_ended'
38
			| 'maintenance_started'
39
			| 'pipeline_minutes_exhausted'
40
			| 'plan_changed'
41
			| 'pre_deploy_ended'
42
			| 'pre_deploy_started'
43
			| 'server_available'
44
			| 'server_failed'
45
			| 'server_hardware_failure'
46
			| 'server_restarted'
47
			| 'server_unhealthy'
48
			| 'service_resumed'
49
			| 'service_suspended'
50
			| 'zero_downtime_redeploy_ended'
51
			| 'zero_downtime_redeploy_started'
52
			| 'postgres_available'
53
			| 'postgres_backup_completed'
54
			| 'postgres_backup_failed'
55
			| 'postgres_backup_started'
56
			| 'postgres_cluster_leader_changed'
57
			| 'postgres_created'
58
			| 'postgres_disk_size_changed'
59
			| 'postgres_ha_status_changed'
60
			| 'postgres_restarted'
61
			| 'postgres_unavailable'
62
			| 'postgres_upgrade_failed'
63
			| 'postgres_upgrade_started'
64
			| 'postgres_upgrade_succeeded'
65
			| 'postgres_restore_failed'
66
			| 'postgres_restore_succeeded'
67
			| 'postgres_read_replicas_changed'
68
			| 'postgres_pitr_checkpoint_started'
69
			| 'postgres_pitr_checkpoint_failed'
70
			| 'postgres_pitr_checkpoint_completed'
71
			| 'postgres_read_replica_stale'
72
			| 'key_value_available'
73
			| 'key_value_config_restart'
74
			| 'key_value_unhealthy'[]
75
	}
76
) {
77
	const url = new URL(`https://api.render.com/v1/webhooks/${webhookId}`)
78

79
	const response = await fetch(url, {
80
		method: 'PATCH',
81
		headers: {
82
			'Content-Type': 'application/json',
83
			Authorization: 'Bearer ' + auth.apiKey
84
		},
85
		body: JSON.stringify(body)
86
	})
87
	if (!response.ok) {
88
		const text = await response.text()
89
		throw new Error(`${response.status} ${text}`)
90
	}
91
	return await response.json()
92
}
93