NEW OpenAI Structured Outputs with Label Studio 🚀

Webhook event format reference

Label Studio includes several types of webhook events that trigger when specific actions occur. Refer to the details on this page to determine what information is included in the payload of each webhook event. For details about how to use webhooks and to set up webhooks in Label Studio, see Set up webhooks in Label Studio. To create your own webhooks in Label Studio to trigger events when specific actions happen, see Create custom events for webhooks in Label Studio.

Webhooks sent from Label Studio include the following:

Key Details
action Details the action that the event represents.
project Included only for task and annotation events. Details about the project.
task_number Total number of tasks in the project.
finished_task_number Total number of annotated tasks in the project.
total_predictions_number Total number of predictions for the project.
total_annotations_number Total number of annotations, skipped tasks, and ground truth annotations in the project. Can be different from the total number of annotated tasks.
num_tasks_with_annotations Total number of tasks with annotations in the project. Does not count skipped and ground truth annotations.
useful_annotation_number Total number of annotations in the project. Excludes skipped and ground truth annotations.
ground_truth_number Total number of annotations marked as ground truth annotations in the project.
skipped_annotations_number Total number of skipped or cancelled annotations in the project.

The HTTP POST payloads that Label Studio sends to the configured webhook URLs include the headers that you set up when you configure the webhook.

If the webhook event is in response to a creation or update event, the full details of the created entity are also sent in the payload. See the following event reference tables for additional details.

Task Created

Sent when a task is created in Label Studio. See how to set up a webhook for this event.

Webhook payload details

The webhook payload includes the name of the action and some additional task data. The task-relevant data is the same as is included in the response when you create a task using the API.

Key Type Description
action string Name of the action. In this case, TASKS_CREATED, or if just one task was imported, TASK_CREATED.
tasks.id integer ID of the created task.
tasks.data string Reference to the data associated with the task. Can be a URL such as s3://path/to/bucket/image.png
tasks.meta JSON dictionary If it exists, metadata about the task.
tasks.created_at datetime Date and time of task creation.
tasks.updated_at datetime Date and time of last update to the task.
tasks.is_labeled boolean Whether or not the task has been labeled.
tasks.project integer Project ID for the task.
project JSON dictionary Details about the project that the task or tasks were added to.

Example payload


