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

# Account and funding

> Your balance, depositing USDC, activating trading, fills and fees, and withdrawing.

Your account holds US dollars on Hyperliquid, in USDC. You deposit and withdraw USDC on Arbitrum. Everything in the API is in US dollars.

## Balance

```bash theme={"system"}
curl https://tradingapi.dev/v1/account \
  -H "Authorization: Bearer $TRADINGAPI_KEY"
```

```json theme={"system"}
{
  "object": "account",
  "equity": "1412.86",
  "available": "212.30",
  "unrealized_pnl": "7.17",
  "deposit_address": "0x9c0f6f2a5d1b3e4c7a8b9d0e1f2a3b4c5d6e7f80",
  "trading": { "status": "active", "valid_until": "2026-12-23T00:00:00.000Z" }
}
```

* **`equity`** is everything your account is worth: your balance plus the unrealized profit and loss of your positions.
* **`available`** is what can pay for new orders or be withdrawn. Money held in positions is not available.

The account is read live from the exchange. If the exchange cannot be read, the response is `503`. The API never reports a balance it is unsure of.

## Depositing

Send native USDC on Arbitrum to your `deposit_address`, which is also shown on the account page. We move it to your trading balance automatically, usually within a few minutes.

* The minimum is 5 USDC. A smaller amount stays at the address until the total there reaches 5 USDC, then moves with it.
* Everything sent to the address is moved to your trading balance.
* Send only native USDC, and only on Arbitrum. Other tokens and networks are not credited.

## Activating trading

Before your first order, choose **Activate trading** on the account page. It allows the Trading API to place orders for your account, and nothing else: it can't withdraw or move your money anywhere.

Activation lasts until `trading.valid_until`. Renew it on the account page before then. Orders are refused with `trading_approval_expired` once it has ended, and [previews](/guides/preview) have a `trading_approval_expiring` note in the last 14 days.

| `trading.status` | Meaning |
| - | - |
| `active` | You can trade. |
| `inactive` | Trading was never activated. Orders are refused with `account_not_active`. |
| `expired` | Activation ended. Renew it on the account page. |

## Fills and fees

A fill is one execution of an order at one price. An order can fill in several pieces. `GET /v1/fills` lists them, newest first:

```json theme={"system"}
{
  "object": "fill",
  "order_id": "ord_7kq2m4x9h3v8r5t2w6y4n8p3za",
  "client_order_id": "dca-btc-0927",
  "market": "BTC",
  "side": "buy",
  "size": "0.00296",
  "price": "84012.4",
  "value": "248.68",
  "fee": "0.360581",
  "realized_pnl": "0.00",
  "executed_at": "2026-09-27T14:30:00.601Z"
}
```

* `fee` is the total you paid for the fill, including the exchange's fee and ours, in USD.
* `realized_pnl` is the profit or loss the fill locked in by reducing a position. It is `0.00` for fills that open or grow a position.

Fills are read live from the exchange.

## Withdrawing

Withdrawals are made on the account page, never through the API. You enter an Arbitrum address and an amount, confirm with a code sent to your email, and sign the withdrawal yourself. USDC usually arrives within a few minutes. The exchange charges a \$1 withdrawal fee.

`GET /v1/withdrawals` lists your withdrawals and their status: `submitted`, `completed` or `refused`.

<Info>
  No API key can move money out of your account, whatever its limits. This is part of how the service is built, not a setting.
</Info>
