> ## Documentation Index
> Fetch the complete documentation index at: https://docs.labelbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import annotations as pre-labels into a project

> Learn how to import your annotations as pre-labels into Labelbox.

This guide will walk you through the process of importing your annotations from other internal or third-party tools as pre-labels into Labelbox.

## What are pre-labels?

Pre-labels are suggested annotations that are programmatically imported into a Labelbox project. Often generated by a machine learning model, these annotations serve as a starting point to accelerate the labeling process. Instead of creating every annotation from scratch, human labelers are presented with these pre-populated suggestions in the labeling editor.

The primary goal of using pre-labels is to boost labeling efficiency. A labeler's task shifts from manual creation to a faster workflow of reviewing, correcting, and confirming the suggested annotations. A pre-label is only converted into a finalized, ground truth annotation after a human labeler has reviewed and submitted the asset, ensuring that the final data maintains a high standard of quality.

## How to import annotations as pre-labels

You can reference Python SDK code snippets directly from the **Import labels** tab in your project dashboard. These snippets will serve as a great starting point for the steps below.

1. **Import your data rows**: To import annotations as pre-labels, you'll need to have a set of data rows to attach the annotations to. If you do not already have a set of data rows, you'll need to [create a dataset](/docs/datasets-datarows) by importing data rows into Catalog.
2. **Create/select an ontology**: When you import a set of annotations, you'll need to specify the ontology (also called taxonomy) that corresponds to the set of annotations. If the project ontology already exists in Labelbox, you may select the ontology that fits your annotations. If the ontology does not exist in Labelbox yet, you'll need to [create an ontology](/docs/labelbox-ontology).
3. **Create a labeling project**: Before you can import your annotations, you'll need to make sure you have a project to connect these annotations to. You cannot simply import annotations without specifying which project they'll be associated with. Oftentimes, you will already have a project set up with the correct ontology for your set of annotations. However, If you do not already have a project, you will need to [create a project](/docs/create-a-project) and attach the ontology that fits your annotations.
4. **Send a batch of data rows to the project**: Now that you have your project and ontology configured, you'll need to send a subset of data Rows (i.e., a [batch](/docs/batches)) to the project's labeling queue. You will be attaching your annotations to this batch of data rows.
5. **Create the annotations payload**: This is where you’ll prepare the annotations themselves for import. Each annotation in your payload needs to reference a specific annotation class from your ontology and a specific data row ID. Labelbox supports two formats for the annotation payload: **Python Annotation Types** and **NDJSON**. Go to the **Import labels** tab and select **Import pre-labels**. There you will find a sample code snippet you can use to import your ground truth annotations.
6. **Import your annotation payload**: Once you have created your annotation payload, the final step is to submit the import job. After the job is complete, your ground truth annotations will appear in your project, and the corresponding data rows will be marked as “Done.” Under **Import labels** → **Import pre-labels**, copy the code snippet for **Import annotations payload**.

Check out these end-to-end developer guides to learn how to import ground truth annotations based on your data type.

<CardGroup>
  <Card title="Import image annotations" icon="image" horizontal href="/reference/import-image-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import video annotations" icon="video" horizontal href="/reference/import-video-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import text annotations" icon="file-lines" horizontal href="/reference/import-text-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import geospatial annotations" icon="map" horizontal href="/reference/import-geospatial-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import document annotations" icon="file-pdf" horizontal href="/reference/import-document-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import conversational text annotations" icon="message" horizontal href="/reference/import-conversational-text-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import audio annotations" icon="music" horizontal href="/reference/import-audio-annotations#example-import-pre-labels-or-ground-truths" />

  <Card title="Import HTML annotations" icon="code" horizontal href="/reference/import-html-annotations#example-import-pre-labels-or-ground-truths" />
</CardGroup>

## Best practices

* Make sure the annotations are in the proper format. Use the charts above to determine whether an annotation type is supported for the data type you are labeling.
* Before you begin a new import job, make sure there are no existing MAL annotations on the data row.
* To override an imported annotation on a data row, import the annotation again using the same `uuid`.
