LinkedIn — Outreach

List pending sent invitations

Lists the connected account's outbound connection invitations that are still pending (haven't been accepted, rejected, or withdrawn). Drives the connection_accepted signal kind on the cadence runner side; usable directly by clients rendering a "sent invitations" view.

Response shape — names included

Unlike older URN-only LinkedIn list endpoints, this one returns resolved recipient identity already extracted server-side from LinkedIn's SDUI payload — no follow-up profile/lookup round-trip needed:

  • recipientName — Display name parsed from the aria-label="Withdraw invitation sent to NAME" anchor LinkedIn renders on each row. Always a non-empty string for valid invitations.
  • recipientPublicIdentifier — linkedin.com/in/<slug> segment. Build the profile URL as https://www.linkedin.com/in/${slug}/.
  • recipientUrn — urn:li:fsd_profile:ACoA…. Use when calling other LinkedIn API endpoints that take a profile URN.
  • invitationUrn — urn:li:fsd_invitation:<numeric>. Stable identifier for the invitation itself (used for withdraw on the LinkedIn side; not currently exposed as an Anjal endpoint).
  • recipientHeadline — Currently always empty string — the SDUI payload puts the headline in a separate textProps block we don't parse yet. Don't rely on it.
  • sentAt — Currently always null — LinkedIn's sent-invitations SDUI page doesn't expose the original send timestamp. Don't rely on it.
  • message — Currently always null — original invitation note isn't in the SDUI payload either. Don't rely on it.
  • state — Always "pending" for invitations returned by this endpoint (LinkedIn's SDUI page only lists pending). The type union includes accepted | withdrawn | rejected | expired | unknown for internal reconciliation use, but the public response only ever surfaces pending.

Pagination

  • count — page size, max 50, default 50
  • start — 0-based offset

LinkedIn's SDUI page embeds ~20 invitations per response. Asking for count > 20 may return fewer than requested; treat total as advisory rather than authoritative.

Worked example response

{
  "ok": true,
  "total": 3,
  "count": 3,
  "start": 0,
  "invitations": [
    {
      "invitationUrn": "urn:li:fsd_invitation:7195484920123456789",
      "recipientUrn": "urn:li:fsd_profile:ACoAAA…aaaa",
      "recipientPublicIdentifier": "jane-doe-1a2b3c",
      "recipientName": "Jane Doe",
      "recipientHeadline": "",
      "state": "pending",
      "sentAt": null,
      "message": null
    },
    {
      "invitationUrn": "urn:li:fsd_invitation:7195484921987654321",
      "recipientUrn": "urn:li:fsd_profile:ACoAAA…bbbb",
      "recipientPublicIdentifier": "john-smith-4d5e6f",
      "recipientName": "John Smith",
      "recipientHeadline": "",
      "state": "pending",
      "sentAt": null,
      "message": null
    }
  ]
}

Rendering recipe

const { invitations } = await mam.linkedinListSentInvitations({ sessionId });
for (const inv of invitations) {
  const profileUrl = `https://www.linkedin.com/in/${inv.recipientPublicIdentifier}/`;
  render({
    name: inv.recipientName,
    profileUrl,
    withdrawUrl: profileUrl,   // LinkedIn's withdraw lives on the recipient's profile UI
  });
}
get/linkedin/invitations/sent

Request

  • Base URL: https://anjal.app
  • URL: https://anjal.app/linkedin/invitations/sent
  • Auth: API key in header X-API-Key

Query parameters

sessionIdstring required
countinteger

Page size. Capped at 50; LinkedIn returns ~20 per SDUI response so larger counts may under-fill.

startinteger

0-based offset for pagination.

Response

Pending invitations.

okboolean
totalinteger

Total count of pending invitations on this page response. Advisory; LinkedIn doesn't expose a true overall count.

countinteger

Number of items in the invitations array.

startinteger

0-based offset of this page.

Changes

No recorded changes to this operation across all 1 revision of this API.