Projects

Project management endpoints

List all projects

get

Retrieves a paginated list of projects accessible to the current user. Returns only essential fields: _id, name, description, organization, createdAt.

Authorizations
Query parameters
pageinteger · min: 1Optional

Page number (1-indexed)

Default: 1
limitinteger · min: 1 · max: 100Optional

Items per page (max 100)

Default: 10
sortstringOptional

Sort field (prefix with - for descending)

Default: -createdAt
Responses
200

Projects retrieved successfully

application/json
get
curl -X GET "https://imeritapi.ango.ai/v2/listProjects?page=1&limit=10&sort=-createdAt" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
{
  "status": "success",
  "data": {
    "projects": [
      {
        "_id": "507f1f77bcf86cd799439011",
        "name": "My Annotation Project",
        "description": "Project description",
        "organization": "507f1f77bcf86cd799439012",
        "createdAt": "2025-01-15T10:30:00.000Z"
      }
    ],
    "total": 1
  }
}

Create a new project

post

Creates a new annotation project with specified configuration

Authorizations
Body
namestring · min: 1RequiredExample: My New Project
descriptionstringOptional
typestring · enumOptionalDefault: angoPossible values:
benchmarkEnabledbooleanOptional
benchmarkRationumberOptional
instructionsstringOptional
ocrLanguagestringOptional
idleTimeoutnumberOptional
projectPluginsobjectOptional
pluginPresetsobject[]Optional
errorCodesEnabledbooleanOptional
errorSchemaobjectOptional
exportStorageIdstringOptional
exportStorageBucketstringOptional
exportStoragePathstringOptional
exportStorageEnabledbooleanOptional
taskSkipEnabledbooleanOptional
unassignSkippedTaskbooleanOptional
gcSyncEnabledbooleanOptional
Responses
201

Project created successfully

application/json
post
curl -X POST "https://imeritapi.ango.ai/v2/project" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Annotation Project",
    "description": "Project for image annotation",
    "categorySchema": {
      "tools": [],
      "classifications": []
    }
  }'
{
  "status": "success",
  "data": {
    "project": {
      "_id": "text",
      "name": "text",
      "description": "text",
      "type": "ango",
      "owner": "text",
      "organization": "text",
      "categorySchema": {
        "tools": [
          {}
        ],
        "classifications": [
          {}
        ],
        "relations": [
          {}
        ]
      },
      "stages": [
        {
          "id": "text",
          "name": "text",
          "type": "Label",
          "next": [
            "text"
          ]
        }
      ],
      "assignedTo": [
        {
          "assignee": "text",
          "role": "Manager"
        }
      ],
      "batches": [
        {
          "name": "text",
          "description": "text",
          "color": "#FF5733"
        }
      ],
      "queueVersion": 2,
      "assetCount": 1,
      "benchmarkEnabled": true,
      "benchmarkRatio": 1,
      "instructions": "text",
      "ocrLanguage": "text",
      "idleTimeout": 1,
      "projectPlugins": {},
      "pluginPresets": [
        {}
      ],
      "errorCodesEnabled": true,
      "errorSchema": {},
      "exportStorageId": "text",
      "exportStorageBucket": "text",
      "exportStoragePath": "text",
      "exportStorageEnabled": true,
      "taskSkipEnabled": true,
      "unassignSkippedTask": true,
      "gcSyncEnabled": true,
      "deleted": true,
      "createdAt": "2025-10-07T12:40:35.952Z",
      "updatedAt": "2025-10-07T12:40:35.952Z"
    }
  }
}

Get project details

get

Retrieves complete details for a specific project

Authorizations
Path parameters
projectIdstringRequired

Project ID

Responses
200

Project details retrieved successfully

