Traverse declared asset dependents
GET /api/v1/assets/{id}/impact
Reverse breadth-first traversal of explicit current observation dependencies, referencing tenant asset IDs. Cycles are deduplicated. Unknown references are counted, not inferred. At most 5,000 tenant assets and 100,000 resolved relationships; larger graphs return 409. Truncation is explicit. Relationships are declared evidence, not verified runtime coupling or a complete dependency graph.
Allowed roles: admin, analyst, viewer.
Authentication
The following OpenAPI alternatives describe accepted authentication. Browser mutations also require the canonical Origin header.
[
{
"organizationCredential": []
},
{
"browserSession": []
}
]
Parameters
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "maxDepth",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
{
"name": "maxNodes",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 200
}
}
]
Request body
No request body is defined.
Responses
{
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"root": {
"type": "object"
},
"direction": {
"const": "dependents"
},
"relationshipBasis": {
"const": "declared-observation-dependencies"
},
"directDependencies": {
"type": "array",
"items": {
"type": "object"
}
},
"directDependentCount": {
"type": "integer"
},
"dependents": {
"type": "array",
"items": {
"type": "object"
}
},
"returnedDependents": {
"type": "integer"
},
"truncated": {
"type": "boolean"
},
"truncationReasons": {
"type": "array",
"items": {
"enum": [
"depth",
"nodes"
]
}
},
"limits": {
"type": "object",
"properties": {
"maxDepth": {
"type": "integer"
},
"maxNodes": {
"type": "integer"
}
},
"required": []
},
"graph": {
"type": "object",
"properties": {
"assets": {
"type": "integer"
},
"resolvedRelationships": {
"type": "integer"
},
"unresolvedReferences": {
"type": "integer"
}
},
"required": []
},
"rootUnresolvedReferences": {
"type": "integer"
}
},
"required": [
"root",
"direction",
"relationshipBasis",
"directDependencies",
"directDependentCount",
"dependents",
"returnedDependents",
"truncated",
"truncationReasons",
"limits",
"graph",
"rootUnresolvedReferences"
]
}
}
}
},
"400": {
"description": "Validation error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Missing/expired/revoked credential",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Insufficient role",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "State or idempotency conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"413": {
"description": "Body too large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"415": {
"description": "Unsupported media type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"429": {
"description": "Request budget exhausted; respect Retry-After",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"headers": {
"Retry-After": {
"schema": {
"type": "integer",
"minimum": 1
},
"description": "Seconds until sufficient budget is expected; concurrent traffic may consume replenished capacity."
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"503": {
"description": "Not configured",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
References such as #/components/schemas/Asset resolve in shared schemas. Download the OpenAPI contract for client generation. This page is generated; it describes the implemented development API, not planned endpoints.