:::endpoint GET /v1/admin/tickets/{ticket}/trader

The tab Trader of the website's Tickets screen, so a question can be answered
without opening Users: the trader's standing, their accounts, what they asked
before, and the payouts this conversation is about.

Accounts, payouts and fraud flags each need the permission of the screen they
come from. Without it that part is null, rather than empty, so a client can
tell "none" from "not yours to see". The ticket's `can` says the same in
advance.

Needs a firm. Our own staff name one with the `Propper-Workspace` header.

## Request

```bash
curl "https://api.proppertrading.com/v1/admin/tickets/tkt_b3anxpgfthts4h2k/trader" \
  -H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
  -H "Propper-Workspace: acme"
```

## Response

```json
{
    "data": {
        "object": "ticket_trader",
        "trader": {
            "id": "usr_33hajhd7u9q5mjqr",
            "name": "Kai Popescu",
            "email": "kai.popescu.447@example.com",
            "locale": "en",
            "country": null,
            "created_at": "2026-04-18T23:25:45+00:00",
            "last_seen_at": null,
            "is_active": true,
            "deleted": false,
            "kyc": "none"
        },
        "accounts": {
            "items": [
                {
                    "id": "acct_gsvrm4k43wtsvjj3",
                    "number": "PA6F9BFA2E",
                    "status": "funded",
                    "challenge": "50K Challange",
                    "balance": {
                        "value": "50761.58",
                        "currency": "USD"
                    }
                },
                {
                    "id": "acct_4uagh3t87bvbbfhh",
                    "number": "PA91A52A05",
                    "status": "passed",
                    "challenge": "50K Challange",
                    "balance": {
                        "value": "54585.26",
                        "currency": "USD"
                    }
                }
            ],
            "total": 3,
            "funded": 1
        },
        "tickets": {
            "items": [],
            "total": 0
        },
        "payouts": [
            {
                "id": "po_99fc6kngcrdz7axf",
                "number": "#DZ7AXF",
                "status": "pending",
                "amount": {
                    "value": "762.00",
                    "currency": "USD"
                },
                "created_at": "2026-10-04T03:59:48+00:00"
            }
        ],
        "flags": 0
    },
    "meta": {
        "request_id": "req_01m50twjnmkn3qrdfxkx8xab9b"
    }
}
```

| Field                | Description |
| -------------------- | ----------- |
| `trader`             | Null when the account is gone altogether. `deleted` is true for a trader who deleted it, whose history stays |
| `trader.locale`      | The language the trader uses the platform in |
| `trader.country`     | What the trader answered when they signed up. Null when they did not |
| `trader.kyc`         | `verified` once any identity check passed, otherwise the latest one: `requires_input`, `processing` or `canceled`. `none` when they never started one |
| `accounts`           | Up to eight, funded ones first, then active, then passed, then the rest, each newest first. `total` and `funded` count all of them. Null without `view_accounts` |
| `accounts.items`     | Each with `id`, `number`, `status`, `challenge` and `balance` |
| `tickets`            | What the trader asked before: up to ten other tickets, open ones first, each with `id`, `subject`, `status`, `created_at` and `last_message_at`. `total` counts all of them |
| `payouts`            | The [payouts](/docs/api/admin/payout) linked to this ticket, newest first, with what was asked. Null without `view_payouts` |
| `flags`              | Open fraud flags involving the trader. Null without `view_fraud` |

## Errors

| Status | Code                      | Meaning                                                                         |
| ------ | ------------------------- | ------------------------------------------------------------------------------- |
| 400    | `workspace_required`      | Asked by our own staff without naming a firm                                    |
| 401    | `invalid_token`           | Not a token, or the secret does not match                                       |
| 401    | `revoked_token`           | Signed out here or from another device                                          |
| 401    | `expired_token`           | Ninety days without use, or a set expiry passed                                 |
| 403    | `admin_access_required`   | This account no longer helps run the environment                                |
| 403    | `insufficient_scope`      | This device does not hold `admin:read`                                          |
| 403    | `workspace_not_permitted` | The `Propper-Workspace` header names an environment this account cannot act in |
| 403    | `forbidden`               | Without `view_tickets`                                                          |
| 404    | `resource_not_found`      | No ticket with that id in this firm                                             |