# List subscriptions

URL: https://docs.fxapis.com/api-reference/copy-trading/list-subscriptions

> List subscriptions. Followers, newest first, with their status, settings, equity, today's profit where the figures allow, and their last execution.

`GET https://api.fxapis.com/v1/copy/subscriptions`

Followers, newest first, with their status, settings, equity, today's profit where the figures allow, and their last execution. Paginated by cursor.

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

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `strategyId` | query | string (uuid) | no |  |
| `followerAccountId` | query | string (uuid) | no |  |
| `limit` | query | integer | no | Default: `100`. |
| `cursor` | query | string | no | The previous page's `nextCursor`. |

#### Responses

- `200`
- `400`
- `401`
- `403`

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[].strategyId` | string (uuid) | no |  |
| `data[].followerAccountId` | string (uuid) | no |  |
| `data[].status` | "active" \| "paused" \| "close_only" \| "stopped" | no | `active` copies everything; `paused` nothing; `close_only` closes and partial closes only; `stopped` nothing until reset (a risk limit, a netting follower, a revoked creator) — or, with `deleting`, until it is gone. |
| `data[].stopReason` | null \| string | no | Why it stopped: `risk_limit:<day\|week\|month\|lifetime>:<balance\|equity>`, with `:unverified` when the account's deposits and withdrawals could not be confirmed; `netting_not_supported`; `creator_revoked`; `deleted` while a deletion closes its positions. Example: `"risk_limit:day:equity"` |
| `data[].stopDetail` | null \| string | no | `stopReason` in words. |
| `data[].stoppedAt` | null \| string (date-time) | no |  |
| `data[].deleting` | boolean | no | Deleted with `closePositions=true` and still closing its positions: it is removed once they are closed. Delete again to retry closes that failed. |
| `data[].settings` | object | no | How this follower copies, every field filled in. |
| `data[].settings.sizing` | object | yes |  |
| `data[].settings.sizing.mode` | "balance_ratio" \| "equity_ratio" \| "multiplier" \| "fixed_lots" \| "risk_percent" | yes |  |
| `data[].settings.sizing.multiplier` | number | yes |  |
| `data[].settings.sizing.lots` | string | no |  |
| `data[].settings.sizing.riskPercent` | number | no |  |
| `data[].settings.reverse` | boolean | yes |  |
| `data[].settings.copySlTp` | "off" \| "on_open" \| "always" | yes |  |
| `data[].settings.symbols` | object | yes |  |
| `data[].settings.symbols.allow` | string[] | yes |  |
| `data[].settings.symbols.block` | string[] | yes |  |
| `data[].settings.symbols.map` | object | yes |  |
| `data[].settings.limits` | object | yes |  |
| `data[].settings.limits.maxLots` | string \| null | yes |  |
| `data[].settings.limits.maxOpenPositions` | integer \| null | yes |  |
| `data[].settings.limits.minLots` | "skip" \| "use_min" | yes |  |
| `data[].settings.late` | object | yes |  |
| `data[].settings.late.maxDelaySeconds` | integer | yes |  |
| `data[].settings.late.maxDeviationPoints` | integer \| null | yes |  |
| `data[].settings.late.copyExistingOnStart` | boolean | yes |  |
| `data[].settings.risk` | object | yes |  |
| `data[].settings.risk.limits` | object[] | yes |  |
| `data[].settings.risk.limits[].period` | "day" \| "week" \| "month" \| "lifetime" | yes |  |
| `data[].settings.risk.limits[].metric` | "balance" \| "equity" | yes |  |
| `data[].settings.risk.limits[].maxLossPercent` | number | no |  |
| `data[].settings.risk.limits[].maxLossAmount` | string | no |  |
| `data[].settings.risk.limits[].closePositions` | boolean | yes |  |
| `data[].follower` | object | no |  |
| `data[].follower.id` | string (uuid) | no |  |
| `data[].follower.label` | null \| string | no |  |
| `data[].follower.login` | string | no |  |
| `data[].follower.server` | string | no |  |
| `data[].follower.state` | string | no |  |
| `data[].follower.equity` | null \| string | no |  |
| `data[].follower.todayProfit` | null \| string | no | Equity now against the first figures read today (UTC) for a day risk limit; null until there are both. |
| `data[].lastExecution` | null \| object | no |  |
| `data[].lastExecution.status` | string | no |  |
| `data[].lastExecution.reason` | null \| string | no |  |
| `data[].lastExecution.createdAt` | string (date-time) | no |  |
| `data[].createdAt` | string (date-time) | no |  |
| `data[].updatedAt` | string (date-time) | no |  |
| `page` | object | no |  |
| `page.hasMore` | boolean | no |  |
| `page.nextCursor` | null \| string | no | Pass as `cursor` to continue. |