---
title: "List all LinkedIn accounts for the authenticated user"
method: GET
path: "/me/linkedin/accounts"
tags: ["profile"]
---

# List all LinkedIn accounts for the authenticated user

`GET /me/linkedin/accounts`

Returns all LinkedIn accounts connected by the user. Each account has credentials and profile info. The `isCurrent` flag indicates which account the current API token is bound to.

## Response `200`

List of LinkedIn accounts

- object
  - `success` true, required
  - `accounts` object[], required
    - `id` string, required
    - `label` string, nullable, required
    - `isDefault` boolean, required
    - `isCurrent` boolean, required — Whether this account is the one used by the current API token.
    - `linkedinProfileId` string, nullable, required
    - `linkedinName` string, nullable, required
    - `linkedinEmail` string, nullable, required
    - `profileUrl` string, nullable, required
    - `headline` string, nullable, required
    - `profilePic` string, nullable, required
    - `profileUrn` string, nullable, required
    - `isActive` boolean, required
    - `isValid` boolean, required
    - `accountPlan` string, nullable, required — Account plan tier (e.g. 'free', 'pro', 'team').
    - `isUnlimited` boolean, required — Whether this account has unlimited credits.
    - `creditsLimit` integer, nullable, required — Monthly credit limit for this account. Null if unlimited.
    - `creditsCount` integer, required — Credits used in the current billing period.
    - `proxyConfig` object, nullable, required — Proxy status for this account. Full config is masked; only enabled flag is exposed.
      - `enabled` boolean, required
    - `ownerUserId` string, nullable — The user this account belongs to. Differs from the caller on a workspace-wide list.
    - `owner` string, nullable — That user's display name, when known.
    - `repeatDisconnect` boolean — True when this account has lost its session repeatedly, which is the signal to reconnect it rather than retry.
    - `simulateWrites` boolean — True when writes on this account are simulated rather than sent.
    - `salesNavSeatStatus` string, nullable — What the last seat probe concluded. 'unknown' means it has not been established, which is different from established-as-absent.
    - `salesNavSeatLastProbedAt` string, nullable — When that probe ran, so a stale 'unknown' can be told from a fresh one.
    - `createdAt` string, required
    - `updatedAt` string, required
  - `total` integer, required
  - `isOwner` boolean, required — True when the caller owns the workspace, in which case `accounts` spans the whole workspace rather than just their own.
  - `creditsUsed` integer, required — Credits consumed by this call. 0 for free endpoints, cached results, duplicates, and for every query that does not touch LinkedIn.
  - `retryAfter` integer, required — Seconds to wait before another call of the same type. 0 means no wait is needed.
  - `_meta` object — Credit balance carried on every response so a caller never has to ask for it separately. Absent when the caller has no connected account.
    - `credits` object, required
      - `current` number, required — Credits spent this period.
      - `limit` number, nullable, required — Period allowance, or null when unlimited.
      - `remaining` number, nullable, required — Allowance left, or null when unlimited.
      - `percentage` number, required — Share of the allowance spent, 0 to 100.
      - `isUnlimited` boolean, required
      - `accountPlan` string, required — The credential's plan.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" when the caller IS authenticated but has no connected LinkedIn account — connect LinkedIn (not re-authenticate) to continue.
- `403` — The client does not have access rights to the content.
- `404` — The server cannot find the requested resource.
- `409` — The request conflicts with the current state of the server.
- `410` — The requested content has been permanently deleted from the server.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — Rate limit exceeded. Read error.retryAfter for the wait time in seconds.
- `500` — The server encountered a situation it does not know how to handle.
- `502` — LinkedIn returned a server error or the proxy connection failed. Retry after a few seconds.
- `503` — Proxy capacity temporarily exceeded. Retry after a few seconds.

---

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