Query your data assets (tables, views, models) discovered by AnomalyArmor.
List Assets
Query Parameters
| Parameter | Type | Description |
|---|
source | string | Filter by data source name |
type | string | Filter by asset type (table, view, model) |
limit | integer | Max items to return (default: 50, max: 100) |
offset | integer | Number of items to skip (default: 0) |
Example Request
curl -H "Authorization: Bearer aa_live_xxx" \
"https://api.anomalyarmor.ai/api/v1/assets?source=snowflake&type=table&limit=10"
Example Response
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"qualified_name": "snowflake.prod.warehouse.orders",
"name": "orders",
"asset_type": "table",
"source": "snowflake",
"database": "prod",
"schema": "warehouse",
"description": "Customer order transactions",
"row_count": 1500000,
"column_count": 24,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-12-04T08:00:00Z"
}
],
"pagination": {
"total": 245,
"limit": 10,
"offset": 0,
"has_more": true
}
}
Get Asset
Retrieve a single asset by qualified name or UUID.
Path Parameters
| Parameter | Type | Description |
|---|
id | string | Qualified name (e.g., snowflake.prod.warehouse.orders) or UUID |
Example Request
curl -H "Authorization: Bearer aa_live_xxx" \
"https://api.anomalyarmor.ai/api/v1/assets/snowflake.prod.warehouse.orders"
Example Response
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"qualified_name": "snowflake.prod.warehouse.orders",
"name": "orders",
"asset_type": "table",
"source": "snowflake",
"database": "prod",
"schema": "warehouse",
"description": "Customer order transactions",
"row_count": 1500000,
"column_count": 24,
"columns": [
{
"name": "order_id",
"data_type": "VARCHAR",
"is_nullable": false,
"is_primary_key": true
},
{
"name": "customer_id",
"data_type": "VARCHAR",
"is_nullable": false
},
{
"name": "order_date",
"data_type": "TIMESTAMP",
"is_nullable": false
}
],
"tags": ["pii", "financial"],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-12-04T08:00:00Z"
}
}
Asset Identification
AnomalyArmor supports two ways to identify assets:
Qualified Name (Primary)
Human-readable, hierarchical identifier:
{source}.{database}.{schema}.{table}
Examples:
snowflake.prod.warehouse.orders
databricks.main.analytics.daily_sales
postgresql.app_db.public.users
Use qualified names in code for readability. They’re stable as long as you don’t rename the underlying table.
UUID (Secondary)
System-generated unique identifier. Use for automation where names may change:
550e8400-e29b-41d4-a716-446655440000
Error Responses
| Status | Code | Description |
|---|
| 404 | ASSET_NOT_FOUND | Asset doesn’t exist or you don’t have access |
| 400 | VALIDATION_ERROR | Invalid qualified name format |
{
"error": {
"code": "ASSET_NOT_FOUND",
"message": "Asset not found",
"details": {
"asset_id": "snowflake.prod.warehouse.orders",
"suggestion": "Check the qualified name format: source.database.schema.table"
}
}
}