Skip to content
InternetData

Identity

get/api/v1/iam/identity

The identity behind this credential: what it is, the organization it is scoped to, and the scopes it currently holds.

user is present for an OAuth token and ABSENT for an API key, which has an organization but no person behind it. credential.kind says which you are holding, so a client can branch without guessing from a missing field.

Narrower than what the console shows its own user on purpose: an integration needs a name to display and an organization to address, not a profile. The scopes array is what the credential may do RIGHT NOW, so a client can render its own capabilities rather than discovering them from a 403.

Authorization

BearerAuthbearer token

Authorization: Bearer <key>, with a key from the console. Keys are default-deny: each operation names the scope it needs, and an existing key does not gain an operation until that scope is added to it.

Scopes: account.read

Responses

200application/json

The caller.

rcrequiredstring
userrequiredobject
idrequiredstring (uuid)
fullnamestring
emailstring (email)
orgrequiredobject
idrequiredstring (uuid)
scopesrequiredarray<string>

What this credential may do right now.

TypeScript type
ts
{
  rc: string;
  user: {
    id: string;
    fullname?: string;
    email?: string;
  };
  org: {
    id: string;
  };
  scopes: string[];
}
401application/json

No credential was presented, or it is not valid.

rcrequiredstring

The outcome. SUCCESS on success; otherwise the reason.

TypeScript type
ts
{
  rc: string;
}
403application/json

The credential does not hold the scope this endpoint requires. The missing scope is deliberately not named.

rcrequiredstring

The outcome. SUCCESS on success; otherwise the reason.

TypeScript type
ts
{
  rc: string;
}