--- title: Set up webhooks in Label Studio short: Webhooks type: guide tier: all order: 407 order_enterprise: 407 meta_title: Configure Webhooks in Label Studio meta_description: Label Studio documentation for setting up and configuring webhooks to integrate Label Studio with your machine learning pipeline. section: "Integrate & Extend" --- Webhooks in Label Studio let you set up integrations that subscribe to certain events that occur inside Label Studio. When an event is triggered, Label Studio sends an HTTP POST request to the configured webhook URL. For example: ```json { "action": "TASK_CREATED", "tasks": [ {"id": 1, ...}, ... ] } ``` Your application or service can then respond to that event information however you want. ## What to use Label Studio webhooks for Some events that happen in Label Studio happen in response to an API call. For those, the API response is sufficient to know that the action has occurred. But other events happen inside the Label Studio UI, such as project changes and task annotation activities. To find out immediately when those changes occur, you can use webhooks to notify your application or machine learning pipeline to take specific actions. The actions your webhook takes in your application or pipeline can vary depending on the event. For example, you might use events sent to your webhook URL to do the following: - Start training a machine learning model after a certain number of tasks have been annotated. - Perform active learning after a task has been annotated. - Prompt annotators to begin working on a project after it is fully set up. - Create a new version of training data in a dataset versioning repository. Limit the number of requests to your server by subscribing only to the events relevant for your use case. ## Available Label Studio webhooks Label Studio makes two main types of events available to integrate with webhooks: project-level task events and organization events.
| Event Action | Details | Use Case |
|---|---|---|
| Task Created | For a specific project, triggers when new tasks are created. One event per import action. Bulk task creation is sent as one event. | Use to take action in your machine learning pipeline. |
| Task Deleted | For a specific project, triggers when tasks are deleted. One event per deletion action. Bulk task deletion is sent as one event. | Use to update a training dataset version. |
| Annotation Created | For a specific project, triggers when new annotations are created for any tasks. One event per annotation. | Use to start training in an active learning scenario. |
| Annotation Updated | For a specific project, triggers when an existing annotation is updated, overwritten, or when a task is skipped. | Use to prompt model retraining. |
| Annotation Deleted | For a specific project, triggers when an annotation is deleted. Bulk annotation deletion is sent as one event. | Use to create a new version of a training dataset. |
| Project Created | For an organization, triggers when a project is created. You must enable organization-level webhooks to send this event. | Use to create a new pipeline for data management. |
| Project Updated | Triggers when project settings, such as the labeling configuration, are updated, created, or saved. | Use to update an existing data management pipeline. |
| Project Deleted | For an organization, triggers when a project is deleted. You must enable organization-level webhooks to send this event. | Use to remove a data management pipeline. |