Back to Label Studio

Task Format

docs/source/includes/task_format.md

2.2.10-16.8 KB
Original Source

Label Studio JSON format of annotated tasks

When you annotate data, Label Studio stores the output in JSON format. The raw JSON structure of each completed task uses the following example:

json
{
    "id": 1,
    "created_at":"2021-03-09T21:52:49.513742Z",
    "updated_at":"2021-03-09T22:16:08.746926Z",
    "project":83,

    "data": {
        "image": "https://example.com/opensource/label-studio/1.jpg"
    },

    "annotations": [
        {
            "id": "1001",
            "result": [
                {
                    "from_name": "tag",
                    "id": "Dx_aB91ISN",
                    "source": "$image",
                    "to_name": "img",
                    "type": "rectanglelabels",
                    "value": {
                        "height": 10.458911419423693,
                        "rectanglelabels": [
                            "Moonwalker"
                        ],
                        "rotation": 0,
                        "width": 12.4,
                        "x": 50.8,
                        "y": 5.869797225186766
                    }
                }
            ],
            "was_cancelled":false,
            "ground_truth":false,
            "created_at":"2021-03-09T22:16:08.728353Z",
            "updated_at":"2021-03-09T22:16:08.728378Z",
            "lead_time":4.288,
            "result_count":0,
            "task":1,
            "completed_by":10
        }
    ],

    "predictions": [
        {
            "created_ago": "3 hours",
            "model_version": "model 1",
            "result": [
                {
                    "from_name": "tag",
                    "id": "t5sp3TyXPo",
                    "source": "$image",
                    "to_name": "img",
                    "type": "rectanglelabels",
                    "value": {
                        "height": 11.612284069097889,
                        "rectanglelabels": [
                            "Moonwalker"
                        ],
                        "rotation": 0,
                        "width": 39.6,
                        "x": 13.2,
                        "y": 34.702495201535505
                    }
                }
            ]
        },
        {
            "created_ago": "4 hours",
            "model_version": "model 2",
            "result": [
                {
                    "from_name": "tag",
                    "id": "t5sp3TyXPo",
                    "source": "$image",
                    "to_name": "img",
                    "type": "rectanglelabels",
                    "value": {
                        "height": 33.61228406909789,
                        "rectanglelabels": [
                            "Moonwalker"
                        ],
                        "rotation": 0,
                        "width": 39.6,
                        "x": 13.2,
                        "y": 54.702495201535505
                    }
                }
            ]
        }
    ]
}

Relevant JSON property descriptions

Review the full list of JSON properties in the API documentation.

JSON property nameDescription
idIdentifier for the labeling task from the dataset.
dataData copied from the input data task format. See the documentation for Task Format.
projectIdentifier for a specific project in Label Studio.
annotationsArray containing the labeling results for the task.
annotations.idIdentifier for the completed task.
annotations.lead_timeTime in seconds to label the task.
annotations.resultArray containing the results of the labeling or annotation task.
annotations.updated_atTimestamp for when the annotation is created or modified.
annotations.completed_atTimestamp for when the annotation is created or submitted.
annotations.completed_byUser ID of the user that created the annotation. Matches the list order of users on the People page on the Label Studio UI. See Specifying annotators during import for import format options.
annotations.was_cancelledBoolean. Details about whether or not the annotation was skipped, or cancelled.
result.idIdentifier for the specific annotation result for this task. Use it to combine together regions from different control tags, e.g. <Labels> and <Rectangle>
result.parentID(Optional) Reference to the parent region result.id. It organizes regions into a hierarchical tree in the Region panel
result.from_nameName of the tag used to label the region. See control tags.
result.to_nameName of the object tag that provided the region to be labeled. See object tags.
result.typeType of tag used to annotate the task.
result.valueTag-specific value that includes details of the result of labeling the task. The value structure depends on the tag for the label. For more information, see Explore each tag.
draftsArray of draft annotations. Follows similar format as the annotations array. Included only for tasks exported as a snapshot from the UI or using the API.
predictionsArray of machine learning predictions. Follows the same format as the annotations array, with one additional parameter.
predictions.scoreThe overall score of the result, based on the probabilistic output, confidence level, or other.
task.updated_atTimestamp for when the task or any of its annotations or reviews are created, updated, or deleted.

Specifying annotators during import {#specifying-annotators-during-import}

When importing annotations to Label Studio, you can control which users are assigned as annotators by using the completed_by field within the annotation object:

json
// Option 1: No annotator specified (uses importing user)
{
  "result": [...],
  "completed_by": null
}

// Option 2: Specify by email
{
  "result": [...],
  "completed_by": {
    "email": "[email protected]"
  }
}

// Option 3: Specify by ID
{
  "result": [...],
  "completed_by": 42
}

The system will match the email or ID to an existing user in your organization, or fall back to the importing user if configured to allow this.

Note that this applies when importing via the Label Studio UI, the API, or the SDK.

<div class="enterprise-only">

Enterprise fields are presented in export:

JSON property nameDescription
annotations.reviewsArray containing the details of reviews for this annotation.
reviews.idID of the specific annotation review.
reviews.created_byDictionary containing user ID, email, first name and last name of the user performing the review.
reviews.acceptedBoolean. Whether the reviewer accepted the annotation as part of their review.
</div>