> ## Documentation Index
> Fetch the complete documentation index at: https://docs.botshield.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Managing accounts

> Use the Console registry to list, search, revoke and export Verified Accounts, and see what the person controls in the BotShield app.

A link has two sides. Your organization sees it in the **registry** in the BotShield Console. The person sees it under **Accounts** in the BotShield app. Either side can end it, and your server can end it too, with its API key. See [Server API](https://docs.botshield.ai/verified-accounts/server-api.md).

## The Verified Accounts page

In the [BotShield Console](https://console.botshield.ai), open **Verified Accounts** in the sidebar. The page has four tabs:

| Tab | What it holds |
| - | - |
| **Registry** | Every link for your organization in the selected environment. The default tab. |
| **BotShield Gates** | Your gates. See [BotShield Gate](https://docs.botshield.ai/gate/overview.md). |
| **BotShield Actions** | Your actions. See [BotShield Actions](https://docs.botshield.ai/actions/overview.md). |
| **Try it** | The chip against your Development key, with you as the customer. |

**Set up Link with BotShield ID**, in the page header, opens your surfaces: each one a page with one site key and its switch. From there you add a surface.

Use the **Development** and **Production** toggle at the top of the page to choose the environment. A link belongs to the environment of the key its confirmation ran under.

## The registry

The registry is a list of accounts, not of people. A row never shows an email address, a name, a device or another platform.

### Columns

| Column | Description |
| - | - |
| **Handle** | The opaque handle for this person on your platform: `OP_` followed by 12 characters. It is the value that `account.secured` and `account.unlinked` carry. |
| **Linked** | When the person linked the account. |
| **Status** | **Linked** for an active link. **Unlinked · by you** or **Unlinked · by human** for a link that ended. |

### Totals

| Tile | Counts |
| - | - |
| **Linked** | Active links. |
| **New this period** | Links created in the selected period. |
| **Unlinked this period** | Links that ended in the selected period. |

The period is **Last 30 days**, **90 days** or **All time**. The filters **All**, **Linked** and **Unlinked** choose which rows the table shows.

### Search by your user reference

Type one of your own account IDs, the value you pass as `platform-user-ref`, into **Search by your user ref (exact)**. The match is exact. BotShield hashes what you type and compares it with the stored hash, then shows the row with its handle. Your reference is never stored in a readable form and never shown back to you.

This is how you find the handle for one of your users.

### Export CSV

**Export CSV** downloads the rows that are loaded in the table, with the columns Handle, Linked and Status.

## Revoke

Select **Revoke** on an active row to end the link. The Console asks **Unlink this account?** before it continues. In Production, you confirm with your Developer passkey. Only an organization admin can revoke. Members can read and export.

After a revoke:

| Where | What changes |
| - | - |
| The registry | The row's status becomes **Unlinked · by you**. The row stays in the list as a record. |
| Your webhook endpoint | Receives `account.unlinked` with `by: "platform"` and `reason: "platform"`. |
| The person | BotShield notifies the person in the BotShield app, with a push notification and an entry in the app's notification list. |
| Your agents | Any of your company's agents that the person added in the app are removed for that person, in the same environment. |
| Your page | With the 3.3 widget, an open page sees `botshield:presence` with `state: "none"` and shows the chip again. Linking the account again creates a new link with a new **Linked** date. |

Revoke an account when:

* The user deleted or closed the account on your side.
* The account changed hands.
* A sign-in detail changed, such as a password reset you did not expect, and you want the human to confirm again.

A revoke that finds no active link succeeds and changes nothing. A revoke ends only the link in the environment you are viewing.

To revoke from code, for example when a user changes their password, call `POST /secured-accounts/revoke` with your API key. It has the same effects, with `reason: "credential_changed"` when a sign-in detail changed. See [Server API](https://docs.botshield.ai/verified-accounts/server-api.md#revoke-unlink).

## What the person controls

The person manages their side in the BotShield app, under **Accounts**.

| Action | What it does |
| - | - |
| **See the list** | Every account they linked, by platform name, with the date. |
| **Unlink** | Ends the link. BotShield asks them to confirm first. Your endpoint receives `account.unlinked` with `by: "human"` and `reason: "human"`. Your company's agents that the person added in the app go with it. |
| **Not you? Undo** | Shown right after a first link, on the confirmation screen. It ends the link at once, for a person who did not mean to link this account. Your endpoint receives `account.unlinked` with `by: "human"`. |
| **Re-link** | Shown on an unlinked account. It tells the person to open your site and tap **Link with BotShield ID**. |

A person cannot link an account again from the app alone. The request always starts on your page, where your sign-in shows which account it is. The app confirms the human. Your page identifies the account.

If the person deletes their BotShield account, every platform they linked an account on receives `account.unlinked` with `by: "human"`.

## After an unlink

An unlinked account is an ordinary account again:

* A gate pass on it reports `trusted: false`.
* The widget shows the chip on the next visit, when the offer is on.
* Linking it again sends `account.secured` and `gate.human_verified` with `first_time: true`. The handle is the same if the same person links it.

Keep your own record in step by handling `account.unlinked`. See [Staying in sync](https://docs.botshield.ai/verified-accounts/staying-in-sync.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.