- 22 Oct 2025
- Print
- DarkLight
- PDF
SDK Cheat Sheet
- Updated On 22 Oct 2025
- Print
- DarkLight
- PDF
A quick reference guide for common operations in the Dataloop SDK — including Projects, Datasets, Items, Recipes, Annotations, Tasks, and more.
Projects
Manage your Dataloop projects — create, list, and manage members.
# Create a project
project = dl.projects.create(project_name='my-new-project')
# Print projects list
dl.projects.list().print()
# Open project on the web
project.open_in_web()
# Get projects list
dl.projects.list()
# Get a project by name
project = dl.projects.get(project_name='my-project')
# Get a project by ID
project = dl.projects.get(project_id='my-project-id')
# Add project users ID
project.add_member(email='email@email.com', role=dl.MEMBER_ROLE_DEVELOPER)
# List project users ID
members_list = project.list_members(role=dl.MemberRole.ANNOTATOR)
# Remove project users ID
project.remove_member(email='email@email.com')More about projects SDK on Project.
Datasets
Manage and access datasets within a project.
# Create a dataset
dataset = project.datasets.create(dataset_name='my-dataset-name')
# Print dataset
dataset.print()
# Open datasets on the web
dataset.open_in_web()
# Get a projects datasets list
datasets = project.datasets.list()
# Get the datasets by name
dataset = project.datasets.get(dataset_name='my-dataset-name')
# Get the datasets by ID
dataset = project.datasets.get(dataset_id='my-dataset-id')More about datasets SDK on Datasets.
Items
Upload, download, clone, and manage dataset items.
# Upload items
dataset.items.upload(local_path="/path/to/image.jpg")
# Upload items to a specific folder
dataset.items.upload(local_path="/path/to/image.jpg",remote_path="/path/to/dataset/folder")
# Download items
item.download(local_path="/where/to/save")
# Download items from a specific folder
item.download(local_path="/where/to/save",remote_path="/from/where/to/download")
# Open item on the web
item.open_in_web()
# Clone Items
item.clone(dst_dataset_id='your-dataset-id-number', with_annotations=True, with_metadata=True, with_task_annotations_status=False)
# Get-item-by-ID
item = dataset.items.get (item_id = 'my_item_Id')More about Items SDK is available in the Items section.
Metadata
Add and update custom metadata for items.
Add-metadata
item.metadata [ 'user' ] = dict ()
item.metadata [ 'user'][ 'MyKey' ] = 'MyValue'
item.update()Recipe And Ontology
Manage dataset labels, recipes, and ontologies.
# Add a label
dataset.add_label(label_name='person', color=(34, 6, 231), attributes=['big', 'small'])
# Delete labels
dataset.delete_labels(label_names=['myLabel1', 'Mylabel2'])
# Copy datasets ontology to a new dataset
new_dataset = project.datasets.create(dataset_name='new_dataset_with_ontology',ontology_ids=dataset.ontology_ids)
# Create a new recipe
recipe = dataset.recipes.create(recipe_name='My Recipe', labels=labels))
# Update recipe changes
recipe.update()
# Delete recipe (For deleted datasets)
dataset.recipes.get(recipe_id='my_recipe_id').delete())
# Get the recipe by ID
recipe = dataset.recipes.get(recipe_id='my_recipe_id')
# Get ontology by ID
ontology= recipe.ontologies.get(ontology_id='my_ontology_id')
# Get child label
childLabel = ontology.labels[x].children[y].children[z]
# Change the annotation label to a different label:
annotation.label = "label2"
annotation.update()For more information, read the SDK-Docs for Recipe and Ontology entities.
Annotations
Upload, update, and create annotations.
# Upload annotations
annotations = item.annotations.upload(annotations=local_annotation_path)
# Update annotation changes
annotation = annotation.update()
# Create annotation builder
builder = item.annotations.builder()
# Add box annotation with label person
builder.add(annotation_definition=dl.Box(top=10,left=10,bottom=100, right=100,label='labelName'))
item.annotations.upload(builder)
# Add annotations of type segmentation
builder.add(annotation_definition=dl.Segmentation(geo=mask,label='label1'))
# Add polyline annotation with label person
builder.add(annotation_definition=dl.Polyline(geo=[[80, 40],[100, 120],[110, 130]], label='person'))
# Create a mask for semantic segmentation
mask = np.zeros(shape=(item.height, item.width), dtype=np.uint8)
mask[50:100, 200:250] =For more information, read the SDK-Docs about the Annotation entity.
Filters
Use filters to query items or resources.
# Initiate Filter
filter = dl.Filters()
# Filter only files:
filter.add(field='type', values='file')
# Filter only annotated items:
filter.add(field='annotated', values=True)
# Filter items by name that includes 'dog'
filter.add(field='name', values='dog')
# Filter items by name or directory that includes 'dog'
filter.add(field='filename', values='dog')
# Filter specific directory:
filter.add(field='dir', values='/myDirectory')
# Filter directory items with all subdirectories
filter.add('dir', '/myDirectory/*', method='or')
# Update filtered items (bulk update)
pages = dataset.items.update(filters=filter, update_values=update_values)
# Delete filtered items (bulk delete)
dataset.items.delete(filters=filter)
# Get filtered items list:
items_list = dataset.items.list(filters=filter)
# Filter all items with the annotation type - Box
filters.resource = 'items'
filters.add(field='type', values='file')
filters.add_join(field='type', values='box')
list = dataset.items.list(filters=filters)For more information, read the SDK docs for the Filter entity details or the Sort-and-Filter tutorial.
Task and Assignments
Manage labeling workflows and user assignments. To learn more about Dataloop's tasks and assignments, see Tasks & Assignments.
Some tasks & assignments commands might require importing the datetime.
import datetimeTasks
Manage labeling tasks.
# Create a task
task = dataset.tasks.create(
task_name= 'task_name',
due_date = datetime.datetime(day= 1, month= 1, year= 2029).timestamp(),
assignee_ids =[ 'annotator1@dataloop.ai', 'annotator2@dataloop.ai'])
# Create QA task
task.create_qa_task(
due_date=datetime.datetime(day= 1, month= 1, year= 2029).timestamp(),
assignee_ids=[ 'annotator1@dataloop.ai', 'annotator2@dataloop.ai'])
# Add items to the task:
filters = dl.Filters( field= 'dir', values= '/my/folder/directory')
task.add_items(
filters=filters, assignee_ids=[ 'annotator1@dataloop.ai', 'annotator2@dataloop.ai'])
# Delete a task
task.delete()
# This example shows how to set a single item to status COMPLETED
# Single status update
item = dataset.items.get (item_id=<itemId>);
task = dataset.tasks.get (task_name=<"task_name">);
item.update_status(status=dl.ItemStatus.COMPLETED, task_id=task.id);
# Status can be set to COMPLETED/APPROVE/DISCARD or other statuses that were created as actions on a task by the task creator.
# Get task
project.tasks.get(task_id= 'my-Task-Id')
# Get task items
items_list= task.get_items()
# Get tasks list
task_list = project.tasks.list()Assignments
Manage user assignments.
# Remove items from assignments
assignment. remove_items( filters= filter)
# Redistribute assignments
assignment.redistribute(dl.Workload([dl.WorkloadUnit(assignee_id="annotator1@dataloop.ai", load=50), dl.WorkloadUnit(assignee_id="annotator2@dataloop.ai", load=50)]))
# Reassign assignment
assignment.reassign(assignee_ids['annotator1@dataloop.ai'])
# Get assignment
task.assignments.get(assignment_id= 'my_assignment_Id')
# Get assignment items
items_list= assignment.get_items()
# Get the assignment list of a task
task.assignments.list()
# Get an assignments list of a project
project.assignments.list()For more information, read the SDK Docs for details of the Tasks and Assignment repositories.
Applications
Handle modalities, similarities, and multi-view data.
# Create a modality
item1 = dataset.items.get(item_id='my_item_Id')
item2 = dataset.items.get(item_id='my_2_item_Id')
item1.modalities.create(name='my modality', modality_type=dl.ModalityTypeEnum.OVERLAY, ref=item2.id)
item1.update()
# Create a similarity
target_item = dataset.items.get(filepath='/remote/path/target_item.png')
ref_item1 = dataset.items.get(filepath='/remote/path/product1.jpeg')
ref_item2 = dataset.items.get(filepath='/remote/path/product2.jpeg')
ref_item3 = dataset.items.get(filepath='/remote/path/product3.jpeg')
similarity = dl.Similarity(name='my-product-similarity', ref=target_item.id, items=[ref_item1, ref_item2, ref_item3])
dataset.items.upload(local_path=similarity, remote_path='/products_similarities')
# Create a multi-view
item = dataset.items.get(filepath='/remote/path/original_item.png')
item2 = dataset.items.get(filepath='/remote/path/second_item.png')
multiview = dl.MultiView(name='my-items-multiview', items=[item, item2])
dataset.items.upload(local_path=multiview, remote_path='/remote/path'FaaS
Deploy and manage serverless functions in Dataloop. To learn more about Dataloop's FaaS, see FaaS (Function as a Service).
Packages
Manage code packages and deployments. To learn more about Dataloop's packages, see the package.
# Delete packages
package.delete()
# Push packages
project.packages.push(src_path='/path_to_my_edited code', package_name=package.name)
# to see the package versions
package.versions
# to see the latest package version
package.version
# Deploy package
package.deploy()
# Get package
package = dl.packages.get(package_id='my_package_Id')
# Get packages list
pack_list = dl.packages.list()
# Open package on the web
package.open_in_web()Services
Manage services and bots. To learn more about Dataloop's services, see the service.
# Open service on the web
service.open_in_web()
# to pause the service
service.pause()
# to resume the service
service.resume()
# Create a bot
bot = project.bots.create('bot_name')
# Get services
service = dl.services.get(service_name="my_service_name")
# Get services list
dl.services.list().print()
# Delete service
service.delete()Triggers
Automate actions in response to dataset or item events. To learn more about Dataloop's triggers, see the trigger.
# Delete triggers
trigger.delete()
# Trigger for Items Uploaded to Directory /Input
filters = dl.Filters(field='dir', values='/input')
trigger = service.triggers.create(function_name='run', resource=dl.TriggerResource.ITEM,
actions=dl.TriggerAction.CREATED,
name='items-created-trigger', filters=filters)
# Get triggers
service = dl.triggers.get(trigger_name="my_trigger_name")
# Get triggers lists
dl.triggers.list().print()
# Trigger for Items Uploaded to Directory /Input
filters = dl.Filters(field='dir', values='/input')
trigger = service.triggers.create(function_name='run', resource=dl.TriggerResource.ITEM,
actions=dl.TriggerAction.CREATED,
name='items-created-trigger', filters=filters)