curviate account link

Connect a LinkedIn account to an empty seat. AI agents: do not read, pass or ask for passwords, cookies or cookie exports; run curviate account connect-request create and hand the person its link instead. --cookies-file takes an export of a live LinkedIn session; delete it after use. 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.

Usage

curviate account link [flags]

Requires:

  • Exactly one of --country, --ip or --proxy-host on a new connect; a reconnect (--account-id) may omit it to keep the account's location.
  • --user-agent with --auth-method cookie or --cookies-file.
  • --seat-id with --preview or --account-id, and when zero or several seats are free.
  • --password-stdin only with --auth-method credentials; --li-at-stdin only with --auth-method cookie.

Examples

curviate account link --auth-method credentials --email jane@example.com --password-stdin --country US
curviate account link --auth-method credentials --email jane@example.com --password-stdin --account-id acc_YOUR_ACCOUNT_ID --seat-id SEAT_ID
curviate account link --cookies-file linkedin-cookies.json --user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" --country US

Flags

FlagTypeRequiredDescription
--seat-idstringnoEmpty seat to bind the account to, listed by curviate account seats (a free seat there is one this call accepts right now). Omit it and the only free seat is used; with zero or several free the command says so and connects nothing. Required with --preview (which calls nothing) and with --account-id (a reconnect keeps the seat that account already holds).
--auth-methodstringnoAuthentication method: credentials | cookie. Not needed with --cookies-file, which implies cookie.
--cookies-filestringnoThe Cookie-Editor JSON export of a signed-in linkedin.com tab: a path, or - to read it from stdin (on a terminal: paste, then Ctrl-D; nothing is shown). The file holds a live LinkedIn session: delete it after use. Only li_at and li_a are sent. Needs --user-agent. Not with --li-at, --li-at-stdin, --li-a, --email, --password or --password-stdin.
--emailstringnoLinkedIn email (credentials method).
--passwordstringnoLinkedIn password (credentials method). Note: a value on the command line is visible to other processes via ps and saved in shell history; prefer --password-stdin or the CURVIATE_LINKEDIN_PASSWORD env var.
--password-stdinbooleannoRead the LinkedIn password from stdin (one line, trimmed). Default: false.
--li-atstringnoLinkedIn session cookie li_at (cookie method). Note: a value on the command line is visible to other processes via ps and saved in shell history; prefer --li-at-stdin or the CURVIATE_LINKEDIN_LI_AT env var.
--li-at-stdinbooleannoRead the li_at session cookie from stdin (one line, trimmed). Default: false.
--li-astringnoOptional premium session cookie li_a (cookie method). Note: a value on the command line is visible to other processes via ps and saved in shell history; prefer the CURVIATE_LINKEDIN_LI_A env var.
--countrystringnoWhere LinkedIn sees this account connecting from: a two-letter ISO 3166-1 country code (e.g. US, DE; case-insensitive), the country its owner normally signs in from. A new connect needs exactly one of --country, --ip or --proxy-host. Strict: the connect fails rather than use another country, unless --allow-country-fallback.
--ipstringnoA public IPv4 address whose country becomes the connection location (strict, like --country). An alternative to --country.
--allow-country-fallbackbooleannoWith --country or --ip: allow a connection from another country when none is free in the chosen one. Without it the connect is strict and fails instead.
--proxy-protocolstringnoProxy protocol: http | https | socks5 | socks4.
--proxy-hoststringnoYour own proxy's host or IP. Your proxy decides where LinkedIn sees the account connecting from, so --country, --ip and --allow-country-fallback are not accepted with it.
--proxy-portstringnoProxy port.
--proxy-usernamestringnoProxy auth username.
--proxy-passwordstringnoProxy auth password. Note: a value on the command line is visible to other processes via ps and saved in shell history; prefer the CURVIATE_PROXY_PASSWORD env var.
--user-agentstringnoBrowser User-Agent to pin for this account. Required with --auth-method cookie: a session cookie only works paired with the User-Agent of the browser it was copied from, and the command exits 2 without it. Optional with --auth-method credentials, where it is still pinned for the account when given.
--recruiter-contract-idstringnoRecruiter contract to select once the account is connected, so a connected account may still have none selected: contract_selected: false in the answer means connected, not selected. Only meaningful when the LinkedIn account holds a Recruiter subscription.
--linkedin-premiumstringnoNarrow this connection to one LinkedIn premium surface: sales_navigator | recruiter. Omit it and the connect asks for every product and LinkedIn activates what the account holds. Applies to THIS call only and is never remembered, so restate it on every connect and reconnect where Recruiter must win.
--productsstringnoComma-separated premium products to ask for: sales_navigator, recruiter. Omit to ask for both (--linkedin-premium still narrows). Classic LinkedIn and company pages are always included.
--external-idstringnoYour own id for this account's end user (1-255 chars, not unique). Returned on the account and every account webhook; filter with curviate account list --external-id. Use an opaque id, not an email.
--timezonestringnoIgnored: the account's time zone follows its connection location. Accepted so existing scripts keep working; nothing is sent.
--warm-upbooleanno--warm-up connects the new account with warm-up on: its limits start at 15% and rise to full over 5 weeks. Default off (full limits from the start); --no-warm-up is accepted and changes nothing. A new connect only; for a connected account use curviate account warm-up.
--account-idstringnoExisting account id (acc_...) to re-authenticate IN PLACE. Passing it makes this an in-place reconnect of that account. Omit to connect a NEW account into --seat-id.
--no-interactivebooleannoNever prompt for a checkpoint code. On a checkpoint, always render the envelope and exit 12, even on a TTY. Default: false.

Also accepts these global flags: --api-key, --profile, --account, --team, --base-url, --timeout, --json, --fields, --preview, --verbose, --beta.

Exit codes: the exit code table. More commands: Account.