This guide covers how to migrate your annotation data and workflows from other platforms to Avala. Whether you’re coming from CVAT, Labelbox, Label Studio, or another tool, Avala supports importing data in common annotation formats.
Overview
Migrating to Avala generally follows three steps:
- Export your data and annotations from your current platform
- Transform the exported data into an Avala-compatible format if needed
- Import the data into Avala via the API or Mission Control
Need help with a large or complex migration? Contact us at support@avala.ai for assisted migration support. Our team can help with custom format conversions, bulk imports, and data validation.
Migrating from CVAT
CVAT supports exporting annotations in several formats that Avala can import directly.
Step 1: Export from CVAT
- Open your CVAT project or task
- Click Export task dataset (or Export project dataset)
- Select one of these formats:
- COCO 1.0 (recommended for image annotations)
- CVAT for images 1.1 (XML format)
- YOLO 1.1 (for bounding box annotations)
- Download the exported archive
Step 2: Import to Avala
Upload your images to an Avala dataset using presigned URLs, then import the annotations using the REST API. For file upload details, see the REST API guide.
# Import COCO annotations
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
The SDK supports read operations (list, get) and exports (create). For dataset creation, uploads, and annotation import, use the REST API directly.
Label Mapping
CVAT labels map directly to Avala labels. If your CVAT project uses attributes, they will be imported as annotation attributes in Avala.
| CVAT Concept | Avala Equivalent |
|---|
| Task | Project |
| Job | Work Batch |
| Label | Label |
| Attribute | Annotation Attribute |
| Track | Tracking Annotation |
| Tag | Classification Label |
Migrating from Labelbox
Labelbox exports annotations in its native JSON format or COCO format.
Step 1: Export from Labelbox
- Navigate to your Labelbox project
- Go to Export and select Export v2
- Choose your export format:
- Labelbox JSON (native format with all metadata)
- COCO (recommended for Avala import)
- Download the export file
If exporting in COCO format, you can import directly via the REST API. For Labelbox JSON format, convert to COCO first:
# Import COCO annotations via the REST API
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
Label Mapping
| Labelbox Concept | Avala Equivalent |
|---|
| Project | Project |
| Data Row | Dataset Item |
| Label | Annotation |
| Tool (Bounding Box) | Bounding Box Annotation |
| Tool (Polygon) | Polygon Annotation |
| Tool (Polyline) | Polyline Annotation |
| Tool (Point) | Keypoint Annotation |
| Classification | Classification Label |
| Benchmark | Consensus |
| Review | Review |
Migrating from Label Studio
Label Studio supports multiple export formats including COCO, YOLO, and its own JSON format.
Step 1: Export from Label Studio
- Open your Label Studio project
- Click Export in the top navigation
- Select your format:
- COCO (recommended for object detection annotations)
- YOLO (for bounding box annotations)
- JSON (Label Studio native format)
- Download the export
Step 2: Import to Avala
# Import COCO annotations from Label Studio export
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
Label Mapping
| Label Studio Concept | Avala Equivalent |
|---|
| Project | Project |
| Task | Dataset Item |
| Annotation | Annotation |
| RectangleLabels | Bounding Box |
| PolygonLabels | Polygon |
| KeyPointLabels | Keypoint |
| BrushLabels | Segmentation |
| Choices | Classification Label |
Migrating from Scale AI
Scale AI provides annotation services and exports data in its native JSON format or standard formats.
Step 1: Export from Scale AI
- Navigate to your Scale AI project dashboard
- Go to Tasks and select Export
- Choose your export format:
- Scale JSON (native format with all task metadata)
- COCO (recommended for Avala import)
- Download the export archive
Scale AI exports include task metadata (instructions, parameters, callback URLs) that do not carry over. Only annotation geometry and labels are imported into Avala.
If exporting in COCO format, import directly. For Scale JSON format, convert the annotation geometry to COCO first.
Scale JSON annotations use a response object per task with annotation arrays. Key fields to map:
{
"response": {
"annotations": [
{
"label": "car",
"type": "bounding_box",
"left": 100, "top": 200, "width": 300, "height": 150
}
]
}
}
Convert to COCO format, then import:
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
Label Mapping
| Scale AI Concept | Avala Equivalent |
|---|
| Project | Project |
| Task | Dataset Item |
| Annotation (bounding_box) | Bounding Box Annotation |
| Annotation (polygon) | Polygon Annotation |
| Annotation (line) | Polyline Annotation |
| Annotation (point) | Keypoint Annotation |
| Annotation (cuboid) | 3D Cuboid Annotation |
| Category | Label |
| Audit | Review |
Scale AI-Specific Notes
- 3D annotations: Scale AI’s LiDAR cuboid annotations include heading and velocity fields. Heading maps to Avala’s yaw rotation; velocity is stored as annotation metadata.
- Consensus tasks: Scale AI’s audit/review results do not have a direct mapping. Import them as separate annotation versions and use Avala’s consensus feature for comparison.
- Image groups: Scale AI’s image group tasks should be split into individual items when importing to Avala.
Migrating from Encord
Encord (formerly Cord) exports annotations in its native JSON format or COCO format.
Step 1: Export from Encord
- Open your Encord project
- Navigate to Labels → Export
- Choose your export format:
- Encord JSON (native format, includes all metadata)
- COCO (recommended for Avala import)
- Download the export
For COCO exports, import directly via the REST API:
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
For Encord JSON exports, the annotation structure uses objects and classifications arrays per frame:
{
"data_units": {
"image_hash": {
"labels": {
"objects": [
{
"name": "car",
"shape": "bounding_box",
"value": "car",
"boundingBox": {"x": 0.1, "y": 0.2, "w": 0.3, "h": 0.15}
}
],
"classifications": [
{ "name": "weather", "value": "sunny" }
]
}
}
}
}
Encord uses normalized coordinates (0.0-1.0 relative to image dimensions). Convert to absolute pixel coordinates before importing to Avala’s COCO format.
Label Mapping
| Encord Concept | Avala Equivalent |
|---|
| Project | Project |
| Data Unit | Dataset Item |
| Object (bounding_box) | Bounding Box Annotation |
| Object (polygon) | Polygon Annotation |
| Object (polyline) | Polyline Annotation |
| Object (point) | Keypoint Annotation |
| Classification | Classification Label |
| Ontology | Label Taxonomy |
| Label Row | Annotation Set |
| Review | Review |
Encord-Specific Notes
- Ontology structure: Encord’s hierarchical ontology (nested classifications under objects) maps to Avala’s label taxonomy with nested attributes. Review the mapping to ensure nested classification groups transfer correctly.
- Video annotations: Encord stores video annotations per-frame with object tracking IDs. Map tracking IDs to Avala’s tracking annotation feature.
- Priority queues: Encord’s labeling priority queues do not transfer. Recreate prioritization using Avala’s work batches.
General Migration Steps
For platforms not listed above, follow this general process:
1. Export Your Data
Export annotations from your current platform in a standard format. Most platforms support at least one of these:
- COCO JSON
- YOLO TXT
- Pascal VOC XML
If your export format is not directly supported, transform it to COCO format, which provides the most complete mapping to Avala’s annotation model.
3. Upload Data to Avala
Create a dataset and upload your images or data files using the REST API. File uploads use presigned URLs — see the REST API guide for details.
# Create a dataset via the REST API
curl -X POST "https://api.avala.ai/api/v1/datasets/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "migrated-data", "data_type": "image"}'
The SDK supports read operations (client.datasets.list(), client.datasets.get(uid)) and exports (client.exports.create()). For dataset creation, uploads, and annotation imports, use the REST API directly.
4. Import Annotations
Import the exported annotations into your Avala dataset:
curl -X POST "https://api.avala.ai/api/v1/datasets/{owner}/{slug}/import/" \
-H "X-Avala-Api-Key: $AVALA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "coco", "file_url": "https://your-storage/annotations.json"}'
5. Verify and Review
After import, verify your data using the SDK or Mission Control:
from avala import Client
client = Client()
# List datasets to find your imported data
page = client.datasets.list()
for dataset in page:
print(f"{dataset.name} ({dataset.uid})")
The following table shows how common annotation formats map to Avala’s internal format.
| Source Format | Annotation Types Supported | Notes |
|---|
| COCO JSON | Bounding boxes, polygons, keypoints, segmentation masks | Recommended format. Full metadata support including categories and image info. |
| YOLO TXT | Bounding boxes | One text file per image. Class IDs mapped via a separate classes file. |
| Pascal VOC XML | Bounding boxes | One XML file per image. Supports difficulty flags and truncation metadata. |
| CVAT XML | Bounding boxes, polygons, polylines, keypoints, tracks | Preserves tracking information and frame-level annotations. |
| Labelbox JSON | All types | Requires conversion to COCO for import. Contact support for assistance. |
| Label Studio JSON | All types | Requires conversion to COCO for import. |
| Scale AI JSON | Bounding boxes, polygons, polylines, keypoints, cuboids | Convert response.annotations to COCO. Heading/velocity stored as metadata. |
| Encord JSON | Bounding boxes, polygons, polylines, keypoints, classifications | Convert normalized coordinates to absolute pixels, then to COCO. |
Tips for a Smooth Migration
- Start with a small test: Migrate a small subset of your data first to validate the process before migrating everything.
- Verify label consistency: Ensure label names match between your source platform and Avala. Mismatched labels will be created as new labels.
- Preserve metadata: When possible, export with full metadata to retain information like creation dates, annotator assignments, and review statuses.
- Back up your source data: Keep a copy of your exported data from the original platform until you have verified the migration is complete.
For enterprise migrations involving large datasets (100,000+ items) or custom formats, contact support@avala.ai for dedicated migration assistance.