0

Update webhook

by
Published Oct 17, 2025

Updates a webhook.

Script box Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Box = {
3
  token: string;
4
};
5
/**
6
 * Update webhook
7
 * Updates a webhook.
8
 */
9
export async function main(
10
  auth: Box,
11
  webhook_id: string,
12
  body: {
13
    target?: { id?: string; type?: "file" | "folder" };
14
    address?: string;
15
    triggers?:
16
      | "FILE.UPLOADED"
17
      | "FILE.PREVIEWED"
18
      | "FILE.DOWNLOADED"
19
      | "FILE.TRASHED"
20
      | "FILE.DELETED"
21
      | "FILE.RESTORED"
22
      | "FILE.COPIED"
23
      | "FILE.MOVED"
24
      | "FILE.LOCKED"
25
      | "FILE.UNLOCKED"
26
      | "FILE.RENAMED"
27
      | "COMMENT.CREATED"
28
      | "COMMENT.UPDATED"
29
      | "COMMENT.DELETED"
30
      | "TASK_ASSIGNMENT.CREATED"
31
      | "TASK_ASSIGNMENT.UPDATED"
32
      | "METADATA_INSTANCE.CREATED"
33
      | "METADATA_INSTANCE.UPDATED"
34
      | "METADATA_INSTANCE.DELETED"
35
      | "FOLDER.CREATED"
36
      | "FOLDER.RENAMED"
37
      | "FOLDER.DOWNLOADED"
38
      | "FOLDER.RESTORED"
39
      | "FOLDER.DELETED"
40
      | "FOLDER.COPIED"
41
      | "FOLDER.MOVED"
42
      | "FOLDER.TRASHED"
43
      | "WEBHOOK.DELETED"
44
      | "COLLABORATION.CREATED"
45
      | "COLLABORATION.ACCEPTED"
46
      | "COLLABORATION.REJECTED"
47
      | "COLLABORATION.REMOVED"
48
      | "COLLABORATION.UPDATED"
49
      | "SHARED_LINK.DELETED"
50
      | "SHARED_LINK.CREATED"
51
      | "SHARED_LINK.UPDATED"
52
      | "SIGN_REQUEST.COMPLETED"
53
      | "SIGN_REQUEST.DECLINED"
54
      | "SIGN_REQUEST.EXPIRED"
55
      | "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED"[];
56
  },
57
) {
58
  const url = new URL(`https://api.box.com/2.0/webhooks/${webhook_id}`);
59

60
  const response = await fetch(url, {
61
    method: "PUT",
62
    headers: {
63
      "Content-Type": "application/json",
64
      Authorization: "Bearer " + auth.token,
65
    },
66
    body: JSON.stringify(body),
67
  });
68
  if (!response.ok) {
69
    const text = await response.text();
70
    throw new Error(`${response.status} ${text}`);
71
  }
72
  return await response.json();
73
}
74