Skip to content

Search the resource inventory

GET
/api/v1/resources
curl --request GET \
--url https://api.aletheia-ops.com/api/v1/resources \
--header 'Authorization: Bearer <token>'

OK

Media typeapplication/json

GET /resources response

object
items
Array<object>

Public shape of a discovered resource

object
id
string
aws_account_id
string
region
string
resource_type
string
native_id
string
arn
string
name
string
tags
object
key
additional properties
string
configuration
object
key
additional properties
any
config_hash
string
status
string
management_state
string
first_discovered_at
string format: date-time
last_seen_at
string format: date-time
last_changed_at
string format: date-time
deleted_at
string format: date-time
next_cursor
string
total
integer
facets

Are the grouped counts backing the filter rail

object
resource_type
Array<object>

One facet value and its match count

object
value
string
count
integer
aws_account_id
Array<object>

One facet value and its match count

object
value
string
count
integer
region
Array<object>

One facet value and its match count

object
value
string
count
integer
status
Array<object>

One facet value and its match count

object
value
string
count
integer
freshness

Machine-readable data-freshness block carried by every inventory response (§1.6)

object
oldest_successful_scan_at
string format: date-time
stale_accounts
Array<object>

One connected account whose data is older than its scan interval

object
aws_account_id
string
account_id
string
name
string
scan_interval_minutes
integer
last_successful_scan_at
string format: date-time
Examplegenerated
{
"items": [
{
"id": "example",
"aws_account_id": "example",
"region": "example",
"resource_type": "example",
"native_id": "example",
"arn": "example",
"name": "example",
"tags": {
"additionalProperty": "example"
},
"configuration": {},
"config_hash": "example",
"status": "example",
"management_state": "example",
"first_discovered_at": "2026-04-15T12:00:00Z",
"last_seen_at": "2026-04-15T12:00:00Z",
"last_changed_at": "2026-04-15T12:00:00Z",
"deleted_at": "2026-04-15T12:00:00Z"
}
],
"next_cursor": "example",
"total": 1,
"facets": {
"resource_type": [
{
"value": "example",
"count": 1
}
],
"aws_account_id": [
{
"value": "example",
"count": 1
}
],
"region": [
{
"value": "example",
"count": 1
}
],
"status": [
{
"value": "example",
"count": 1
}
]
},
"freshness": {
"oldest_successful_scan_at": "2026-04-15T12:00:00Z",
"stale_accounts": [
{
"aws_account_id": "example",
"account_id": "example",
"name": "example",
"scan_interval_minutes": 1,
"last_successful_scan_at": "2026-04-15T12:00:00Z"
}
]
}
}

No valid credential was presented, or it has expired.

Media typeapplication/json
object
code
required

Stable, machine-readable identifier. Branch on this.

string
message
required

Human-readable explanation. Safe to display; do not parse.

string
Examples
{
"code": "unauthorized",
"message": "authentication required"
}

Authenticated, but not permitted to perform this action.

Media typeapplication/json
object
code
required

Stable, machine-readable identifier. Branch on this.

string
message
required

Human-readable explanation. Safe to display; do not parse.

string
Examples
{
"code": "forbidden",
"message": "you do not have permission to perform this action"
}

An unexpected failure. Diagnostic detail is logged server-side and deliberately not returned. Quote the X-Request-Id response header when reporting one.

Media typeapplication/json
object
code
required

Stable, machine-readable identifier. Branch on this.

string
message
required

Human-readable explanation. Safe to display; do not parse.

string
Examples
Exampleinternal_error
{
"code": "internal_error",
"message": "internal server error"
}