application/json
get
curl -X GET "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
{
  "status": "success",
  "data": {
    "project": {
      "_id": "text",
      "name": "text",
      "description": "text",
      "type": "ango",
      "owner": "text",
      "organization": "text",
      "categorySchema": {
        "tools": [
          {}
        ],
        "classifications": [
          {}
        ],
        "relations": [
          {}
        ]
      },
      "stages": [
        {
          "id": "text",
          "name": "text",
          "type": "Label",
          "next": [
            "text"
          ]
        }
      ],
      "assignedTo": [
        {
          "assignee": "text",
          "role": "Manager"
        }
      ],
      "batches": [
        {
          "name": "text",
          "description": "text",
          "color": "#FF5733"
        }
      ],
      "queueVersion": 2,
      "assetCount": 1,
      "benchmarkEnabled": true,
      "benchmarkRatio": 1,
      "instructions": "text",
      "ocrLanguage": "text",
      "idleTimeout": 1,
      "projectPlugins": {},
      "pluginPresets": [
        {}
      ],
      "errorCodesEnabled": true,
      "errorSchema": {},
      "exportStorageId": "text",
      "exportStorageBucket": "text",
      "exportStoragePath": "text",
      "exportStorageEnabled": true,
      "taskSkipEnabled": true,
      "unassignSkippedTask": true,
      "gcSyncEnabled": true,
      "deleted": true,
      "createdAt": "2025-10-07T12:40:35.952Z",
      "updatedAt": "2025-10-07T12:40:35.952Z"
    }
  }
}

Update project

post

Updates project configuration and settings

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
namestring · min: 1Optional
descriptionstringOptional
benchmarkEnabledbooleanOptional
benchmarkRationumberOptional
instructionsstringOptional
ocrLanguagestringOptional
idleTimeoutnumberOptional
projectPluginsobjectOptional
pluginPresetsobject[]Optional
errorCodesEnabledbooleanOptional
errorSchemaobjectOptional
exportStorageIdstringOptional
exportStorageBucketstringOptional
exportStoragePathstringOptional
exportStorageEnabledbooleanOptional
taskSkipEnabledbooleanOptional
unassignSkippedTaskbooleanOptional
gcSyncEnabledbooleanOptional
deletedbooleanOptional
Responses
200

Project updated successfully

application/json
post
curl -X POST "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Project Name",
    "description": "Updated description"
  }'
{
  "status": "success",
  "data": {
    "project": {
      "_id": "text",
      "name": "text",
      "description": "text",
      "type": "ango",
      "owner": "text",
      "organization": "text",
      "categorySchema": {
        "tools": [
          {}
        ],
        "classifications": [
          {}
        ],
        "relations": [
          {}
        ]
      },
      "stages": [
        {
          "id": "text",
          "name": "text",
          "type": "Label",
          "next": [
            "text"
          ]
        }
      ],
      "assignedTo": [
        {
          "assignee": "text",
          "role": "Manager"
        }
      ],
      "batches": [
        {
          "name": "text",
          "description": "text",
          "color": "#FF5733"
        }
      ],
      "queueVersion": 2,
      "assetCount": 1,
      "benchmarkEnabled": true,
      "benchmarkRatio": 1,
      "instructions": "text",
      "ocrLanguage": "text",
      "idleTimeout": 1,
      "projectPlugins": {},
      "pluginPresets": [
        {}
      ],
      "errorCodesEnabled": true,
      "errorSchema": {},
      "exportStorageId": "text",
      "exportStorageBucket": "text",
      "exportStoragePath": "text",
      "exportStorageEnabled": true,
      "taskSkipEnabled": true,
      "unassignSkippedTask": true,
      "gcSyncEnabled": true,
      "deleted": true,
      "createdAt": "2025-10-07T12:40:35.952Z",
      "updatedAt": "2025-10-07T12:40:35.952Z"
    }
  }
}

Delete project

delete

Soft deletes a project by marking it as deleted without permanently removing it from the database

Authorizations
Path parameters
projectIdstringRequired

Project ID

Responses
200

Project deleted successfully

application/json
delete
curl -X DELETE "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
{
  "status": "success",
  "data": {
    "message": "text"
  }
}

Update project assignees

post

Assign or update users assigned to a project with specific roles

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
rolestring · enumRequiredPossible values:
assigneesstring[]Required

Array of user emails

Responses
200

Assignees updated successfully

