Skip to main content
Automate your entire annotation lifecycle through the Avala API. This guide walks through the complete flow from raw data to exported annotations.
This guide requires a PRO or ENTERPRISE organization plan. Contact your Avala account manager to upgrade.

Prerequisites

  • An Avala account with an API key (see Authentication)
  • API key with scopes: datasets.read, datasets.write, projects.read, projects.write, exports.create, work_batches.read
  • A template project set up by your Avala team (defines annotation types, task config, and quality settings)

Overview

Step 1: Upload Your Data

Upload a dataset with files via presigned S3 URLs.
For large uploads, use the Python SDK’s avala datasets upload CLI command which handles retries and parallelism automatically.

Step 2: Clone a Template Project

Create a new project by cloning a pre-configured template onto your dataset. The template defines the annotation types, task configuration, and quality settings.
Your Avala team will provide the source_project_uid for your template. Each template is pre-configured for your annotation type (bounding boxes, polygons, cuboids, etc.).

Step 3: Approve the Project

Approving starts annotation work. This triggers the full pipeline: task creation, work batches, and coworker assignment.
Approving a project starts billable annotation work. Use pause or cancel to stop work after approval.

Step 4: Monitor Progress

Polling

Check project metrics to track annotation progress:
Set up webhooks to receive real-time notifications instead of polling:
See Webhooks for event types, signature verification, and retry behavior.

Step 5: Export Results

Once annotations are complete, export them:

Complete Example

Here is the full pipeline in one script:

Error Handling

Your pipeline should handle these error codes: See Error Codes for the full reference.

Next Steps