# Cloud mode (/docs/cloud-mode)



By default LinkFetch reaches LinkedIn through the [Chrome
extension](/docs/extension), inside your own browser. **Cloud mode** is
the opt-in alternative: you connect your LinkedIn account once, and
LinkFetch runs the LinkedIn calls you or your AI assistant ask for on
our side, so nothing needs to be installed or left open.

## Connect [#connect]

Open [linkfetch.io/linkedin](https://linkfetch.io/linkedin) and either:

* click **Connect from extension** if the LinkFetch extension is
  installed (nothing to copy), or
* paste your `li_at` cookie: on linkedin.com open DevTools →
  Application → Cookies → `https://www.linkedin.com`, and copy the
  value of `li_at`.

LinkFetch checks the session with LinkedIn and shows &#x2A;*Connected as
\<your name>**.

## What happens to your session [#what-happens-to-your-session]

* **Encrypted at rest** with AES-256-GCM. The key lives only in our API
  server's environment — not in the database, not in backups. No
  endpoint ever returns the cookie, including to you or to us.
* **Your own IP.** Calls go out from a dedicated residential IP in your
  country, used only for your account and kept stable while you stay
  connected.
* **Half the safety limits.** Cloud mode runs at 50% of the
  [standard limits](/docs/safety), and shares one budget with the
  extension.
* **Deleted** as soon as you disconnect, and automatically after 30
  days without use. Deleting our copy can't end the session on
  LinkedIn's side — sign out of other sessions in LinkedIn's settings
  for that.

## What works [#what-works]

Every read endpoint that used to answer `422 extension_required` on a
cache miss now runs live for connected users: profiles, profile and
company posts, company employees, posts and reactions, groups and
members, all four search facets, and the messaging inbox. Results go
into the same cache and cost the same credits. Writes (invites, DMs,
comments, reactions, follows) are enabled separately, after reads have
proven stable.

## Errors [#errors]

| Code                             | Meaning                                                                                       |
| -------------------------------- | --------------------------------------------------------------------------------------------- |
| `linkedin_not_connected` (422)   | Not cached, and no LinkedIn account connected. Connect at `connect_url` or use the extension. |
| `linkedin_session_expired` (409) | LinkedIn ended the session or showed a security check. Reconnect at `reconnect_url`.          |
| `cloud_unavailable` (503)        | No residential IP free for your region right now. Retry later.                                |
| `invalid_linkedin_cookie` (400)  | The pasted cookie didn't work; the message says why.                                          |

## API [#api]

* `GET /v1/linkedin/connection` — connection state.
* `POST /v1/linkedin/connect` — `{ li_at, user_agent, country, timezone?, consent: true }`.
* `POST /v1/linkedin/disconnect` — delete the stored session.

## Risk [#risk]

LinkedIn's terms restrict automated use. Any tool that acts on your
account, Cloud mode included, carries some risk of a warning or
restriction. The extension, which runs in your own browser, remains the
lowest-risk option.