Click to expand the example payload
{
    "action": "TASKS_CREATED",
    "tasks": [
        {
            "id": 21,
            "data": {
                "ner": "Opossums like to be aloft \n\n\n\n\n\n in trees."
            },
            "meta": {},
            "created_at": "2021-08-17T13:51:02.590839Z",
            "updated_at": "2021-08-17T13:51:02.590873Z",
            "is_labeled": false,
            "overlap": 1,
            "project": 2,
            "file_upload": 46
        },
        {
            "id": 22,
            "data": {
                "ner": "Opossums are opportunistic."
            },
            "meta": {},
            "created_at": "2021-08-17T13:51:02.590926Z",
            "updated_at": "2021-08-17T13:51:02.590941Z",
            "is_labeled": false,
            "overlap": 1,
            "project": 2,
            "file_upload": 46
        },
        {
            "id": 23,
            "data": {
                "ner": "Opossums like to forage for food."
            },
            "meta": {},
            "created_at": "2021-08-17T13:51:02.590981Z",
            "updated_at": "2021-08-17T13:51:02.590995Z",
            "is_labeled": false,
            "overlap": 1,
            "project": 2,
            "file_upload": 46
        }
    ],
    "project": {
        "id": 2,
        "title": "New Project #2",
        "description": "",
        "label_config": "<View></View>",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "9105a1d897e52286",
        "result_count": 0,
        "color": "#FFFFFF",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {},
        "model_version": "",
        "data_types": {},
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-17T13:49:34.326416Z",
        "updated_at": "2021-08-17T13:49:35.911271Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Task Deleted

Sent when a task is deleted from Label Studio. See how to set up a webhook for this event.

Webhook payload details

Key Type Description
action string Name of the action. In this case, TASK_DELETED or TASKS_DELETED if multiple tasks were deleted at once.
id integer ID of the deleted task.
project JSON dictionary Details about the project that the task or tasks were deleted from.

Example payload


Click to expand the example payload
{
    "action": "TASKS_DELETED",
    "tasks": [
        {
            "id": 18
        },
        {
            "id": 19
        },
        {
            "id": 20
        },
        {
            "id": 21
        },
        {
            "id": 22
        },
        {
            "id": 23
        }
    ],
    "project": {
        "id": 2,
        "title": "New Project #2",
        "description": "",
        "label_config": "<View> <Header value=\"Please read the passage\"/> <Text name=\"text\" value=\"$ner\" granularity=\"word\"/> <Header value=\"Select a text span answering the following question:\"/> <Text name=\"question\" value=\"$ner\"/>\n<Labels name=\"answer\" toName=\"text\"> <Label value=\"Answer\" maxUsage=\"1\" background=\"red\"/> </Labels>\n</View><!-- {\"data\": { \"text\": \"The boundary of the region from which no escape is possible is called the event horizon. Although the event horizon has an enormous effect on the fate and circumstances of an object crossing it, according to general relativity it has no locally detectable features.[4] In many ways, a black hole acts like an ideal black body, as it reflects no light.[5][6] Moreover, quantum field theory in curved spacetime predicts that event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass. This temperature is on the order of billionths of a kelvin for black holes of stellar mass, making it essentially impossible to observe directly.\", \"question\": \"How could black holes be detected?\" }, \"annotations\": [{\"result\": [ { \"value\": { \"start\": 423, \"end\": 553, \"text\": \"event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass.\", \"labels\": [ \"Answer\" ] }, \"id\": \"b0wKkdnnRc\", \"from_name\": \"answer\", \"to_name\": \"text\", \"type\": \"labels\" } ] }] } -->",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "9105a1d897e52286",
        "result_count": 0,
        "color": "#FFFFFF",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {
            "answer": {
                "overall": 1.0,
                "type": "Labels",
                "labels": {
                    "Answer": 1.0
                }
            }
        },
        "model_version": "",
        "data_types": {
            "ner": "Text"
        },
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-17T13:49:34.326416Z",
        "updated_at": "2021-08-17T13:52:09.334425Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Annotation Created

Sent when an annotation is created for a task in Label Studio. See how to set up a webhook for this event.

Webhook payload details

The webhook payload includes the name of the action and some additional annotation data. The annotation-relevant data is the same as is included in the response when you create an annotation using the API.

Key Type Description
action string Name of the action. In this case, ANNOTATION_CREATED.
annotation.id integer ID of the created annotation.
annotation.result JSON dictionary JSON representation of the annotation created.
annotation.task integer The task ID that the annotation was created for.
annotation.completed_by integer ID of the user that created the annotation.
annotation.was_cancelled boolean Whether or not the annotation is the result of a skipped task, and an empty annotation.
annotation.ground_truth boolean Always false. Whether or not the annotation is a ground truth.
annotation.created_at datetime Date and time that the annotation was created.
annotation.updated_at datetime Date and time that the annotation was last updated.
annotation.lead_time floating point number Amount of time, in seconds, that it took to complete the annotation.
annotation.prediction JSON dictionary Details of the prediction viewed at the time of annotation, if one exists.
project JSON dictionary All fields related to the associated project.

Example payload


Click to expand the example payload
{
    "action": "ANNOTATION_CREATED",
    "annotation": {
        "id": 17,
        "result": [
            {
                "value": {
                    "start": 0,
                    "end": 26,
                    "text": "Opossums are op",
                    "labels": [
                        "Answer"
                    ]
                },
                "id": "WArqkkifYE",
                "from_name": "answer",
                "to_name": "text",
                "type": "labels"
            }
        ],
        "was_cancelled": false,
        "ground_truth": false,
        "created_at": "2021-08-17T13:52:48.536303Z",
        "updated_at": "2021-08-17T13:52:48.536370Z",
        "lead_time": 37.13,
        "prediction": {},
        "result_count": 0,
        "task": 19,
        "completed_by": 1
    },
    "project": {
        "id": 2,
        "title": "New Project #2",
        "description": "",
        "label_config": "<View> <Header value=\"Please read the passage\"/> <Text name=\"text\" value=\"$ner\" granularity=\"word\"/> <Header value=\"Select a text span answering the following question:\"/> <Text name=\"question\" value=\"$ner\"/>\n<Labels name=\"answer\" toName=\"text\"> <Label value=\"Answer\" maxUsage=\"1\" background=\"red\"/> </Labels>\n</View><!-- {\"data\": { \"text\": \"The boundary of the region from which no escape is possible is called the event horizon. Although the event horizon has an enormous effect on the fate and circumstances of an object crossing it, according to general relativity it has no locally detectable features.[4] In many ways, a black hole acts like an ideal black body, as it reflects no light.[5][6] Moreover, quantum field theory in curved spacetime predicts that event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass. This temperature is on the order of billionths of a kelvin for black holes of stellar mass, making it essentially impossible to observe directly.\", \"question\": \"How could black holes be detected?\" }, \"annotations\": [{\"result\": [ { \"value\": { \"start\": 423, \"end\": 553, \"text\": \"event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass.\", \"labels\": [ \"Answer\" ] }, \"id\": \"b0wKkdnnRc\", \"from_name\": \"answer\", \"to_name\": \"text\", \"type\": \"labels\" } ] }] } -->",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "9105a1d897e52286",
        "result_count": 0,
        "color": "#FFFFFF",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {
            "answer": {
                "overall": 1.0,
                "type": "Labels",
                "labels": {
                    "Answer": 1.0
                }
            }
        },
        "model_version": "",
        "data_types": {
            "ner": "Text"
        },
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-17T13:49:34.326416Z",
        "updated_at": "2021-08-17T13:52:09.334425Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Annotation Updated

Sent when an annotation is updated. See how to set up a webhook for this event.

Webhook payload details

The webhook payload includes the name of the action and some additional annotation data. The annotation-relevant data is the same as is included in the response when you update an annotation using the API.

Key Type Description
action string Name of the action. In this case, ANNOTATION_UPDATED.
annotation.id integer ID of the updated annotation.
annotation.result JSON dictionary JSON representation of the annotation updated.
annotation.task integer The task ID that the annotation was updated for.
annotation.completed_by integer ID of the user that updated the annotation.
annotation.was_cancelled boolean Whether or not the annotation is the result of a skipped task, and an empty annotation.
annotation.ground_truth boolean Always false. Whether or not the annotation is a ground truth.
annotation.created_at datetime Date and time that the annotation was created.
annotation.updated_at datetime Date and time that the annotation was last updated.
annotation.lead_time floating point number Amount of time, in seconds, that it took to complete the annotation.
annotation.prediction JSON dictionary Details of the prediction viewed at the time of annotation, if one exists.
project JSON dictionary All fields related to the associated project.

Example payload


Click to expand the example payload
{
    "action": "ANNOTATION_UPDATED",
    "annotation": {
        "id": 16,
        "result": [
            {
                "original_width": 1024,
                "original_height": 1024,
                "image_rotation": 0,
                "value": {
                    "x": 42,
                    "y": 36.4,
                    "width": 50.13333333333333,
                    "height": 26,
                    "rotation": 0,
                    "rectanglelabels": [
                        "Airplane"
                    ]
                },
                "id": "5dC-jDgBtG",
                "from_name": "label",
                "to_name": "image",
                "type": "rectanglelabels"
            },
            {
                "original_width": 1024,
                "original_height": 1024,
                "image_rotation": 0,
                "value": {
                    "x": 12.533333333333333,
                    "y": 37.733333333333334,
                    "width": 23.6,
                    "height": 22,
                    "rotation": 0,
                    "rectanglelabels": [
                        "Car"
                    ]
                },
                "id": "_bJsGZ0_Cm",
                "from_name": "label",
                "to_name": "image",
                "type": "rectanglelabels"
            }
        ],
        "was_cancelled": false,
        "ground_truth": false,
        "created_at": "2021-08-17T13:35:59.817086Z",
        "updated_at": "2021-08-17T13:37:25.805479Z",
        "lead_time": 299.327,
        "prediction": {},
        "result_count": 0,
        "task": 5,
        "completed_by": 1
    },
    "project": {
        "id": 1,
        "title": "New Project #5",
        "description": "",
        "label_config": "<View> <Image name=\"image\" value=\"$image\"/> <RectangleLabels name=\"label\" toName=\"image\"> <Label value=\"Airplane\" background=\"green\"/> <Label value=\"Car\" background=\"blue\"/> </RectangleLabels> </View>\n<!--{\"annotations\": [{\"result\": [ { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 4.21455938697318, \"y\": 11.142857142857142, \"width\": 32.95019157088122, \"height\": 46.285714285714285, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"PIhJM1YYpH\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 30.076628352490417, \"y\": 44.57142857142857, \"width\": 32.56704980842912, \"height\": 46, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"lnimBBYxMU\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 67.17850287907869, \"y\": 18, \"width\": 28.406909788867566, \"height\": 43.714285714285715, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"sBjX3KteGU\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 77.01149425287356, \"y\": 84.57142857142857, \"width\": 3.4482758620689653, \"height\": 5.142857142857142, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"TIYiC1Bh67\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 85.02879078694816, \"y\": 83.71428571428572, \"width\": 2.879078694817658, \"height\": 4.857142857142856, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"mL8hEBkvJt\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 57.08812260536399, \"y\": 87.42857142857143, \"width\": 5.363984674329502, \"height\": 7.142857142857142, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"3gpRfF9MkN\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" } ] }]} -->",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "846c4da585704dd4",
        "result_count": 0,
        "color": "#F6C549",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {
            "label": {
                "overall": 1.0,
                "type": "RectangleLabels",
                "labels": {
                    "Airplane": 1.0,
                    "Car": 1.0
                }
            }
        },
        "model_version": "",
        "data_types": {
            "image": "Image"
        },
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-12T14:15:01.744507Z",
        "updated_at": "2021-08-17T13:35:25.697471Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Annotation Deleted

Sent when an annotation is deleted. See how to set up a webhook for this event.

Webhook payload details

Key Type Description
action string Name of the action. In this case, ANNOTATION_DELETED, or for bulk actions, ANNOTATIONS_DELETED
id integer ID of the deleted annotation.
project JSON dictionary Details about the project that the annotations were deleted from.

Example payload


Click to expand the example payload
{
    "action": "ANNOTATIONS_DELETED",
    "annotations": [
        {
            "id": 17
        }
    ],
    "project": {
        "id": 2,
        "title": "New Project #2",
        "description": "",
        "label_config": "<View> <Header value=\"Please read the passage\"/> <Text name=\"text\" value=\"$ner\" granularity=\"word\"/> <Header value=\"Select a text span answering the following question:\"/> <Text name=\"question\" value=\"$ner\"/>\n<Labels name=\"answer\" toName=\"text\"> <Label value=\"Answer\" maxUsage=\"1\" background=\"red\"/> </Labels>\n</View><!-- {\"data\": { \"text\": \"The boundary of the region from which no escape is possible is called the event horizon. Although the event horizon has an enormous effect on the fate and circumstances of an object crossing it, according to general relativity it has no locally detectable features.[4] In many ways, a black hole acts like an ideal black body, as it reflects no light.[5][6] Moreover, quantum field theory in curved spacetime predicts that event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass. This temperature is on the order of billionths of a kelvin for black holes of stellar mass, making it essentially impossible to observe directly.\", \"question\": \"How could black holes be detected?\" }, \"annotations\": [{\"result\": [ { \"value\": { \"start\": 423, \"end\": 553, \"text\": \"event horizons emit Hawking radiation, with the same spectrum as a black body of a temperature inversely proportional to its mass.\", \"labels\": [ \"Answer\" ] }, \"id\": \"b0wKkdnnRc\", \"from_name\": \"answer\", \"to_name\": \"text\", \"type\": \"labels\" } ] }] } -->",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "9105a1d897e52286",
        "result_count": 0,
        "color": "#FFFFFF",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {
            "answer": {
                "overall": 1.0,
                "type": "Labels",
                "labels": {
                    "Answer": 1.0
                }
            }
        },
        "model_version": "",
        "data_types": {
            "ner": "Text"
        },
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-17T13:49:34.326416Z",
        "updated_at": "2021-08-17T13:52:09.334425Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Project Created

Sent when a project is created. See how to set up a webhook for this event.

You must enable organization-level webhooks to use this event.

Webhook payload details

The webhook payload includes the name of the action and some additional project data. The project-relevant data is the same as is included in the response when you create a project using the API.

Key Type Description
action string The action that triggered the event. In this case, PROJECT_CREATED.
project JSON dictionary All fields related to the project that was created. See the API documentation for creating a project.

Example payload


Click to expand the example payload
{
    "action": "PROJECT_CREATED",
    "project": {
        "id": 3,
        "title": "New Project #3",
        "description": "",
        "label_config": "<View></View>",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "d881a308198ff9ac",
        "result_count": 0,
        "color": "#FFFFFF",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {},
        "model_version": "",
        "data_types": {},
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-17T13:55:58.809065Z",
        "updated_at": "2021-08-17T13:55:58.809098Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Project Updated

Sent when a project is updated. See how to set up a webhook for this event.

Webhook payload details

The webhook payload includes the name of the action and some additional project data. The project-relevant data is the same as is included in the response when you update a project using the API.

Key Type Description
action string The action that triggered the event. In this case, PROJECT_UPDATED.
project JSON dictionary All fields related to the project that was updated. See the API documentation for updating a project.

Example payload


Click to expand the example payload
{
    "action": "PROJECT_UPDATED",
    "project": {
        "id": 1,
        "title": "New Project #5",
        "description": "",
        "label_config": "<View> <Image name=\"image\" value=\"$image\"/> <RectangleLabels name=\"label\" toName=\"image\"> <Label value=\"Airplane\" background=\"green\"/> <Label value=\"Car\" background=\"blue\"/> </RectangleLabels> </View>\n<!--{\"annotations\": [{\"result\": [ { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 4.21455938697318, \"y\": 11.142857142857142, \"width\": 32.95019157088122, \"height\": 46.285714285714285, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"PIhJM1YYpH\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 30.076628352490417, \"y\": 44.57142857142857, \"width\": 32.56704980842912, \"height\": 46, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"lnimBBYxMU\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 67.17850287907869, \"y\": 18, \"width\": 28.406909788867566, \"height\": 43.714285714285715, \"rotation\": 0, \"rectanglelabels\": [ \"Airplane\" ] }, \"id\": \"sBjX3KteGU\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 77.01149425287356, \"y\": 84.57142857142857, \"width\": 3.4482758620689653, \"height\": 5.142857142857142, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"TIYiC1Bh67\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 85.02879078694816, \"y\": 83.71428571428572, \"width\": 2.879078694817658, \"height\": 4.857142857142856, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"mL8hEBkvJt\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" }, { \"original_width\": 600, \"original_height\": 403, \"image_rotation\": 0, \"value\": { \"x\": 57.08812260536399, \"y\": 87.42857142857143, \"width\": 5.363984674329502, \"height\": 7.142857142857142, \"rotation\": 0, \"rectanglelabels\": [ \"Car\" ] }, \"id\": \"3gpRfF9MkN\", \"from_name\": \"label\", \"to_name\": \"image\", \"type\": \"rectanglelabels\" } ] }]} -->",
        "expert_instruction": "",
        "show_instruction": false,
        "show_skip_button": true,
        "enable_empty_annotation": true,
        "show_annotation_history": false,
        "show_collab_predictions": true,
        "evaluate_predictions_automatically": false,
        "token": "846c4da585704dd4",
        "result_count": 0,
        "color": "#F6C549",
        "maximum_annotations": 1,
        "min_annotations_to_start_training": 10,
        "control_weights": {
            "label": {
                "overall": 1.0,
                "type": "RectangleLabels",
                "labels": {
                    "Airplane": 1.0,
                    "Car": 1.0
                }
            }
        },
        "model_version": "",
        "data_types": {
            "image": "Image"
        },
        "is_draft": false,
        "is_published": false,
        "created_at": "2021-08-12T14:15:01.744507Z",
        "updated_at": "2021-08-17T13:39:14.054849Z",
        "sampling": "Sequential sampling",
        "show_ground_truth_first": true,
        "show_overlap_first": true,
        "overlap_cohort_percentage": 100,
        "task_data_login": null,
        "task_data_password": null,
        "organization": 1,
        "created_by": 1
    }
}

Project Deleted

Sent when a project is deleted. See how to set up a webhook for this event.

You must enable organization-level webhooks to use this event.

Webhook payload details

Key Type Description
action string Name of the action. In this case, PROJECT_DELETED.
id integer ID of the deleted project.

Example payload

{
    "action": "PROJECT_DELETED",
    "project": {
        "id": 3
    }
}

Start Training

This webhook is triggered when a user clicks Start Training button on the ML Model card in the Project Settings page. This event will be sent to the ML Backend and can be caught in the model.fit(event, …) method:

class MyModel(LabelStudioMLBase):
  def fit(self, event, *args, **kwargs):
    if event == 'START_TRAINING': 
      ...

Webhook payload details

Key Type Description
action string Name of the action: START_TRAINING.
id integer ID of the project where training is started.
project JSON dictionary All fields related to the project that was updated. See the API documentation for updating a project.