Manage Applications

    Create a webhook

    Create a webhook

    To attach a webhook to an item, call the Create webhook endpoint with the type and ID of the item, a URL to send webhook notifications to, and a list of triggers that will cause the webhook to activate.

    cURL
    curl -X POST https://api.box.com/2.0/webhooks \
         -H "Authorization: Bearer <ACCESS_TOKEN>" \
         -H "Content-Type: application/json" \
         -d '{
           "target": {
             "id": "21322", 
             "type": "file"
           }, 
           "address": "https://example.com/webhooks",
           "triggers": [
             "FILE.PREVIEWED"
           ]
         }'
    .NET
    var webhookParams = new BoxWebhookRequest()
    {
        Target = new BoxRequestEntity()
        {
            Type = BoxType.folder,
            Id = "22222"
        },
        Triggers = new List<string>()
        {
            "FILE.UPLOADED",
            "FILE.DOWNLOADED"
        },
        Address = "https://example.com/webhook
    };
    BoxWebhook webhook = await client.WebhooksManager.CreateWebhookAsync(webhookParams);
    Java
    // Listen for preview events for a file
    BoxFile file = new BoxFile(api, id);
    BoxWebHook.Info webhookInfo = BoxWebHook.create(file, url, BoxWebHook.Trigger.FILE.PREVIEWED);
    Python
    file = client.file(file_id='12345')
    webhook = client.create_webhook(file, ['FILE.PREVIEWED'], 'https://example.com')
    print('Webhook ID is {0} and the address is {1}'.format(webhook.id, webhook.address))
    Node
    // Attach a webhook that sends a notification to https://example.com/webhook when
    //   file 11111 is renamed or downloaded.
    client.webhooks.create(
    	'11111',
    	client.itemTypes.FILE,
    	'https://example.com/webhook',
    	[
    		client.webhooks.triggerTypes.FILE.RENAMED,
    		client.webhooks.triggerTypes.FILE.DOWNLOADED
    	])
    	.then(webhook => {
    		/* webhook -> {
    			id: '12345',
    			type: 'webhook',
    			target: { id: '11111', type: 'file' },
    			created_by: 
    			{ type: 'user',
    				id: '33333',
    				name: 'Example User',
    				login: 'user@example.com' },
    			created_at: '2016-05-09T17:41:27-07:00',
    			address: 'https://example.com/webhook',
    			triggers: [ 'FILE.RENAMED', 'FILE.UPLOADED' ] }
    		*/
    	});

    The current types supported are file and folder.

    The notification URL must be a valid HTTPS URL that you specify when you create a webhook. Every time one of the triggers is activated, this URL will be called.

    The triggers are a list of strings that specify the events that will cause the webhook to be triggered. For example, if you want the webhook to be triggered when a user uploads a file you'd pass in the FILE.UPLOADED trigger name.

    A list of available triggers is available in the in this guide.