# Read a futures account

`GET https://app.skylit.ai/api/nexus/v1/trading/accounts/{account}`

API: Nexus.

Balance, open and day P/L, positions, what rests on the account, and for an evaluation or funded account the rule meter (room to the daily loss limit and the max loss floor, the profit target, the contract cap). Every number is the one the Nexus account panel shows.

Open P/L, equity and day P/L are left out when a held contract has no live price. A number nobody measured isn't sent. Reads work on any of your accounts, challenge entries and ended accounts included.

## Authentication

Send your Skylit API key as a bearer token: `Authorization: Bearer <key>`. No other header is accepted.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `account` | path | string | yes | `practice`, `evaluation` or `funded` (when you have exactly one running), or a futures account id from capabilities. |

## Example request

```bash
curl "https://app.skylit.ai/api/nexus/v1/trading/accounts/practice" \
  -H "Authorization: Bearer $SKYLIT_API_KEY"
```

## Responses

### 200

The account.

An evaluation holding 1 NQ long.:

```json
{
  "data": {
    "account": {
      "id": "8d7c6b5a-4e3f-4a2b-9c1d-0e1f2a3b4c5d",
      "kind": "evaluation",
      "name": "50K Evaluation",
      "status": "active",
      "balanceCents": 5012500,
      "tradable": true,
      "allowed": [
        "read",
        "open",
        "reduce",
        "close",
        "limit",
        "stop",
        "bracket",
        "cancel",
        "modify"
      ],
      "startingBalanceCents": 5000000,
      "dayStartBalanceCents": 5010000,
      "tradingDay": "2026-10-09",
      "openPnlCents": 15000,
      "equityCents": 5027500,
      "dayPnlCents": 17500
    },
    "positions": [
      {
        "symbol": "NQZ26",
        "side": "long",
        "quantity": 1,
        "avgPrice": 25312.25,
        "breakevenPrice": 25312.5,
        "markPrice": 25319.75,
        "openPnlCents": 15000,
        "pointValueCents": 2000,
        "tickSize": 0.25
      }
    ],
    "workingOrders": [],
    "rules": {
      "presetId": "eval-50k",
      "equityCents": 5027500,
      "profitTargetCents": 300000,
      "toTargetCents": 272500,
      "maxLossFloorCents": 4800000,
      "maxLossLimitCents": 200000,
      "toMaxLossCents": 227500,
      "dailyLossLimitCents": 100000,
      "dayPnlCents": 17500,
      "toDailyLimitCents": 117500,
      "maxContracts": 5,
      "openContracts": "1",
      "consistencyPct": 0,
      "minTradingDays": 0,
      "tradingDays": 3,
      "passBlockedBy": []
    }
  }
}
```

### 400

The request was refused before anything was traded. Codes: `bad_request`, `bad_contract`, `invalid_quantity`, `invalid_price`, `unsupported_asset_class`, `unsupported_order_type`, `only_market_orders`, `test_orders_unavailable`, `test_modify_unavailable`.

A typo in the body.:

```json
{
  "error": {
    "code": "bad_request",
    "message": "Unknown field \"quantitty\". See the trades API docs for the fields you can send."
  }
}
```

### 401

No key, or a key that isn't valid. Codes: `missing_api_key`, `invalid_api_key`.

No key sent.:

```json
{
  "error": {
    "code": "missing_api_key",
    "message": "Send your Skylit API key in the Authorization header: Authorization: Bearer YOUR_SKYLIT_API_KEY."
  }
}
```

### 403

The key works but the account can't do this. Codes: `account_suspended`, `nexus_access_denied`, `futures_access_denied`.

The account doesn't include Nexus.:

```json
{
  "error": {
    "code": "nexus_access_denied",
    "message": "This Skylit account doesn't include Nexus, so it can't place Nexus trades."
  }
}
```

### 404

Not on your account. Codes: `trade_not_found`, `account_not_found`, `order_not_found`.

Not your trade, or no such trade.:

```json
{
  "error": {
    "code": "trade_not_found",
    "message": "No trade with that id on your account."
  }
}
```

### 422

Read fine, but the market or the account says no. Codes: `market_closed`, `contract_expired`, `contract_not_offered`, `price_outside_market`, `insufficient_buying_power`, `account_not_tradable`, `account_ambiguous`, `reduce_only_would_open`, `order_refused`.

Outside market hours.:

```json
{
  "error": {
    "code": "market_closed",
    "message": "The market is closed for this contract right now, so nothing was filled."
  }
}
```

### 429

Over a rate limit. Wait `Retry-After` seconds, then retry. Code: `rate_limited`.

Headers: `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`.

Too many writes from this key.:

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests (limit 30). Slow down and retry in 12 seconds."
  }
}
```

### 503

Try again in a moment (honour `Retry-After` when it's sent). Codes: `stale_quote`, `no_live_price`, `rules_pending`, `unavailable`, `auth_unavailable`, `access_check_unavailable`, `api_keys_unavailable`, `trades_api_disabled`.

Headers: `Retry-After`.

No live price right now.:

```json
{
  "error": {
    "code": "no_live_price",
    "message": "There's no live price for this contract right now, so nothing was filled. Try again in a moment."
  }
}
```
