The labeling layer for your ML pipeline
A unified API, SDK and CLI that runs the whole loop from code — import, pre-label with your own models, gate on quality, export, repeat.
create_project.py
1from cvat_sdk import make_client, models2from cvat_sdk.core.proxies.tasks import ResourceType34with make_client("https://app.cvat.ai", access_token=TOKEN) as client:5 project = client.projects.create(models.ProjectWriteRequest(6 name="Shelf audit",7 labels=[models.PatchedLabelRequest(name=n)8 for n in ["product", "price_tag", "gap"]],9 ))10 task = client.tasks.create_from_data(11 spec=models.TaskWriteRequest(12 name="Store 14", project_id=project.id, segment_size=750,13 ),14 resource_type=ResourceType.SHARE,15 resources=keys, # object keys in your bucket16 data_params={"cloud_storage_id": 7},17 )18 for job, user in zip(task.get_jobs(), annotators):19 job.update(models.PatchedJobWriteRequest(assignee=user.id))
Works with the stack you already run
Data storage
Stream directly from AWS S3, Google Cloud, Azure, or local storage.
Model agnostic
Bring models from Hugging Face, Roboflow, Ultralytics, or any custom API.
Framework free
Export, filter, and train seamlessly in PyTorch, TensorFlow, JAX, or Keras.
Open source
Built in the open, with the community that uses it every day.