# Positions on an account

URL: https://docs.fxapis.com/api-reference/trading/positions-on-an-account

> Positions on an account. What we last saw, with observedAt saying when.

`GET https://api.fxapis.com/v1/accounts/{id}/positions`

What we last saw, with `observedAt` saying when. The broker is authoritative and this is a snapshot, not a ledger — `observedAt` is here so you can tell a current view from a stale one rather than having to assume.

Open positions only, unless `includeClosed=true`.

Authentication: `Authorization: Bearer <API key>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `includeClosed` | query | "true" \| "false" | no | `true` also returns positions we have seen closed, with `closedAt` set. |
| `id` | path | string (uuid) | yes |  |

#### Responses

- `200`
- `401`
- `404`

Failures return `{ "error": { "code", "message" } }`; every code is listed at https://docs.fxapis.com/errors.

#### 200 response fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object[] | no |  |
| `data[].id` | string (uuid) | no |  |
| `data[].accountId` | string (uuid) | no |  |
| `data[].brokerPositionId` | string | no |  |
| `data[].symbol` | string | no |  |
| `data[].side` | "buy" \| "sell" | no |  |
| `data[].volume` | null \| string | no | Lots. |
| `data[].openPrice` | null \| string | no |  |
| `data[].currentPrice` | null \| string | no |  |
| `data[].stopLoss` | null \| string | no |  |
| `data[].takeProfit` | null \| string | no |  |
| `data[].swap` | null \| string | no |  |
| `data[].profit` | null \| string | no | Unrealised, at observedAt. |
| `data[].openedAt` | null \| string (date-time) | no |  |
| `data[].observedAt` | string (date-time) | no | When this was last true. A snapshot without it would be worthless. |
| `data[].closedAt` | null \| string (date-time) | no |  |