Skip to content
Docs

Changelog

What changed in Lempile's APIs and in these docs, newest first.

2026-10-30#

Lempile Direct: reposts read as Unipile's, and undone#

  • A plain repost now reads as Unipile's Post on every read (a profile's posts, one post, the posts search): the reposted post (its id, social_id, author, text and counts) with is_repost: true, reposted_by, repost_id (the repost's own id), repost_parsed_datetime and repost_content. A repost with words is the reposter's own post, with repost_content the post it shares.
  • DELETE /posts/{repost_id} undoes the account's own plain repost, as LinkedIn's "Delete repost" does; the reposted post stays.

Lempile Direct: Unipile's fields, side by side#

  • GET /users/{identifier} answers what Unipile answers: follower_count, connections_count, shared_connections_count, is_verified, connected_at, websites and contact_info with every profile (three LinkedIn calls), pictures at Unipile's sizes, and an invitation's real direction and state (RECEIVED / IGNORED).
  • GET /users/followers: the account's followers, newest first. GET /users/following answers Unipile's own 501.
  • Chats: content_type: "linkedin_offer" for the ads LinkedIn labels "LinkedIn Offer".
  • Company search: each company's logo, and no object, as Unipile's.
  • Comments: author_details and network_distance as Unipile's; a reply's thread_id is its parent comment.
  • POST /chats with linkedin[inmail]=true sends LinkedIn's Premium InMail as the web does.

Lempile Direct: search, company pages, received invitations and message actions#

  • POST /linkedin/search searches people (every Unipile filter: a company's employees with company), posts and jobs, besides companies, by Unipile's body, a LinkedIn search address (url) or cursor alone. GET /linkedin/search/parameters finds the ids the filters take. Sales Navigator and Recruiter answer 403 errors/feature_not_subscribed.
  • GET /linkedin/company/{identifier}: a company page. GET /users/{identifier}/comments and /reactions: a member's comments and reactions.
  • GET /users/invite/received and POST /users/invite/received/{invitation_id} (accept or decline).
  • Messages: POST and DELETE /messages/{message_id}/reaction, PATCH /messages/{message_id} (an edit, within 60 minutes). Chats: PATCH /chats/{chat_id} (setReadStatus, setMuteStatus) and DELETE /chats/{chat_id}.
  • POST /posts takes repost (a plain repost, as a page, or with your words). POST /linkedin (Unipile's raw route) reads LinkedIn's API with the account's session; writes go through Direct's own routes.

Lempile Direct: voice notes#

  • POST /chats/{chat_id}/messages and POST /chats send LinkedIn voice notes (voice_message), as Unipile does. Any audio works (m4a, mp3, ogg, webm, wav, aac, flac): Direct turns it into LinkedIn's AAC .m4a. 60 seconds at most (422 errors/invalid_message); a file that isn't audio answers 415 errors/unsupported_media_type.
  • Read back, a voice note is an attachment of type: "audio" with voice_note: true and its duration.
  • DELETE /messages/{message_id} deletes one of the account's own messages within 60 minutes of sending it, as Unipile does.

Ask AI#

  • Ask AI in the header, or ⌘I: ask a question in your own words and get an answer written from these docs, with links to the pages it comes from. Follow-up questions keep the conversation.
  • In search, the last row asks Ask AI your search.
  • Answers are written by AI, so check the linked pages before you build on them. Questions and answers aren't kept.

The docs for AI tools#

  • Copy page on every page: the page as Markdown, ready for an AI chat, or opened straight in ChatGPT or Claude.
  • Every page is plain Markdown at its own address plus .md, for example https://lempile.com/docs/direct/quick-start.md.
  • https://lempile.com/llms.txt lists every page; https://lempile.com/llms-full.txt has them all in one file.
  • An MCP server at https://lempile.com/docs/mcp: Cursor, VS Code, Claude Code or any MCP client can search these docs and read any page. Connect in one click from any page's menu.

2026-10-29#

Docs on lempile.com/docs#

Every guide and API reference now lives at https://lempile.com/docs, built from the same Markdown and OpenAPI files as before. New: search across guides and endpoints, code samples in cURL, JavaScript and Python, and Try it on every endpoint, with your own API key. On Lempile Direct, writes are tried with ?dry_run=true first.

Lempile Direct#

  • 13 guides and the full API reference: accounts and hosted auth, webhooks, profiles, relations and invitations, chats and messages, posts, comments and reactions, company search.
  • Keys belong to a workspace: a Direct key sees only its own workspace's accounts and webhooks. Another workspace's account answers like an unknown one.
  • A required parameter that's missing or of the wrong type answers Unipile's 400 (errors/missing_parameters, errors/invalid_parameters).
  • GET /users/followers and GET /users/following answer 501 errors/feature_not_implemented.

2026-06-12#

POST /people/search documented: filters by country, location, job title, seniority, company domain, size and industry, with facets and contact availability.

2026-06-11#

Email Finder#

Candidates are verified by Lempile's own verifier; the external verifier fallback is off by default.

2026-06-04#

Email Finder#

POST /email-finder creates a job from LinkedIn profile URLs or ids; poll it, then read its items or download them as CSV.

2026-06-01#

Google Search API#

New searches are queue-first: they answer 202 Accepted with a json_endpoint to poll until status is Success or Error. Cached searches may still answer 200 at once.