Assets

Asset upload and management

Get Signed Upload URL

get
/getUploadUrl

Generates a signed PUT URL for uploading files directly to S3

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

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
get
/getUploadUrl
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
/getSignedUrl

Generates a signed GET URL for downloading files from S3

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Query parameters
urlstringRequired

Asset URL to sign

storageIdstringOptional

Storage ID

Responses
get
/getSignedUrl
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
/project/{projectId}/cloud

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

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Path parameters
projectIdstringRequired

Project ID

Query parameters
batchesstringOptional

JSON stringified array of batch names

Body
uploadLocalstring · enumOptional

Whether to download and store assets locally.

  • "true": Download assets from cloud URLs and store locally
  • "false": Keep assets in cloud (reference URLs only) Default: "false" for cloud imports
Default: falsePossible values:
prioritynumber · min: -1000 · max: 1000Optional

Task priority for queue ordering (higher values = higher priority)

Default: 0
Responses
post
/project/{projectId}/cloud
curl -X POST "https://imeritapi.ango.ai/v2/project/507f1f77bcf86cd799439011/cloud" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": [
      {
        "data": "https://my-bucket.s3.amazonaws.com/images/img001.jpg",
        "externalId": "IMG-001"
      },
      {
        "data": "https://my-bucket.s3.amazonaws.com/images/img002.jpg",
        "externalId": "IMG-002"
      }
    ]
  }'
{
  "status": "success",
  "data": {
    "assets": {
      "assetsCreated": 1,
      "tasksCreated": 1,
      "preLabelsCount": 1,
      "validPreLabelsCount": 1
    }
  }
}

Upload Chat Assets

post
/project/{projectId}/chat

Uploads chat/conversation assets for chat annotation projects

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

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
post
/project/{projectId}/chat
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
/project/{projectId}/assets

Retrieves assets for a specific project with optional filtering

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

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
/project/{projectId}/assets
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-12-06T20:46:59.269Z",
        "createdBy": "text"
      }
    ],
    "total": 1
  }
}

Delete Assets

delete
/project/{projectId}/assets

Deletes multiple assets from a project

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Path parameters
projectIdstringRequired

Project ID

Body
assetsstring[]Required
Responses
200

Assets deleted successfully

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

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

Assets deleted successfully

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

Update Asset

post
/assets/{assetId}

Updates asset metadata or properties

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Path parameters
assetIdstringRequired

Asset ID

Body
metadataobjectOptional
contextDataobjectOptional
datastringOptional
overlaystring[]Optional
externalIdstringOptional
Responses
200

Asset updated successfully

application/json
post
/assets/{assetId}
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-12-06T20:46:59.269Z",
      "createdBy": "text"
    }
  }
}

Assign Batches to Assets

post
/assignBatches

Assigns batch names to existing assets

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

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

Batches assigned successfully

application/json
post
/assignBatches
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"
      ]
    }
  }
}

Last updated