Skip to content

Get a resource's ownership

GET
/api/v1/resources/{id}/ownership
curl --request GET \
--url https://api.aletheia-ops.com/api/v1/resources/example/ownership \
--header 'Authorization: Bearer <token>'
id
required
string

OK

Media typeapplication/json

Aggregates the applications, environment, and owners of a single resource for the resource-detail page

object
applications
Array<object>

Pairs an application with the membership that links it to the resource (plan 07 §2.4 resource-detail slots)

object
application

Public shape of an application

object
id
string
organization_id
string
name
string
slug
string
description
string
criticality
string
lifecycle
string
source
string
created_by
string
created_at
string format: date-time
updated_at
string format: date-time
archived_at
string format: date-time
membership

Public shape of an application-resource membership

object
id
string
organization_id
string
application_id
string
resource_id
string
source
string
confidence
string
status
string
rule_id
string
evidence
object
key
additional properties
any
created_by
string
created_at
string format: date-time
updated_at
string format: date-time
environment

Public shape of an environment

object
id
string
organization_id
string
name
string
class
string
created_at
string format: date-time
updated_at
string format: date-time
owners
Array<object>

Pairs an ownership with the owning team (if any)

object
ownership

Public shape of a team/user ownership of an application or resource

object
id
string
organization_id
string
target_type
string
target_id
string
team_id
string
user_id
string
role
string
source
string
confidence
string
status
string
evidence
object
key
additional properties
any
last_confirmed_at
string format: date-time
created_by
string
created_at
string format: date-time
updated_at
string format: date-time
team

Public shape of a team

object
id
string
organization_id
string
name
string
slug
string
description
string
is_active
boolean
created_at
string format: date-time
updated_at
string format: date-time
Examplegenerated
{
"applications": [
{
"application": {
"id": "example",
"organization_id": "example",
"name": "example",
"slug": "example",
"description": "example",
"criticality": "example",
"lifecycle": "example",
"source": "example",
"created_by": "example",
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z",
"archived_at": "2026-04-15T12:00:00Z"
},
"membership": {
"id": "example",
"organization_id": "example",
"application_id": "example",
"resource_id": "example",
"source": "example",
"confidence": "example",
"status": "example",
"rule_id": "example",
"evidence": {},
"created_by": "example",
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
}
}
],
"environment": {
"id": "example",
"organization_id": "example",
"name": "example",
"class": "example",
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
},
"owners": [
{
"ownership": {
"id": "example",
"organization_id": "example",
"target_type": "example",
"target_id": "example",
"team_id": "example",
"user_id": "example",
"role": "example",
"source": "example",
"confidence": "example",
"status": "example",
"evidence": {},
"last_confirmed_at": "2026-04-15T12:00:00Z",
"created_by": "example",
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
},
"team": {
"id": "example",
"organization_id": "example",
"name": "example",
"slug": "example",
"description": "example",
"is_active": true,
"created_at": "2026-04-15T12:00:00Z",
"updated_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"
}

The resource does not exist, or belongs to another organization. The two are deliberately indistinguishable.

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
Examplenot_found
{
"code": "not_found",
"message": "resource not found"
}

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"
}