Skip to main content
Projects are workspaces for managing annotation tasks, team collaboration, and workflow configuration in Avala.

Overview

A project represents a discrete annotation or labeling effort. Projects help you:
  • Organize related tasks and datasets
  • Configure annotation workflows
  • Manage team assignments
  • Track progress and quality metrics
  • Define task types and label schemas
Each project has a unique identifier (uid), a name, status, and timestamps for creation and updates.

Project structure

interface Project {
  uid: string;
  name: string;
  status: string | null;
  createdAt: string | null;
  updatedAt: string | null;
}

Listing projects

Retrieve all projects accessible to your account:
const page = await avala.projects.list({
  limit: 25
});

for (const project of page.items) {
  console.log(`${project.name} (${project.status})`);
}

// Handle pagination
if (page.hasMore) {
  const nextPage = await avala.projects.list({
    cursor: page.nextCursor,
    limit: 25
  });
}

Pagination

Projects are returned in paginated responses:
limit
number
Maximum number of projects to return (default: 20)
cursor
string
Cursor for fetching the next page of results
The response includes hasMore, nextCursor, and previousCursor fields for navigation.

Getting a project

Retrieve detailed information about a specific project:
const project = await avala.projects.get('project_uid_here');

console.log(project.name);
console.log(project.status);
console.log(project.createdAt);

Working with projects and tasks

Projects are closely related to tasks. You can filter tasks by project:
1

Get the project

First, retrieve the project you want to work with:
const project = await avala.projects.get('project_uid');
2

List tasks for the project

Use the tasks resource to filter by project:
const tasks = await avala.tasks.list({
  project: project.uid,
  status: 'completed'
});

console.log(`Found ${tasks.items.length} completed tasks`);

Project status

Projects track their lifecycle through status values:
The project is currently in progress and accepting new tasks
All tasks have been finished and the project is closed
The project is temporarily on hold
The project has been archived for historical reference

Common workflows

const projects = await avala.projects.list();

for (const project of projects.items) {
  console.log(project.name);
}

Response format

All project list operations return a paginated response:
interface CursorPage<Project> {
  items: Project[];
  nextCursor: string | null;
  previousCursor: string | null;
  hasMore: boolean;
}
Use hasMore to determine if additional pages are available.

Integration with other resources

Projects connect to multiple Avala resources:

Tasks

Projects contain annotation tasks. Filter tasks by project UID.

Exports

Export project annotations and results using the exports resource.

Agents

Configure AI agents to automate workflows within a project.

Quality Targets

Set quality metrics and thresholds for project deliverables.

Best practices

  • Organize by purpose: Create separate projects for training, validation, and testing datasets
  • Monitor status: Regularly check project status to track progress
  • Use pagination: Always handle paginated responses when listing projects
  • Link resources: Associate tasks, agents, and quality targets with projects for better organization
Project UIDs are stable identifiers. Store them in your application to reference projects consistently.

Build docs developers (and LLMs) love