Skip to main content

Documentation Index

Fetch the complete documentation index at: https://avala.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

List and retrieve annotation projects.

List Projects

GET /api/v1/projects/{owner_name}/
Returns all projects belonging to a specific owner that are visible to the authenticated user.

Parameters

NameTypeRequiredDescription
owner_namestringYesUsername of the project owner (path parameter)
namestringNoFilter by project name (query parameter)
orderingstringNoField to order results by (query parameter)
cursorstringNoCursor for pagination (query parameter)
limitintegerNoNumber of results per page (query parameter)

Request

curl "https://api.avala.ai/api/v1/projects/johndoe/" \
  -H "X-Avala-Api-Key: $AVALA_API_KEY"

Response

{
  "next": null,
  "previous": null,
  "results": [
    {
      "uid": "770a9600-a40d-63f6-c938-668877660000",
      "name": "Object Detection",
      "task_type": "image-annotation",
      "status": "active",
      "is_active": true,
      "visibility": "private",
      "is_imported": false,
      "owner_name": "johndoe",
      "short_description": "Detect vehicles and pedestrians",
      "industry_icon": "automotive"
    }
  ]
}

Fields

FieldTypeDescription
uidstring (UUID)Unique identifier for the project
namestringProject name (1-100 characters)
task_typestringType of annotation task assigned to this project
statusstringCurrent project status
is_activebooleanWhether the project is currently active
visibilitystringpublic or private
is_importedbooleanWhether the project was imported from an external source
owner_namestringUsername of the project owner
short_descriptionstringBrief description of the project
industry_iconstringIndustry category icon identifier

Task Types

TypeDescription
image-annotation2D image annotation (bounding boxes, polygons, segmentation)
video-annotationVideo frame-by-frame annotation
point-cloud-annotation3D point cloud annotation with cuboids
point-cloud-objects3D object detection in point clouds

Project Statuses

StatusDescription
pending-approvalAwaiting approval to start
activeCurrently active and accepting annotations
pausedTemporarily paused
canceledCanceled and no longer active
archivedArchived for historical reference
completedAll annotation tasks have been completed

Clone Project from Template

POST /api/v1/projects/create-from-existing/
Create a new project by cloning an existing template project onto a new dataset. The new project inherits the template’s task definitions, annotation configuration, and industry settings. The project is created in pending-approval status.
Requires IsCustomer or IsStaff permission. Coworker accounts cannot clone projects.

Request Body

NameTypeRequiredDescription
source_project_uidstring (UUID)YesUID of the template project to clone
namestringYesName for the new project (must be unique per owner)
image_dataset_uidstring (UUID)NoUID of the image dataset to attach
lidar_dataset_uidstring (UUID)NoUID of the LiDAR dataset (for 3D projects)
slice_uidstring (UUID)NoUID of a slice to attach instead of a full dataset
copy_collaboratorsbooleanNoCopy collaborators from the template (default: true)

Request

curl -X POST "https://api.avala.ai/api/v1/projects/create-from-existing/" \
  -H "X-Avala-Api-Key: $AVALA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_project_uid": "770a9600-a40d-63f6-c938-668877660000",
    "name": "Batch 2026-04-09",
    "image_dataset_uid": "880b0700-b51e-74g7-d049-779988770000"
  }'

Response

{
  "uid": "990c1800-c62f-85h8-e150-880099880000",
  "name": "Batch 2026-04-09",
  "status": "pending-approval",
  "task_type": "image-annotation",
  "owner_name": "dev@acme.com",
  "visibility": "private"
}

Approve Project

POST /api/v1/projects/{uid}/approve/
Approve a project to start annotation work. This triggers the full task creation pipeline: tasks, work units, and work batches are created automatically. Coworkers can then claim and annotate the tasks.
Approving a project starts billable annotation work. This action cannot be undone — use pause or cancel to stop work after approval.

Requirements

  • Plan: Your organization must be on the PRO or ENTERPRISE plan. BASIC plan organizations receive a 403 error.
  • Scope: API keys must include the projects.write scope.
  • Ownership: You must own the project (or be staff).
  • Status: The project must be in pending-approval status.

Parameters

NameTypeRequiredDescription
uidstring (UUID)YesProject UID (path parameter)

Request

curl -X POST "https://api.avala.ai/api/v1/projects/990c1800-c62f-85h8-e150-880099880000/approve/" \
  -H "X-Avala-Api-Key: $AVALA_API_KEY"

Response

{
  "uid": "990c1800-c62f-85h8-e150-880099880000",
  "name": "Batch 2026-04-09",
  "status": "active",
  "task_type": "image-annotation",
  "owner_name": "dev@acme.com",
  "visibility": "private"
}

Error Responses

StatusCodeDescription
403plan_insufficientOrganization is on BASIC plan. Upgrade to PRO or ENTERPRISE.
403scope_requiredAPI key is missing the projects.write scope.
400Project is not in pending-approval status (invalid state transition).
404Project not found or not owned by the authenticated user.
{
  "detail": "Project approval requires a PRO or ENTERPRISE plan.",
  "code": "plan_insufficient",
  "doc_url": "https://docs.avala.ai/api/errors#plan_insufficient"
}

Pause / Resume / Cancel / Archive Project

POST /api/v1/projects/{uid}/{action}/
Change a project’s status. Available actions depend on the current status.
ActionFrom StatusTo StatusDescription
pauseactivepausedTemporarily stop annotation work
resumepausedactiveResume paused annotation work
cancelactive, pausedcanceledPermanently stop annotation work
archivecompleted, canceledarchivedArchive for historical reference
Pause, resume, cancel, and archive do not require specific API key scopes. Only the approve action requires the projects.write scope.

Request

curl -X POST "https://api.avala.ai/api/v1/projects/990c1800-c62f-85h8-e150-880099880000/pause/" \
  -H "X-Avala-Api-Key: $AVALA_API_KEY"

Response

Returns the updated project object (same shape as the approve response).

Error Responses

Not Found (404)

{
  "detail": "Not found."
}
Returned when the specified owner does not exist or has no visible projects.

Permission Denied (403)

{
  "detail": "You do not have permission to perform this action."
}
Returned when the authenticated user does not have access to the requested projects.

Unauthorized (401)

{
  "detail": "Invalid API key."
}
Returned when the X-Avala-Api-Key header is missing or contains an invalid key.