accounts.update

Update an account's configuration.

Prerequisites

  • A Curviate API key, passed as apiKey when you construct the client. Quickstart shows how to create one.

Signature

update(accountId: string, body: AccountUpdateBody): Promise<AccountUpdateResult>

Example

import { Curviate } from "@curviate/sdk";
 
const curviate = new Curviate({
  apiKey: "cvt_live_...",
  baseUrl: "https://api.curviate.com",
});
 
const account = await curviate.accounts.update("acc_123", { country: "DE" });
console.log(account.connection_location?.country); // "DE"

Parameters

NameTypeRequiredDescription
accountIdstringYesThe account ID (acc_...) of the account to update.
metadataobjectNoYour own flat string map for this account (up to 16 keys, key 40 chars, value 500). Replaces the stored map whole; null clears it.
external_idstringNoYour own id for this account's end user (1-255 chars), or null to clear it. Omit to leave it unchanged.
proxyobjectNoYour own proxy, or null to stop using it and return to a managed location (null requires country in the same request). Omit to leave it unchanged.
countrystringNoMove this account's connection location to this supported ISO 3166-1 alpha-2 country (e.g. US, DE). LinkedIn sees a new IP in that country and may ask the owner to verify, so change it only when the current location is wrong. Strict unless allow_country_fallback is true. On an account using your own proxy, send proxy: null with it.
allow_country_fallbackbooleanNoOptional. false (the default with country or ip): only ever connect from that country; a connect fails when no connection is free there. true: a connection from another country may be used when none is free in the chosen one. Not accepted with proxy.

Returns

Resolves to AccountUpdateResult. Top-level fields: object, account_id, status, auth_method, full_name, headline, connected_at, last_checked_at, seat_id, requested_products, external_id, owner_user_id, team_access, metadata, connection_location, substrate_created_at, account_states, activity_window, safety_warning.

Error codes

CodeWhat it means, and what to do
UNAUTHORIZEDThe API key is missing, malformed, or revoked. Check the key you passed to the client.
INVALID_REQUESTA parameter failed validation. The message names the offending field; fix the request rather than retrying it.
RATE_LIMIT_ACCOUNTThis account's own quota is exhausted. Wait for the window in the Retry-After header, then retry.
RATE_LIMIT_TENANTThe tenant-wide quota is exhausted across all accounts. Slow the whole workload, not just this call.
PLATFORM_RATE_LIMITLinkedIn is throttling this account. Back off well beyond the hinted delay; sustained pressure risks the account.
PLATFORM_ERRORAn upstream failure, usually transient: retry once with backoff before treating it as a real error. Check the response first, though. When it carries retry_likely_to_succeed: false and retry_hint: {kind: "never"}, retrying cannot help and backing off only delays the real answer.
ACCOUNT_NOT_FOUNDNo connected account with that id belongs to this tenant. List your accounts to get a current id.
CONNECTION_LOCATION_UNAVAILABLENo connection is free in that country right now, or the change landed elsewhere. Try a nearby country or allow fallback; read connectionLocation for where the account connects from now.
INTERNALAn unexpected server error. Retry once; if it persists, it is ours, not yours.
PAYLOAD_TOO_LARGEThree limits can trigger this. The platform's own ceiling on total request size is the lowest and the one you are most likely to hit: it starts rejecting at roughly 1 MB, so a handful of photo-sized images is refused even though it clears everything below. Above that, this API caps one attachment at 5 MiB of file content and the whole request body at 9 MiB. Attachments travel base64-encoded, which inflates them by about a third, so a 5 MiB file costs roughly 6.7 MiB of the body budget. Send fewer or smaller attachments; retrying unchanged will not help.
PLATFORM_NOT_IMPLEMENTEDThe requested configuration is not supported for this account. Retrying will not help.
RESOURCE_NOT_FOUNDThe id in the path does not exist, or is not visible to this account. Re-read it from the list endpoint that produced it.

Every code above is a stable CurviateError.code you can branch on. The full list, the response envelope, and retry semantics are in the Error codes reference.

Next steps

  • Quickstart: connect a LinkedIn account. An empty account list means the key works and nothing is connected yet.
  • accounts.list: List the tenant's connected LinkedIn accounts, cursor-paginated.
  • accounts.listSeats: List the workspace's live seats: each seat_id, whether an account occupied it, and that account_id (null when free).
  • SDK Quick Start: installation, the client, account scoping, and pagination.