Managing webhooks and subscriptions

Creating & changing webhooks

In order to change webhook URLs, you must delete your existing webhook and then create a new one. Note that when you do this, you will be required to re-add user subscriptions to the new webhook.

Webhook configuration management endpoints:

Method Premium Enterprise
Registers a webhook URL / Generates a webhook_id POST :env_name/webhooks
POST webhooks
Returns all webhook URLs and their statuses
GET webhooks
GET webhooks
Delete app’s current webhook configuration
DELETE :env_name/webhooks/:webhook_id
DELETE webhooks/:webhook_id             
Manually trigger a CRC request
PUT :env_name/webhooks/:webhook_id
PUT webhooks/:webhook_id

 

Why can’t I just update the webhook URL?

Why are webhook configurations immutable? Twitter takes security very seriously. If your webhook URL is changed, there is a possibility that your application consumer key and consumer secret have been compromised. By requiring you to create a new webhook configuration, you are also required to re-subscribe to your user’s events. This requires the use of access tokens that a malicious party is less likely to possess. As a result, the likelihood that another party will receive your user’s private information is reduced.
 

Adding & removing User subscriptions

When adding or deleting User subscriptions, user-supplied access tokens are required. 

Premium

For the premium tier of the Account Activity API, the free "sandbox" offering includes 15 subscriptions. Paid premium access provides for up to 250 subscriptions per webhook and up to one webhook per Twitter application. If you have a need for access beyond these levels, please let us know by providing more information using this form.
 

Enterprise

Support for thousands of subscriptions is available with the enterprise tier. If you already have an account manager, please reach out to them with questions.  To apply for access to the enterprise APIs, click here

Subscription management endpoints
 

Method Premium Enterprise
Add new user subscription
POST :env_name/subscriptions 
POST webhooks/:webhook_id/subscriptions/all
Retrieve a user subscription
GET :env_name/subscriptions
GET webhooks/:webhook_id/subscriptions/all
Returns a list of all active subscriptions
GET :env_name/subscriptions/list
GET webhooks/:webhook_id/subscriptions/all/list
Remove a user subscription
DELETE :env_name/subscriptions
DELETE webhooks/:webhook_id/subscriptions/all

 

Next steps