Read People's Latest LinkedIn Posts
li_fetch_postsFetch each person's latest LinkedIn posts so you can personalise the first touch: pick ONE post and write the connection note or first message about it before importing, or choose the post to react to in the engage-before-invite step. Up to 2 posts per person, newest first, their own words only: plain reposts are left out, and a quote post is marked isRepost with a short cut of the post it shares (repostOf). Each post carries url, text (cut at 1,200 characters), postedAt, reactions and comments (null = the provider did not say, never 0), and reactable: false means the engage-before-invite step cannot use it (a group post, or another link li_ingest_prospects refuses as engagePostUrl; notReactable says why). No browser and no LinkedIn account is used; this reads a third-party provider. COST: 1 enrichment lookup per person not already read in the last 3 days, from the same shared pool as li_enrich_profiles, whether they have 2 posts or none; anyone read recently comes back free (cached: true), and refresh=true re-reads at full price. Per-person status: posts (found), no_posts (read: nothing of their own, or nothing inside sinceDays; charged; olderPosts counts what sinceDays hid), not_found (the provider says it is not a profile it can read; not charged), unreadable (the provider answered and we could not tell what it means; not charged, retry later), failed (the read broke; not charged), skipped_no_credits, skipped_plan_inactive. Never read unreadable or failed as "they do not post". Siblings: for who a person IS (headline, role, employer) use li_enrich_profiles; for what we already hold on a contact, including posts read earlier at no cost, use li_contact_dossier with fields ['posts']. Pass estimateOnly=true first for a long list: it reads nothing and charges nothing. Always relay message: it says what was charged and what is left.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| refresh | No | Ignore posts read in the last 3 days and read again. Costs a lookup for every person. | |
| maxPosts | No | How many of each person's latest posts to return, 1 to 2 (more is read as 2). Default 2. Costs the same either way: 1 lookup per person. | |
| sessionId | No | Account id from li_list_accounts. Needed (or sessionLabel) when you have more than one account; never guessed. | |
| sinceDays | No | Only return posts from the last N days. A person whose latest posts are all older comes back no_posts with `olderPosts` saying how many were hidden. Default: no age limit. | |
| profileUrls | Yes | LinkedIn profile URLs. One real read takes at most 50 people and a longer list is refused rather than cut short; estimateOnly answers for up to 500 and says how many calls to split it into. | |
| estimateOnly | No | Preview instead of reading anything: how many were read recently (free), how many would be read, how many lookups that charges and what is left. Charges nothing and reserves nothing. | |
| sessionLabel | No | Account by label, LinkedIn name, profile slug or member id (li_list_accounts). Needed (or sessionId) when you have more than one account; never guessed. |