Assets

Asset upload and management

Get signed upload URL

get

Generates a signed PUT URL for uploading files directly to S3

Authorizations
Query parameters
namestringRequired

File name with extension

projectstringRequired

Project ID

typestring · enumOptional

File type (determines S3 path)

Possible values:
storageIdstringOptional

Custom storage ID

bucketstringOptional

Custom bucket name

Responses
201

Upload URL generated successfully

application/json
get
curl -X GET "https://imeritapi.ango.ai/v2/getUploadUrl?name=image.jpg&project=507f1f77bcf86cd799439011&type=assets" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
201

Upload URL generated successfully

{
  "status": "success",
  "data": {
    "uploadUrl": "https://bucket.s3.amazonaws.com/project/assets/file.jpg?X-Amz-Signature=..."
  }
}

Get signed download URL

get

Generates a signed GET URL for downloading files from S3

Authorizations
Query parameters
urlstringRequired

Asset URL to sign

storageIdstringOptional

Storage ID

Responses
201

Signed URL generated successfully

application/json
get
curl -X GET "https://imeritapi.ango.ai/v2/getSignedUrl?url=https://bucket.s3.amazonaws.com/project/assets/image.jpg" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
201

Signed URL generated successfully

{
  "status": "success",
  "data": {
    "signedUrl": "text"
  }
}

Import assets from cloud

post

Imports assets from cloud storage (S3, GCS, Azure) and creates tasks

Authorizations
Path parameters
projectIdstringRequired

Project ID

Query parameters
batchesstringOptional

JSON stringified array of batch names

Body
uploadLocalstring · enumOptional

Upload locally instead of cloud

Possible values:
prioritynumber · min: -1000 · max: 1000Optional
Responses
201

Assets imported successfully

application/json
post
curl -X POST "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011/cloud?batches=%5B%22Batch1%22%5D" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": [
      {
        "data": "https://example.com/image1.jpg",
        "externalId": "image-001",
        "batches": ["Batch1"],
        "metadata": {"category": "cat"}
      },
      {
        "data": "https://example.com/image2.jpg",
        "externalId": "image-002"
      }
    ],
    "uploadLocal": "false",
    "priority": 0
  }'
{
  "status": "success",
  "data": {
    "assets": {
      "assetsCreated": 1,
      "tasksCreated": 1,
      "preLabelsCount": 1,
      "validPreLabelsCount": 1
    }
  }
}

Upload chat assets

post

Uploads chat/conversation assets for chat annotation projects

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
filestring · binaryOptional

JSON file with conversations

conversationsstringOptional

JSON stringified conversations array

storageIdstringOptional
bucketstringOptional
batchesstringOptional

JSON stringified batch names

llmConfigstringOptional

LLM configuration JSON

numberOfConversationsnumberOptional
namingStrategystringOptional
prioritynumberOptional
Responses
201

Chat assets uploaded successfully

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

{
  "file": "binary",
  "conversations": "text",
  "storageId": "text",
  "bucket": "text",
  "batches": "text",
  "llmConfig": "text",
  "numberOfConversations": 1,
  "namingStrategy": "text",
  "priority": 1
}
201

Chat assets uploaded successfully

{
  "status": "success",
  "data": {
    "assets": {
      "assetsCreated": 1,
      "tasksCreated": 1,
      "preLabelsCount": 1,
      "validPreLabelsCount": 1
    }
  }
}

Get project assets

get

Retrieves assets for a specific project with optional filtering

Authorizations
Path parameters
projectIdstringRequired

Project ID

Query parameters
pageinteger · min: 1Optional

Page number (1-indexed)

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

Items per page (max 100)

Default: 10
filtersstringOptional

JSON stringified filter object

externalIdstringOptional

Filter by external ID

batchesstringOptional

Filter by batch names

Responses
200

Assets retrieved successfully

application/json
get
curl -X GET "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011/assets?page=1&limit=10&externalId=image-001" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
200

Assets retrieved successfully

{
  "status": "success",
  "data": {
    "assets": [
      {
        "_id": "text",
        "data": "text",
        "dataset": [
          "text"
        ],
        "overlay": [
          "text"
        ],
        "project": "text",
        "organization": "text",
        "externalId": "text",
        "batches": [
          "text"
        ],
        "metadata": {},
        "contextData": {},
        "labelTasks": [
          "text"
        ],
        "deleted": true,
        "createdAt": "2025-10-07T12:40:36.976Z",
        "createdBy": "text"
      }
    ],
    "total": 1
  }
}

Bulk delete assets

delete

Deletes multiple assets from a project

Authorizations
Path parameters
projectIdstringRequired

Project ID

Body
assetIdsstring[]Required
Responses
200

Assets deleted successfully

application/json
delete
DELETE /v2/project/{projectId}/assets HTTP/1.1
Host: imeritapi.ango.ai
apikey: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 21

{
  "assetIds": [
    "text"
  ]
}
200

Assets deleted successfully

{
  "status": "success",
  "data": {
    "deleted": 1,
    "failed": 1
  }
}

Update asset

post

Updates asset metadata or properties

Authorizations
Path parameters
assetIdstringRequired

Asset ID

Body
metadataobjectOptional
contextDataobjectOptional
datastringOptional
overlaystring[]Optional
externalIdstringOptional
Responses
200

Asset updated successfully

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

{
  "metadata": {},
  "contextData": {},
  "data": "text",
  "overlay": [
    "text"
  ],
  "externalId": "text"
}
200

Asset updated successfully

{
  "status": "success",
  "data": {
    "asset": {
      "_id": "text",
      "data": "text",
      "dataset": [
        "text"
      ],
      "overlay": [
        "text"
      ],
      "project": "text",
      "organization": "text",
      "externalId": "text",
      "batches": [
        "text"
      ],
      "metadata": {},
      "contextData": {},
      "labelTasks": [
        "text"
      ],
      "deleted": true,
      "createdAt": "2025-10-07T12:40:36.976Z",
      "createdBy": "text"
    }
  }
}

Assign batches to assets

post

Assigns batch names to existing assets

Authorizations
Body
assetIdsstring[]Required
batchesstring[]Required
modestring · enumOptionalDefault: addPossible values:
Responses
200

Batches assigned successfully

application/json
post
curl -X POST "https://imeritapi.ango.ai/v2/assignBatches" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "507f1f77bcf86cd799439011",
    "assets": ["asset123", "asset456"],
    "batches": ["Batch1", "Batch2"]
  }'
200

Batches assigned successfully

{
  "status": "success",
  "data": {
    "assets": {
      "modifiedCount": 1,
      "batches": [
        "text"
      ]
    }
  }
}