For the complete documentation index, see llms.txt. This page is also available as Markdown.

Storages

Cloud storage configuration

Get Storages

get
/storages

Retrieves all storage configurations for your organization

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Query parameters
pageinteger · min: 1Optional

Page number (1-indexed)

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

Items per page (max 100)

Default: 10
Responses
200

Storages retrieved successfully

application/json
statusstringOptionalExample: success
get/storages
curl -X GET "https://imeritapi.ango.ai/v2/storages?page=1&limit=10" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
200

Storages retrieved successfully

{
  "status": "success",
  "data": {
    "storages": [
      {
        "_id": "text",
        "name": "text",
        "provider": "AWS",
        "region": "text",
        "s3AccessType": "IAM_USER",
        "s3RoleArn": "text",
        "s3ExternalId": "text",
        "s3UserArn": "text",
        "host": "text",
        "azureAuthType": "ACCOUNT_KEY",
        "azureTenantId": "text",
        "azureClientId": "text",
        "publicKey": "text",
        "useAccelerateEndpoint": true,
        "organization": "text",
        "createdBy": "text",
        "createdAt": "2026-01-01T00:00:00.000Z"
      }
    ]
  }
}

Create Storage

post
/storages

Creates a new cloud storage configuration

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Body
namestringRequired

Storage configuration display name

providerstring · enumRequiredPossible values:
regionstringOptional

AWS only. Bucket region.

Default: eu-central-1
publicKeystringOptional

Access key ID for AWS (IAM user) and CUSTOM_S3. For AZURE this is the storage account name (required for all Azure auth types).

privateKeystringOptional

Secret access key for AWS (IAM user) and CUSTOM_S3. For AZURE (ACCOUNT_KEY) this is the account key. Write-only, never returned.

s3AccessTypestring · enumOptional

AWS only. IAM_DELEGATED uses STS AssumeRole instead of static keys.

Default: IAM_USERPossible values:
s3RoleArnstringOptional

AWS IAM_DELEGATED only. Role ARN to assume.

s3ExternalIdstringOptional

AWS IAM_DELEGATED only. External ID for the AssumeRole trust policy.

hoststringOptional

CUSTOM_S3 only (required). S3-compatible endpoint URL.

credentialsobjectOptional

GCP only. Service-account JSON object. Write-only, never returned.

azureAuthTypestring · enumOptional

AZURE only.

Default: ACCOUNT_KEYPossible values:
azureTenantIdstringOptional

AZURE SERVICE_PRINCIPAL and MULTI_TENANT.

azureClientIdstringOptional

AZURE SERVICE_PRINCIPAL only.

azureClientSecretstringOptional

AZURE SERVICE_PRINCIPAL only. Write-only, never returned.

useAccelerateEndpointbooleanOptional

AWS only. Use S3 Transfer Acceleration.

Default: false
Responses
200

Storage created successfully

application/json
statusstringOptionalExample: success
post/storages
curl -X POST "https://imeritapi.ango.ai/v2/storages" \
  -H "apikey: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "My S3 Storage",
    "provider": "AWS",
    "region": "us-east-1",
    "publicKey": "YOUR_ACCESS_KEY_ID",
    "privateKey": "YOUR_SECRET_ACCESS_KEY"
  }'
{
  "status": "success",
  "data": {
    "storage": {
      "_id": "text",
      "name": "text",
      "provider": "AWS",
      "region": "text",
      "s3AccessType": "IAM_USER",
      "s3RoleArn": "text",
      "s3ExternalId": "text",
      "s3UserArn": "text",
      "host": "text",
      "azureAuthType": "ACCOUNT_KEY",
      "azureTenantId": "text",
      "azureClientId": "text",
      "publicKey": "text",
      "useAccelerateEndpoint": true,
      "organization": "text",
      "createdBy": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  }
}

Delete Storage

delete
/storages/{storageId}

Soft-deletes a storage configuration (sets the deleted flag; the record is retained).

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Path parameters
storageIdstringRequired

Storage ID

Responses
200

Storage deleted successfully

application/json
statusstringOptionalExample: success
delete/storages/{storageId}
DELETE /v2/storages/{storageId} HTTP/1.1
Host: imeritapi.ango.ai
apikey: YOUR_API_KEY
Accept: */*
{
  "status": "success",
  "data": {
    "storage": {
      "_id": "text",
      "name": "text",
      "provider": "AWS",
      "region": "text",
      "s3AccessType": "IAM_USER",
      "s3RoleArn": "text",
      "s3ExternalId": "text",
      "s3UserArn": "text",
      "host": "text",
      "azureAuthType": "ACCOUNT_KEY",
      "azureTenantId": "text",
      "azureClientId": "text",
      "publicKey": "text",
      "useAccelerateEndpoint": true,
      "organization": "text",
      "createdBy": "text",
      "createdAt": "2026-01-01T00:00:00.000Z"
    }
  }
}

List Storage Files

get
/storages/{storageId}/files

Lists files recursively in a cloud storage bucket. This endpoint allows you to browse and retrieve file listings from your configured storage integrations (AWS S3, Google Cloud Storage, Azure Blob Storage, or Custom S3-compatible storage).

Features:

  • Recursive directory listing

  • Optional signed URL generation for direct file access

  • Automatic retry mechanism for S3 rate limit errors

  • Support for path-based filtering

Use Cases:

  • Browse storage bucket contents before importing

  • Generate signed URLs for batch asset uploads

  • Validate storage configuration and access

  • List available datasets for annotation projects

Authorizations
apikeystringRequired

API key for authentication. Format - apikey YOUR_API_KEY

Path parameters
storageIdstringRequired

Storage configuration ID

Example: 507f1f77bcf86cd799439011
Query parameters
bucketNamestringRequired

Name of the bucket/container to list files from

Example: my-annotation-data
pathstringOptional

Directory path to list files from. Defaults to root directory if not specified.

Default: ""Example: datasets/images/2024
getSignedUrlsstring · enumOptional

Whether to generate pre-signed URLs for each file. Defaults to true.

  • true: Returns pre-signed URLs (default)
  • false: Returns object keys only
Default: trueExample: truePossible values:
retryOnSlowDownstring · enumOptional

Enable automatic retry mechanism for S3 SlowDown errors (rate limiting). When enabled, the API will automatically retry with exponential backoff.

  • true: Retry on rate limit errors (default)
  • false: Fail immediately on rate limit errors
Default: trueExample: truePossible values:
Responses
200

Files retrieved successfully

application/json
statusstringOptionalExample: success
get/storages/{storageId}/files
# List files in root directory with signed URLs
curl -X GET "https://imeritapi.ango.ai/v2/storages/YOUR_STORAGE_ID/files?bucketName=my-bucket&getSignedUrls=true" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"

# List files in specific directory
curl -X GET "https://imeritapi.ango.ai/v2/storages/YOUR_STORAGE_ID/files?bucketName=my-bucket&path=datasets/images/2024" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json"
{
  "status": "success",
  "data": {
    "files": [
      "https://my-bucket.s3.amazonaws.com/datasets/images/2024/img001.jpg?X-Amz-Algorithm=...",
      "https://my-bucket.s3.amazonaws.com/datasets/images/2024/img002.jpg?X-Amz-Algorithm=..."
    ]
  }
}

Last updated