---
title: "List Link accounts eligible as withdrawal sources"
method: GET
path: "/api/link/v1/enterprises/{enterpriseId}/sources"
tags: ["Link Accounts"]
---

# List Link accounts eligible as withdrawal sources

`GET /api/link/v1/enterprises/{enterpriseId}/sources`

Returns one row per `(account, accountSubType)` for accounts the caller has
`link.account.transfer` on, with non-zero `available` balance for the given
asset. When `asset` is supplied, additionally filters to rows whose venue
supports withdrawals for the given `(genericAsset, network)` pair. Excludes
accounts whose `status != active`.

Exactly one of `asset` / `genericAsset` is required.

## Path parameters

- `enterpriseId` string, required

## Query parameters

- `genericAsset` string
- `network` string
- `name` string
- `limit` union, required
  - string
  - 50
- `offset` union, required
  - string
  - 0

## Headers

- `user-id` string, required

## Response `200`

OK

- V1GetSourcesResponse — Response for `GET /api/link/v1/enterprises/{enterpriseId}/sources`. Pagination is account-level offset/limit. Each `LinkAccountEligibilityRow` corresponds to one account and carries one entry per funding subtype with a positive balance. A response with `accounts.length < limit` means end-of-stream; `accounts.length === limit` means the next offset may produce more accounts.
  - `accounts` object[], required
    - `id` string, required
    - `name` string, required
    - `venueId` string, required
    - `venueName` string, required
    - `whitelistingEnabled` boolean, required
    - `accountSubTypes` object[], required
      - `balances` object[], required
        - `rawAsset` string, required
        - `genericAsset` string
        - `displayAsset` string, required
        - `asset` string
        - `network` string
        - `available` string, required
        - `locked` string, required
        - `total` string, required
        - `asOfDate` string, date-time, required
      - `accountSubType` string, required — Normalized sub-account-type identifier (e.g. `SPOT`, `MARGIN`, `UNIFIED`).
      - `rawAccountSubType` string — Venue-raw sub-type label for the matching normalized sub-type. Absent for pass-through values.
      - `accountSubTypeLabel` string — Human-readable sub-type display label. Absent when the venue has only one sub-type, or for pass-through values.
    - `subAccounts` object[]
      - `id` string, required
      - `name` string, required
      - `venueId` string, required
      - `venueName` string, required
      - `whitelistingEnabled` boolean, required
      - `accountSubTypes` object[], required
        - `balances` object[], required
          - `rawAsset` string, required
          - `genericAsset` string
          - `displayAsset` string, required
          - `asset` string
          - `network` string
          - `available` string, required
          - `locked` string, required
          - `total` string, required
          - `asOfDate` string, date-time, required
        - `accountSubType` string, required — Normalized sub-account-type identifier (e.g. `SPOT`, `MARGIN`, `UNIFIED`).
        - `rawAccountSubType` string — Venue-raw sub-type label for the matching normalized sub-type. Absent for pass-through values.
        - `accountSubTypeLabel` string — Human-readable sub-type display label. Absent when the venue has only one sub-type, or for pass-through values.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error

---

[API](https://skmtc.net/bitgo/apis/bitgo-api.md) · [All operations](https://skmtc.net/bitgo/apis/bitgo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bitgo/bitgo-api/revisions/e445c15e5bee/schema)
