# List link

URL: https://docs.hanzo.ai/docs/openapi/link/get-link

> Lists your linked accounts and the devices they sit on.

`GET /v1/link`

> [Link →](https://docs.hanzo.ai/docs/openapi/link) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                        |
| ------------- | -------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/link`         |
| **Method**    | `GET`                                  |
| **Operation** | `get_link`                             |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY` |

Lists your linked accounts and the devices they sit on.

It answers the caller's own links plus a devices projection of the same rows
folded per machine — the cross-machine "AI Providers / Accounts" view. A
device is a projection, not a stored entity: its labels come from its
most-recently-seen account, so there is no device to create and none to
garbage-collect. Revoked links are INCLUDED rather than dropped, because a
logged-out account keeps its usage history and audit trail. Scoped to the
caller: a validated principal and a non-empty org, else 403.

## Request

`GET /v1/link` takes no parameters and no body — the credential is the whole request.

## Response

| Status    | Body            | Meaning |
| --------- | --------------- | ------- |
| `200`     | link.linkList   | ok      |
| `default` | problem-details | refused |

`200` body — 38 fields.

| Field                            | In   | Type               | Always | Description                                                                                                                                          |
| -------------------------------- | ---- | ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `devices`                        | body | link.deviceView\[] | —      | Devices is the same rows folded per machine — the cross-machine "AI Providers / Accounts" view.                                                      |
| `devices[].accounts`             | body | link.linkView\[]   | —      | Accounts is every account the caller has signed in on this machine.                                                                                  |
| `devices[].accounts[].account`   | body | string             | —      | Account is the provider-side account identifier, when the collector knows it.                                                                        |
| `devices[].accounts[].billing`   | body | string             | —      | Billing is how this account's inference bills — plan (the user's own subscription, metered here for visibility only) or commerce (the gateway path). |
| `devices[].accounts[].createdAt` | body | string             | —      | CreatedAt is when the link was first registered, RFC 3339 UTC.                                                                                       |
| `devices[].accounts[].host`      | body | string             | —      | Host is the machine's human hostname label, from its most recent report.                                                                             |
| `devices[].accounts[].id`        | body | string             | —      | ID is the link's opaque handle ("link\_" + 32 hex chars).                                                                                            |
| `devices[].accounts[].kind`      | body | string             | —      | Kind is how the account authenticates: subscription or apikey.                                                                                       |
| `devices[].accounts[].lastSeen`  | body | string             | —      | LastSeen is when the account last reported, RFC 3339 UTC.                                                                                            |
| `devices[].accounts[].machine`   | body | string             | —      | Machine is the stable machine identifier the collector reports.                                                                                      |
| `devices[].accounts[].os`        | body | string             | —      | OS is the machine's operating system label.                                                                                                          |
| `devices[].accounts[].plan`      | body | string             | —      | Plan is the provider plan label (e.g. "Claude Max").                                                                                                 |
| `devices[].accounts[].provider`  | body | string             | —      | Provider is the AI provider this account belongs to (claude, openai, hanzo…).                                                                        |
| `devices[].accounts[].status`    | body | string             | —      | Status is linked or revoked.                                                                                                                         |
| `devices[].accounts[].updatedAt` | body | string             | —      | UpdatedAt is when the link was last refreshed, RFC 3339 UTC.                                                                                         |
| `devices[].accounts[].usage`     | body | any                | —      | Usage is the last good usage snapshot, clamped and re-serialized to known fields at ingest.                                                          |
| `devices[].accounts[].user`      | body | string             | —      | User is the owning subject — the validated caller who registered the link.                                                                           |
| `devices[].activeSessions`       | body | integer (int64)    | —      | ActiveSessions is how many agent sessions the caller currently has running on this machine; 0 where the agent plane is not mounted.                  |
| `devices[].host`                 | body | string             | —      | Host is the machine's hostname label, from its most-recently-seen account.                                                                           |
| `devices[].lastSeen`             | body | string             | —      | LastSeen is when any account on this machine last reported, RFC 3339 UTC.                                                                            |
| `devices[].machine`              | body | string             | —      | Machine is the stable machine identifier.                                                                                                            |
| `devices[].os`                   | body | string             | —      | OS is the machine's operating system label.                                                                                                          |
| `links`                          | body | link.linkView\[]   | —      | Links is every link the caller registered, newest first.                                                                                             |
| `links[].account`                | body | string             | —      | Account is the provider-side account identifier, when the collector knows it.                                                                        |
| `links[].billing`                | body | string             | —      | Billing is how this account's inference bills — plan (the user's own subscription, metered here for visibility only) or commerce (the gateway path). |
| `links[].createdAt`              | body | string             | —      | CreatedAt is when the link was first registered, RFC 3339 UTC.                                                                                       |
| `links[].host`                   | body | string             | —      | Host is the machine's human hostname label, from its most recent report.                                                                             |
| `links[].id`                     | body | string             | —      | ID is the link's opaque handle ("link\_" + 32 hex chars).                                                                                            |
| `links[].kind`                   | body | string             | —      | Kind is how the account authenticates: subscription or apikey.                                                                                       |
| `links[].lastSeen`               | body | string             | —      | LastSeen is when the account last reported, RFC 3339 UTC.                                                                                            |
| `links[].machine`                | body | string             | —      | Machine is the stable machine identifier the collector reports.                                                                                      |
| `links[].os`                     | body | string             | —      | OS is the machine's operating system label.                                                                                                          |
| `links[].plan`                   | body | string             | —      | Plan is the provider plan label (e.g. "Claude Max").                                                                                                 |
| `links[].provider`               | body | string             | —      | Provider is the AI provider this account belongs to (claude, openai, hanzo…).                                                                        |
| `links[].status`                 | body | string             | —      | Status is linked or revoked.                                                                                                                         |
| `links[].updatedAt`              | body | string             | —      | UpdatedAt is when the link was last refreshed, RFC 3339 UTC.                                                                                         |
| `links[].usage`                  | body | any                | —      | Usage is the last good usage snapshot, clamped and re-serialized to known fields at ingest.                                                          |
| `links[].user`                   | body | string             | —      | User is the owning subject — the validated caller who registered the link.                                                                           |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo auth link list
```

**SDK**

**.ts**

```ts
import { Configuration, LinkApi } from 'hanzoai';

const api = new LinkApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getLink();
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import LinkApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = LinkApi(client).get_link()
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.LinkAPI.GetLink(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, link_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = link_api::get_link(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.LinkApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new LinkApi(client).getLink();
```

**HTTP**

```bash
curl https://api.hanzo.ai/v1/link \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **link** through the `link` tool, which names its 11 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_links"
         }
       }
     }'
```

---

[Link API](https://docs.hanzo.ai/docs/openapi/link) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
