API referenceDirect actions
GET
/accounts/{id}/connections/{identifier}

JavaScript SDK: swarmhit.accounts.connections.get(accountId, identifier)

This sender's connection with a profile: status (not_connected / pending / connected), connection degree, whether it is an open profile, and whether the sender can message or invite them. A read; no profile view is registered and no cap is used. pending only reflects invitations this sender sent through direct actions: one sent by a campaign or from LinkedIn itself reads not_connected. Use the username in lower case: an identifier with capital letters or underscores is treated as LinkedIn's internal member id and refused with 400.

Authorization

bearerAuth
AuthorizationBearer <token>

An API key created on the Access tokens page.

In: header

Path Parameters

id*string
identifier*string

The profile's public identifier (username), e.g. "john-doe".

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/accounts/string/connections/string"
{  "data": {    "profileUrl": "string",    "publicIdentifier": "string",    "status": "not_connected",    "degree": 1,    "openProfile": true,    "canMessage": true,    "canInvite": true,    "checkedAt": "2019-08-24T14:15:22Z"  }}

Search people in the database POST

**JavaScript SDK:** [`swarmhit.database.people.search(params)`](/smart-api/sdk/methods#database.people) Search the people database by named filters. At least one filter with a value is required (`excludeExisting` alone does not count); unknown filter keys are rejected. Array filters match any of their values (25 values at most each); text filters are fuzzy; numeric and boolean filters must be JSON numbers and booleans (a string is ignored). Every result returned consumes workspace AI credits, at the Database search price (Settings → Credits usage, for owners and admins); saved people hidden by `excludeExisting` are not charged. Paginate by passing the returned `nextCursor` back as `cursor` (filters must stay identical between pages); a cursor that can no longer be resumed is a 400. Out of credits is a 400 with `code: warning-no-credits`; a filter problem is a 400 with `code: warning-database-query`.

Comment on a post POST

**JavaScript SDK:** [`swarmhit.accounts.posts.comment(accountId, params)`](/smart-api/sdk/methods#accounts.posts) Comment on a LinkedIn post from this account with the exact text you provide, or reply to one of its comments. Pass exactly one of `postUrl` (that post) or `profileUrl` (the lead's most recent post). With a `postUrl`, `commentId` replies to that comment instead (find one with GET /accounts/{id}/post-comments); a comment's own link (LinkedIn's "Copy link to comment", with `commentUrn=`) as the `postUrl` replies to that comment too. Posts at once. Counts against the account's daily post-comment cap. Returns 422 when the lead has no recent post, and 422 with `code: post_not_found` when `postUrl` is not a post's link (checked before anything else) or this account can't see the post. A reply that can't be made (a comment we can't read, or one on another post) is a 400: it never becomes a comment on the post. A post given by its link isn't tied to a lead: no lead is created, and the action's `profileUrl` is the post's author when that is a person.