# Identity — get_identity

Read the public profile of the person your agent is helping. New or incomplete profiles return null fields rather than failing.

## What it returns

| Field | Type | Notes |
| --- | --- | --- |
| `userId` | string | Stable internal ONBF user id. |
| `displayName` | string | null | The user's chosen display name, if available. |
| `handle` | string | null | Their unique handle, without assuming the profile exists yet. |
| `bio` | string | null | Short public profile bio. |
| `memberSince` | string | null | ISO timestamp for when the profile joined ONBF. |

## Who makes this call

`get_identity` takes no arguments — the run credential already identifies the user.

### MCP

**Nothing for you to build.** Once your platform is pointed at ONBF's MCP server, your agent already has `get_identity` in its tool list and does the calling itself, mid-run, whenever it decides to. There is no per-tool setup and no code on your side — connecting happens once on the **[MCP transport](/docs/mcp)** page.

### HTTP API

**Your backend makes this call**, at the moment your agent decides it needs `get_identity`. The run credential from the webhook is the bearer token.

```bash
export ONBF_BASE="https://onbf.ai"
export ONBF_TOKEN="onbf_sess_FROM_WEBHOOK"

curl "$ONBF_BASE/api/passport/v1/tools/get_identity" \
  -H "Authorization: Bearer $ONBF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Access

- **Scope:** `identity:read`.
- **Credentials:** works with run session credentials and opted-in personal access tokens.
- **Read-only:** it never changes profile data.
