๐ฌ LinkedIn Conversation Scraper
Under maintenancePricing
from $3.99 / 1,000 results
๐ฌ LinkedIn Conversation Scraper
Under maintenancePricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeBase
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Pull every conversation from your LinkedIn inbox into structured JSON โ messages, dates, participants, headlines, distance, pronouns, and more. No fragile API hacks. Just your own session cookie and a real Chromium tab under the hood.
โจ Why Choose Us?
- ๐ก๏ธ API-free, fingerprint-proof โ drives a real Chromium browser, immune to LinkedIn's JA3 / queryId / CSRF rotations
- โก Live streaming โ every conversation is pushed to the dataset the moment it's parsed (crash mid-run? you still keep what was collected)
- ๐ Smart proxy escalation โ starts direct, falls back to datacenter, then residential (3 retries) only when LinkedIn pushes back
- ๐งฉ Optional profile enrichment โ pulls headline, distance (1st/2nd/3rd), and pronouns from each participant's profile page
- ๐
Date filters โ
today_limitordate_limitto grab only what's recent - ๐ Bulk URL mode โ feed it a list of thread or profile URLs to scrape specific conversations
- ๐ฏ Stylish, modern input UI with emoji-rich field labels
๐ Key Features
| Feature | What it does |
|---|---|
| ๐ฅ Inbox sweep | Primary, All, Other, Archive, Spam |
| ๐ Filters | InMail, Starred, 1st-degree only, Unread only |
| ๐ฌ Per-thread depth | Configurable max messages per conversation |
| โจ Profile enrichment | Headline + distance + pronouns from each participant |
| ๐ Tiered proxy fallback | Direct โ Datacenter โ Residential (ร3 retries) |
| ๐ Date filters | Today-only or older-than-cutoff |
| ๐พ Live saving | Actor.push_data per conversation โ no data loss on crash |
๐ฅ Input
| Field | Type | Required | Description |
|---|---|---|---|
๐ li_at | string | Yes | Your li_at cookie from www.linkedin.com (treat as a password) |
๐ urls | array | No | Optional bulk list of thread URLs or profile URLs |
๐ฅ list_type | string | No | PRIMARY_INBOX (default), INBOX, SECONDARY_INBOX, ARCHIVE, SPAM |
๐ filter | string | No | INMAIL, STARRED, firstDegreeConnections:true, read:false |
๐ฌ max_convs | integer | No | Max conversations to scrape (0 = unlimited) |
๐ max_messages_per_conv | integer | No | Max messages per conversation (0 = unlimited) |
๐
today_limit | boolean | No | If true, only today's conversations |
๐๏ธ time_frame | string | No | ALL_TIME (default), LAST_24_HOURS, LAST_3_DAYS, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS, LAST_90_DAYS, LAST_6_MONTHS, LAST_YEAR |
โจ enrich_profiles | boolean | No | Visit each participant's profile page for headline / distance / pronouns |
โฑ๏ธ request_delay | number | No | Float seconds between requests (default 1.0) |
๐ proxyConfiguration | object | No | Defaults to no proxy; auto-escalates if LinkedIn blocks |
Example input
{"li_at": "AQEDAU...your_cookie...","list_type": "PRIMARY_INBOX","filter": "","max_convs": 10,"max_messages_per_conv": 25,"enrich_profiles": true,"today_limit": false,"proxyConfiguration": { "useApifyProxy": false }}
๐ค Output
Each dataset record is one conversation:
{"participants": [{"url": "https://www.linkedin.com/in/ACoAADM...","distance": "DISTANCE_1","pronoun": "she/her","picture": "https://media.licdn.com/.../profile.jpg","firstname": "Raisul","lastname": "Islam","headline": "Founder @ Authentic Digital Marketing","entityUrn": "ACoAADM..."}],"status": "ACTIVE","unread_count": 0,"last_read_at": null,"last_activity_at": "2026-05-03 15:15:00","is_group_chat": false,"creator": "ACoAAEjB...","created_at": "2026-05-03 15:15:00","messages": [{ "content": "test message", "date": "2026-05-03 15:15:00", "who": "me" }],"total_messages": 1,"last_message_date": "2026-05-03 15:15:00","last_message_content": "test message","last_message_who": "me","days_from_today": 11,"_conversation_id": "2-ZmExYTkx..."}
Field reference
| Field | Description |
|---|---|
participants | Array of participant objects (name, URL, headline, distance, pronoun, picture, entityUrn) |
status | Conversation status (ACTIVE) |
unread_count | Number of unread messages |
last_activity_at | Timestamp of the most recent message (YYYY-MM-DD HH:MM:SS) |
is_group_chat | True if multi-person thread |
creator | URN of whoever sent the first message we collected |
created_at | Timestamp of the first collected message |
messages | Array of { content, date, who } (oldest โ newest) |
total_messages | Number of messages collected |
last_message_* | Convenience fields for the most recent message |
days_from_today | Days since the last activity |
_conversation_id | LinkedIn's thread URN |
๐ How to Use (Apify Console)
- ๐ Log in to Apify Console โ Actors.
- ๐ Find LinkedIn Conversation Scraper and open it.
- ๐ช Grab your
li_atcookie:- Open linkedin.com in Chrome โ press F12 โ Application โ Cookies โ
https://www.linkedin.comโ copy the value ofli_at.
- Open linkedin.com in Chrome โ press F12 โ Application โ Cookies โ
- ๐ Paste it into the ๐ LinkedIn Session Cookie (li_at) field.
- โ๏ธ Configure inbox type, filter, limits, and proxy if needed.
- โถ๏ธ Click Start.
- ๐บ Watch the live log โ each conversation is logged as it's saved.
- ๐ Open the Dataset tab when the run finishes.
- ๐ค Export to JSON / CSV / XLSX / Excel.
๐ก Tip: Start with
max_convs = 5to validate everything is working before launching a full sweep.
๐ค Use via API / MCP
Run the actor via REST
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"li_at": "AQEDAU...","list_type": "PRIMARY_INBOX","max_convs": 10,"max_messages_per_conv": 25,"enrich_profiles": true,"proxyConfiguration": { "useApifyProxy": false }}'
Wait for results synchronously
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"li_at":"AQEDAU...","max_convs":3}'
๐ Proxy Strategy
The scraper escalates only when LinkedIn pushes back:
| Step | Tier | What happens |
|---|---|---|
| 1๏ธโฃ | ๐ข Direct | Try without any proxy first |
| 2๏ธโฃ | ๐ก Datacenter | If LinkedIn blocks โ switch to a datacenter proxy |
| 3๏ธโฃ | ๐ด Residential | If datacenter still gets blocked โ residential proxy with 3 retries |
| ๐ | Sticky | Once we escalate, we stay on that tier for the rest of the run |
Every escalation step is logged so you can see what's happening:
๐ Attempting connection without proxy (attempt 1/1)โฆ๐ [NONE] LinkedIn redirected to login/checkpoint โ treated as a block๐ Attempting connection via DATACENTER proxy (proxy.apify.com) โ attempt 1/1โ [DATACENTER] Connected successfully to LinkedIn.๐ข Locked onto DATACENTER proxy for the rest of the run.
๐ Best Use Cases
- ๐งโ๐ผ CRM hygiene โ sync LinkedIn DMs into HubSpot / Salesforce
- ๐ผ Recruitment ops โ track candidate replies across hundreds of outreach threads
- ๐ Sales enablement โ surface stale conversations and follow-ups
- ๐๏ธ Personal archive โ back up your own messaging history before LinkedIn deletes it
- ๐ฌ Research โ analyze your own DM patterns for sentiment / topic / response time
๐ฐ Pricing
This actor runs on pay-per-usage โ you pay only the underlying Apify platform usage (compute units, proxies if used, dataset writes). No additional per-event charges from us.
Run-time guideline: with
enrich_profiles = true, expect ~5โ10 seconds per conversation. With enrichment off, it's typically ~2โ3 seconds per conversation.
โ Frequently Asked Questions
Where do I find my li_at cookie?
Open linkedin.com, press F12, go to Application โ Cookies โ https://www.linkedin.com, and copy the Value of the li_at cookie. It looks like AQEDA.... Treat it like a password.
Will this work without a cookie?
No. LinkedIn's messaging endpoints all require an authenticated session. We use your cookie so the scraper sees the same inbox you do.
Why does it sometimes need a proxy?
If you run the actor often (or from a flagged IP), LinkedIn may redirect to a login wall. The actor detects this automatically and escalates to a datacenter proxy, then residential. Most users will never need a proxy.
Will LinkedIn ban my account?
Use sensible limits. Don't run dozens of large sweeps a day. Increase request_delay if you see warnings. Scraping your own inbox at human-realistic rates is the lowest-risk pattern.
Can I scrape group chats?
Currently the actor labels every thread as is_group_chat: false and only enriches the first participant. Multi-participant threads still work โ you just get the first participant's profile detail.
Can I scrape someone else's inbox?
No. The li_at cookie ties to whoever generated it. You can only scrape your own inbox.
How is this different from the LinkedIn API?
The official API doesn't expose messaging to third parties. This actor uses a real browser to render the page exactly as you'd see it, bypassing API restrictions while staying within your own account's permissions.
โ ๏ธ Cautions / Legal
- ๐ You may only scrape data your account is authorized to see (your own inbox).
- ๐ Never share your
li_atcookie publicly โ it grants full access to your LinkedIn account. - ๐ You are responsible for compliance with LinkedIn's User Agreement, GDPR, CCPA, and any other applicable law in your jurisdiction.
- ๐ค Don't use this to spam, harass, or unsolicited-message anyone โ automated outreach violates LinkedIn's rules.
- ๐ฆ Respect rate limits โ protect your account by keeping
request_delay โฅ 1.0andmax_convsreasonable.
๐ Support and Feedback
- ๐ Found a bug? File an issue through the Actor's Issues tab.
- ๐ก Have a feature request? We listen.
- ๐ฌ Need help? Use Apify Console's Discussion tab.
Built with โค๏ธ on Apify โข Documentation โข Apify Console