Account

LinkedIn account connection management.

Connect a LinkedIn account to a seat, finish any verification LinkedIn asks for, and reconnect it in place when its session lapses. You need an API key first; the Quickstart covers that and the dashboard route.

Connect an account

curviate account seats
printf '%s\n' "$LINKEDIN_PASSWORD" | curviate account link --auth-method credentials --email jane@example.com --password-stdin --country US

--country is where LinkedIn sees the account connecting from: the two-letter code of the country its owner normally signs in from. A new connect names exactly one location, --country, --ip or your own --proxy-host; without one the command exits 2 and sends nothing. It is strict: with no connection free in that country the connect fails rather than use another, unless you pass --allow-country-fallback. Move a connected account later with account update --country.

With one free seat, account link uses it; with several, pass --seat-id from account seats. On success it prints the connected account and its acc_... id.

When LinkedIn asks for verification

In a terminal, account link prompts for the code. In a script or agent (no TTY, or --no-interactive) it exits 12 instead, with the account's account_id and the checkpoint's challenge_type. Exit 12 is not an error: it names the next call.

# A code (email, SMS, authenticator)
curviate account checkpoint solve acc_YOUR_ACCOUNT_ID --code 123456
# A mobile-app approval: approve on the phone, then
curviate account checkpoint poll acc_YOUR_ACCOUNT_ID --wait
# No code arrived: re-send it, where the challenge type allows
curviate account checkpoint request acc_YOUR_ACCOUNT_ID
# Check on a connect without acting on it: status is pending, resolved, expired or failed
curviate account connect-session poll --session acc_YOUR_ACCOUNT_ID

Reconnect in place

When account get shows reconnect_needed or disconnected, re-authenticate the same account. It keeps its connection location unless you pass a new one:

curviate account link --auth-method credentials --email jane@example.com --password-stdin --account-id acc_YOUR_ACCOUNT_ID --seat-id SEAT_ID

Do not disconnect and link again. account disconnect destroys the account record and releases its seat, so anything keyed on the old acc_... id stops resolving.

Commands

CommandDescription
curviate account listList connected LinkedIn accounts.
curviate account getGet a connected LinkedIn account: its status (active, reconnect_needed, restricted, connecting or disconnected) and its per-action quotas. --verbose adds cached profile fields, which may be null.
curviate account seatsList the workspace's live seats and whether each is free or bound to an account. A seat with occupied:false (free) is a seat_id curviate account link --seat-id accepts right now. Not paginated (bounded by purchased seats), --all is not supported. An empty result can mean the workspace has no seats, or that billing needs attention.
curviate account linkConnect a LinkedIn account to an empty seat. If LinkedIn requires verification you'll be prompted for the code interactively. Given --auth-method and its credentials, a non-interactive shell exits 12 at that step and you finish with curviate account checkpoint solve <account_id> --code.
curviate account connect-session pollPoll the status of an in-progress connect (auth intent) for completion. Without --wait: a single poll. The JSON status field (pending | resolved | expired | failed) tells you what to do next. With --wait: block on the same adaptive cadence as account link until a terminal state.
curviate account updateUpdate an account's metadata, connection location or own proxy. Prints the updated account, with connection_location re-read after a location change.
curviate account disconnectHard-disconnect a LinkedIn account and release its seat.
curviate account checkpoint solveSolve a checkpoint challenge with an OTP / 2FA code.
curviate account checkpoint pollPoll for mobile-app approval of a pending checkpoint challenge. With --wait, blocks on an adaptive cadence until a terminal state (or --timeout elapses) instead of a single poll.
curviate account checkpoint requestRe-request the challenge notification for a pending checkpoint (e.g. re-send an OTP email, SMS code, or mobile-app approval push). Not every challenge type supports it; an authenticator- app code has nothing to re-send. The response's resent boolean tells you honestly whether a new notification actually went out; the command still exits 0 either way. With --challenge it instead answers a challenge_selection checkpoint by picking the verification method.

Exit codes: the exit code table.