application/json
post
curl -X POST "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011/assigned" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "Labeler",
    "assignees": ["[email protected]", "[email protected]"]
  }'
{
  "status": "success",
  "data": {
    "project": {
      "_id": "text",
      "name": "text",
      "description": "text",
      "type": "ango",
      "owner": "text",
      "organization": "text",
      "categorySchema": {
        "tools": [
          {}
        ],
        "classifications": [
          {}
        ],
        "relations": [
          {}
        ]
      },
      "stages": [
        {
          "id": "text",
          "name": "text",
          "type": "Label",
          "next": [
            "text"
          ]
        }
      ],
      "assignedTo": [
        {
          "assignee": "text",
          "role": "Manager"
        }
      ],
      "batches": [
        {
          "name": "text",
          "description": "text",
          "color": "#FF5733"
        }
      ],
      "queueVersion": 2,
      "assetCount": 1,
      "benchmarkEnabled": true,
      "benchmarkRatio": 1,
      "instructions": "text",
      "ocrLanguage": "text",
      "idleTimeout": 1,
      "projectPlugins": {},
      "pluginPresets": [
        {}
      ],
      "errorCodesEnabled": true,
      "errorSchema": {},
      "exportStorageId": "text",
      "exportStorageBucket": "text",
      "exportStoragePath": "text",
      "exportStorageEnabled": true,
      "taskSkipEnabled": true,
      "unassignSkippedTask": true,
      "gcSyncEnabled": true,
      "deleted": true,
      "createdAt": "2025-10-07T12:40:35.952Z",
      "updatedAt": "2025-10-07T12:40:35.952Z"
    }
  }
}

Create asset builder template

post

Creates a template for asset builder functionality

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
namestringRequired
configobjectRequired
Responses
200

Template created successfully

application/json
post
POST /v2/project/{projectId}/assetBuilderTemplates HTTP/1.1
Host: imeritapi.ango.ai
apikey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 27

{
  "name": "text",
  "config": {}
}
200

Template created successfully

{
  "status": "success",
  "data": {
    "template": {
      "_id": "text",
      "name": "text",
      "config": {}
    }
  }
}

Get project performance metrics

post

Retrieves performance statistics and metrics for a project

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
startDatestring · date-timeOptional
endDatestring · date-timeOptional
usersstring[]Optional
Responses
200

Performance metrics retrieved successfully

application/json
post
POST /v2/performance/{projectId} HTTP/1.1
Host: imeritapi.ango.ai
apikey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 94

{
  "startDate": "2025-10-07T12:40:35.952Z",
  "endDate": "2025-10-07T12:40:35.952Z",
  "users": [
    "text"
  ]
}
200

Performance metrics retrieved successfully

{
  "status": "success",
  "data": {
    "performance": {}
  }
}

Upload project instructions

post

Uploads instruction file for a project (PDF format only)

Authorizations
Path parameters
projectIdstringRequired

Project ID

Query parameters
storageIdstringOptional

Custom storage ID

bucketstringOptional

Custom bucket name

Body
filestring · binaryRequired

Instruction file to upload

Responses
200

Instructions uploaded successfully

application/json
post
POST /v2/project/{projectId}/instructions HTTP/1.1
Host: imeritapi.ango.ai
apikey: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17

{
  "file": "binary"
}
200

Instructions uploaded successfully

{
  "status": "success",
  "data": {
    "project": {
      "_id": "text",
      "name": "text",
      "description": "text",
      "type": "ango",
      "owner": "text",
      "organization": "text",
      "categorySchema": {
        "tools": [
          {}
        ],
        "classifications": [
          {}
        ],
        "relations": [
          {}
        ]
      },
      "stages": [
        {
          "id": "text",
          "name": "text",
          "type": "Label",
          "next": [
            "text"
          ]
        }
      ],
      "assignedTo": [
        {
          "assignee": "text",
          "role": "Manager"
        }
      ],
      "batches": [
        {
          "name": "text",
          "description": "text",
          "color": "#FF5733"
        }
      ],
      "queueVersion": 2,
      "assetCount": 1,
      "benchmarkEnabled": true,
      "benchmarkRatio": 1,
      "instructions": "text",
      "ocrLanguage": "text",
      "idleTimeout": 1,
      "projectPlugins": {},
      "pluginPresets": [
        {}
      ],
      "errorCodesEnabled": true,
      "errorSchema": {},
      "exportStorageId": "text",
      "exportStorageBucket": "text",
      "exportStoragePath": "text",
      "exportStorageEnabled": true,
      "taskSkipEnabled": true,
      "unassignSkippedTask": true,
      "gcSyncEnabled": true,
      "deleted": true,
      "createdAt": "2025-10-07T12:40:35.952Z",
      "updatedAt": "2025-10-07T12:40:35.952Z"
    }
  }
}