Skip to main content

Overview

Annotations in CVAT include shapes (rectangles, polygons, polylines, points, cuboids, ellipses, masks), tracks (objects tracked across frames), and tags (frame-level labels). Annotations can be managed at the project, task, or job level.

Annotation Format

CVAT uses a standardized JSON format for annotations:

Shape Types

CVAT supports the following shape types:

Rectangle

Bounding boxes defined by two points (top-left and bottom-right):

Polygon

Closed polygons defined by multiple points:

Polyline

Open polylines:

Points

Multiple individual points:

Cuboid

3D bounding boxes (8 points):

Ellipse

Ellipses defined by center and two radii:

Mask

Binary masks (raster format):

Get Annotations

Annotations can be retrieved at different levels:

Get Task Annotations

Get Job Annotations

Response Format

integer
Annotation format version
array
Array of image-level tags
integer
Frame number
integer
Label identifier
integer
Group identifier for related annotations
string
Annotation source: manual, auto, or file
array
Array of attribute values
array
Array of shape annotations
string
Shape type: rectangle, polygon, polyline, points, cuboid, ellipse, or mask
integer
Frame number
integer
Label identifier
array
Array of coordinate values
boolean
Whether the object is occluded
integer
Group identifier
string
Annotation source
array
Array of attribute values
array
Array of tracked objects across frames
integer
Label identifier
integer
Starting frame number
integer
Group identifier
string
Annotation source
array
Array of shape positions per frame

Create Annotations

Add new annotations using the PATCH endpoint with action=create.

Path Parameters

integer
required
Task or job identifier

Query Parameters

string
required
Must be create

Request Body

array
Array of shape objects to create
array
Array of tag objects to create
array
Array of track objects to create

Update Annotations

Modify existing annotations using action=update.

Query Parameters

string
required
Must be update

Request Body

Include the id field for each annotation to update, along with the fields to modify.

Delete Annotations

Remove specific annotations using action=delete.

Query Parameters

string
required
Must be delete

Replace All Annotations

Replace all annotations in a task or job.
This operation replaces ALL existing annotations. Use with caution.

Delete All Annotations

Remove all annotations from a task or job.

Import Annotations

Import annotations from various formats.

Supported Import Formats

  • COCO 1.0
  • YOLO 1.1
  • Pascal VOC 1.1
  • CVAT 1.1
  • LabelMe 3.0
  • KITTI 1.0
  • MOT 1.1
  • And many more…
Get the full list at: /api/server/annotation/formats

Path Parameters

integer
required
Task or job identifier

Query Parameters

string
Import format name
string
Annotation filename (for cloud storage)
string
Import location: local or cloud_storage
integer
Cloud storage ID

Response

string
Request ID for tracking import status
Check status: GET /api/requests/{rq_id}

Export Annotations

Export annotations in various formats.

Supported Export Formats

  • COCO 1.0
  • YOLO 1.1
  • Pascal VOC 1.1
  • CVAT 1.1
  • TFRecord 1.0
  • Segmentation mask 1.1
  • And many more…

Query Parameters

string
required
Export format name
string
Output filename
boolean
default:false
Include images in export
string
Export location: local or cloud_storage
integer
Cloud storage ID

Response

string
Request ID for tracking export status

Working with Tracks

Tracks represent objects that persist across multiple frames.

Create a Track

Track Properties

boolean
Whether the object is outside the frame (not visible but still tracked)
boolean
Whether this frame is a keyframe for interpolation

Example: Batch Annotation

Get Supported Formats

Retrieve a list of all supported annotation formats:
This returns importers and exporters with their specifications and options.