# Lempile > Lempile is an API for LinkedIn and X: read profiles and inboxes, send messages, invitations, posts and replies from real accounts, each in its own session, on its own IP, at a human pace. Its LinkedIn API answers Unipile's paths, fields and errors. Below: what Lempile is and costs, then its docs, every page plain Markdown at its own address plus `.md`. All docs pages in one file: [llms-full.txt](https://lempile.com/llms-full.txt). MCP server, to search and read the docs from an AI tool: `https://lempile.com/docs/mcp` (Streamable HTTP). ## Lempile - Products: Lempile Direct, a LinkedIn API on Unipile's paths, fields and errors (live); an X API for posts, replies, quotes, likes, reposts and follows (early access); a SerpApi-compatible Google Search API, Email Finder and People Search (early access). - Account safety: each connected account keeps its own signed-in session and its own IP. Lempile paces every account itself: one call at a time, 1.5 to 3 seconds apart, at most 1,500 calls and 150 writes a day, and a 15-minute rest when LinkedIn asks to slow down. - Writes can be dry-run (`?dry_run=true`) and retried safely with an `Idempotency-Key`. - Not supported: LinkedIn Sales Navigator and Recruiter. - Pricing: per connected account, LinkedIn or X. Up to 10 accounts €49 a month in total; from 11 accounts €5.00 down to €3.00 per account a month (USD, GBP, CAD, AUD and NZD lists too). Excluding VAT. 7-day free trial, no card needed. No per-call fees. - Servers in the EU. ## Pages - [Guides and free tools](https://lempile.com/guides): Guides and free tools for LinkedIn and X: APIs, n8n, Boolean search, post preview, link previews, image sizes, hashtags, headlines, summaries, X limits, rate limits, scrapers, Sales Navigator, messages, character and connection limits, X API pricing, Proxycurl alternatives and more. - [Pricing](https://lempile.com/pricing): Billed per connected LinkedIn or X account, every endpoint included, no per-call fees, 7-day free trial. - [Lempile vs Unipile](https://lempile.com/compare/unipile): Lempile and Unipile side by side for LinkedIn: same API format and price list; what differs and what Lempile doesn't do yet, with dated sources. - [LinkedIn API](https://lempile.com/linkedin-api): An API for LinkedIn profiles, inboxes, messages, invitations, posts, comments and search, from your users' own accounts. Unipile-compatible. - [X API (early access)](https://lempile.com/x-api): Post, reply, like, repost and follow from real X accounts, with Articles, GIFs, pins and daily analytics, priced per account. In early access. - [LinkedIn post date extractor](https://lempile.com/tools/linkedin-post-date): Free tool: the exact publication date of a LinkedIn post, comment or reply (or an X post), read from the id in its link, in the browser. - [LinkedIn text formatter](https://lempile.com/tools/linkedin-text-formatter): Free tool: a LinkedIn post editor with bold, italic, underlined, crossed-out and monospace text and bullets, and a character count against LinkedIn's limits. - [LinkedIn Boolean search builder](https://lempile.com/tools/linkedin-boolean-search): Free tool: build and check LinkedIn Boolean search strings, with AND, OR, NOT, quotes and parentheses applied in LinkedIn's own order. - [LinkedIn post preview](https://lempile.com/tools/linkedin-post-preview): Free tool: see how a LinkedIn post looks in the feed on desktop and on a phone, where it folds behind …more, and its length against the 3,000-character limit. - [LinkedIn headline generator](https://lempile.com/tools/linkedin-headline-generator): Free tool: LinkedIn headlines from your job title, who you help, one proof and a few keywords, within the reported 220-character limit, plus a check of your current one. - [LinkedIn link preview checker](https://lempile.com/tools/linkedin-link-preview): Free tool: check how a link will preview on LinkedIn, with the four Open Graph tags LinkedIn requires and the card image's size against its rules. - [LinkedIn image sizes and resizer](https://lempile.com/tools/linkedin-image-size): Free tool: every LinkedIn image size from LinkedIn's Help Center (profile photo and cover, posts, articles, Pages, groups, events) and a resizer that crops an image to one in the browser. - [LinkedIn summary generator](https://lempile.com/tools/linkedin-summary-generator): Free tool: LinkedIn About section drafts in four styles from a few facts, under the 2,600-character limit, with five annotated examples and a check of yours. - [LinkedIn hashtags](https://lempile.com/tools/linkedin-hashtags): Free tool: what LinkedIn still documents about hashtags, how many to use, readable hashtags from your topics, and a check of the ones in your post. - [LinkedIn character limits](https://lempile.com/guides/linkedin-character-limits): Every character limit LinkedIn publishes (posts, articles, comments, connection notes, InMail), each with its LinkedIn Help source, and a counter. - [LinkedIn connection and invitation limits](https://lempile.com/guides/linkedin-connection-limits): What LinkedIn's own help pages say about the 30,000-connection cap, invitation restrictions and how long they last, and how Lempile paces invitations. - [Proxycurl alternatives](https://lempile.com/guides/proxycurl-alternatives): Proxycurl shut down on 4 July 2025 after LinkedIn sued it. What happened, the ways to replace it, and where Lempile fits and doesn't. - [Does LinkedIn have an API?](https://lempile.com/guides/linkedin-api): Which LinkedIn APIs any developer can use, which need LinkedIn's approval or a partner program, and what unofficial APIs do instead, from LinkedIn's own docs. - [LinkedIn profile API](https://lempile.com/guides/linkedin-profile-api): What LinkedIn's official Profile API returns and who can use it, and how to read a profile with its experience, education and skills through a member's account. - [LinkedIn API pricing in 2026](https://lempile.com/guides/linkedin-api-pricing): LinkedIn's official API is free but mostly closed, and unofficial APIs charge per connected account. What each costs in 2026, with monthly examples. - [LinkedIn in n8n](https://lempile.com/guides/linkedin-n8n): Build LinkedIn workflows in n8n with HTTP Request and Webhook nodes: read profiles, send invitations, catch accepted ones and approve messages in Slack. - [LinkedIn Sales Navigator API](https://lempile.com/guides/linkedin-sales-navigator-api): Sales Navigator's API (SNAP) is for approved partners only, and LinkedIn isn't taking new ones. What it offers, and what developers use instead. - [LinkedIn API rate limits](https://lempile.com/guides/linkedin-api-rate-limits): LinkedIn's API limits calls per app and per member each day, resets at midnight UTC and doesn't publish the numbers. How to find yours and handle 429s. - [LinkedIn scrapers: what's allowed, and the alternatives](https://lempile.com/guides/linkedin-scraper): LinkedIn's User Agreement forbids scraping, and the hiQ case ended against the scraper. What the rules say, and what to use for the data you need. - [How to send LinkedIn messages with an API](https://lempile.com/guides/send-linkedin-messages-api): LinkedIn's two official messaging routes and who can use them, and how to send messages from a member's own account through an API, with code. - [X API pricing in 2026](https://lempile.com/guides/x-api-pricing): X's API has been pay-per-use since 6 February 2026: what each read and post costs, what changed for follows and likes, and worked monthly examples. - [X (Twitter) limits in 2026](https://lempile.com/guides/x-limits): X's own limits per account: posts and replies a day, follows, DMs, the 280-character count, and what “rate limit exceeded” means in the API, with a counter. - [Contact](https://lempile.com/contact): pricing over 5,000 accounts, moving off Unipile, X API early access. ## Lempile Direct A LinkedIn API on Unipile's paths, fields and errors, served from each account's own session, without a browser per call. - [Lempile Direct](https://lempile.com/docs/direct.md): Unipile's LinkedIn API paths, fields and errors, served by Lempile from each account's own browser session, without a browser per call. - [Quick Start](https://lempile.com/docs/direct/quick-start.md): From an API key to a connected LinkedIn account, a first read, a first webhook and a first write tried without sending it. - [Authentication And Accounts](https://lempile.com/docs/direct/authentication-and-accounts.md): API keys, account ids, account statuses, resync, removal, writes per account, and connecting accounts with hosted auth. - [Users And Profiles](https://lempile.com/docs/direct/users-and-profiles.md): The account's own profile, any profile with its sections, and lookup by profile URL. - [Relations And Invitations](https://lempile.com/docs/direct/relations-and-invitations.md): Connections, sent invitations, sending and withdrawing invitations, and LinkedIn's refusals. - [Chats And Messages](https://lempile.com/docs/direct/chats-and-messages.md): The LinkedIn inbox: chat and message ids, chats, messages, attendees, starting a chat, sending messages and files. - [Posts](https://lempile.com/docs/direct/posts.md): A member's or a company's posts, one post, creating a post with mentions, images or a video, and deleting one. - [Comments And Reactions](https://lempile.com/docs/direct/comments-and-reactions.md): A post's comments, replies and reactions; commenting, reacting, and Direct's routes to delete a comment or remove a reaction. - [Company Search](https://lempile.com/docs/direct/company-search.md): LinkedIn's classic company search, by keywords. - [Search, Company Pages And Raw Data](https://lempile.com/docs/direct/search.md): LinkedIn's classic search for people, posts and jobs, the ids its filters take, company pages and their employees, and the raw route for reads. - [Webhooks](https://lempile.com/docs/direct/webhooks.md): Registering webhooks, every payload field by field, delivery and retries, authenticating deliveries, and timing. - [Errors And Limits](https://lempile.com/docs/direct/errors-and-limits.md): Every error type Direct answers, pacing and daily caps, retries, dry runs, Idempotency-Key and unknown outcomes. - [Migrating From Unipile](https://lempile.com/docs/direct/migrating-from-unipile.md): Moving a Unipile integration to Direct: base URL, key, account ids, chat ids, webhooks, hosted auth and fallback. - [Unipile Compatibility](https://lempile.com/docs/direct/unipile-compatibility.md): Every Unipile LinkedIn route and what Direct does with it: the same, the same with differences, or 501. - [API reference](https://lempile.com/docs/direct/reference.md): 49 endpoints, base URL `https://direct.lempile.com` - [OpenAPI document](https://lempile.com/docs-assets/openapi/direct.json) - [List accounts](https://lempile.com/docs/direct/reference/list-accounts.md): `GET /api/v1/accounts` - [Retrieve an account](https://lempile.com/docs/direct/reference/get-account.md): `GET /api/v1/accounts/{account_id}` - [Delete an account](https://lempile.com/docs/direct/reference/delete-account.md): `DELETE /api/v1/accounts/{account_id}` - [Resync an account](https://lempile.com/docs/direct/reference/resync-account.md): `POST /api/v1/accounts/{account_id}/resync` - [Resync an account (Unipile's GET form)](https://lempile.com/docs/direct/reference/sync-account.md): `GET /api/v1/accounts/{account_id}/sync` - [List all attendees](https://lempile.com/docs/direct/reference/list-all-attendees.md): `GET /api/v1/chat_attendees` - [List chats](https://lempile.com/docs/direct/reference/list-chats.md): `GET /api/v1/chats` - [Start a chat](https://lempile.com/docs/direct/reference/start-chat.md): `POST /api/v1/chats` - [Retrieve a chat](https://lempile.com/docs/direct/reference/get-chat.md): `GET /api/v1/chats/{chat_id}` - [Mark a chat read or unread, mute it](https://lempile.com/docs/direct/reference/patch-chat.md): `PATCH /api/v1/chats/{chat_id}` - [Delete a chat](https://lempile.com/docs/direct/reference/delete-chat.md): `DELETE /api/v1/chats/{chat_id}` - [List a chat's attendees](https://lempile.com/docs/direct/reference/list-chat-attendees.md): `GET /api/v1/chats/{chat_id}/attendees` - [List a chat's messages](https://lempile.com/docs/direct/reference/list-messages.md): `GET /api/v1/chats/{chat_id}/messages` - [Send a message in a chat](https://lempile.com/docs/direct/reference/send-message.md): `POST /api/v1/chats/{chat_id}/messages` - [Create a hosted auth link](https://lempile.com/docs/direct/reference/hosted-auth-link.md): `POST /api/v1/hosted/accounts/link` - [Search people, companies, posts or jobs](https://lempile.com/docs/direct/reference/search-companies.md): `POST /api/v1/linkedin/search` - [Retrieve a message](https://lempile.com/docs/direct/reference/get-message.md): `GET /api/v1/messages/{message_id}` - [Edit a message](https://lempile.com/docs/direct/reference/edit-message.md): `PATCH /api/v1/messages/{message_id}` - [Delete a message](https://lempile.com/docs/direct/reference/delete-message.md): `DELETE /api/v1/messages/{message_id}` - [Create a post](https://lempile.com/docs/direct/reference/create-post.md): `POST /api/v1/posts` - [React to a post or a comment](https://lempile.com/docs/direct/reference/add-reaction.md): `POST /api/v1/posts/reaction` - [Remove a reaction](https://lempile.com/docs/direct/reference/remove-reaction.md): `DELETE /api/v1/posts/reaction` - [Retrieve a post](https://lempile.com/docs/direct/reference/get-post.md): `GET /api/v1/posts/{post_id}` - [Delete a post](https://lempile.com/docs/direct/reference/delete-post.md): `DELETE /api/v1/posts/{post_id}` - [List a post's comments](https://lempile.com/docs/direct/reference/list-comments.md): `GET /api/v1/posts/{post_id}/comments` - [Comment on a post](https://lempile.com/docs/direct/reference/comment-post.md): `POST /api/v1/posts/{post_id}/comments` - [Delete a comment](https://lempile.com/docs/direct/reference/delete-comment.md): `DELETE /api/v1/posts/{post_id}/comments/{comment_id}` - [List a post's reactions](https://lempile.com/docs/direct/reference/list-reactions.md): `GET /api/v1/posts/{post_id}/reactions` - [Look up a profile by URL, or list chat attendees](https://lempile.com/docs/direct/reference/list-users.md): `GET /api/v1/users` - [List followers](https://lempile.com/docs/direct/reference/list-followers.md): `GET /api/v1/users/followers` - [Send an invitation](https://lempile.com/docs/direct/reference/send-invitation.md): `POST /api/v1/users/invite` - [List sent invitations](https://lempile.com/docs/direct/reference/list-sent-invitations.md): `GET /api/v1/users/invite/sent` - [Withdraw an invitation](https://lempile.com/docs/direct/reference/withdraw-invitation.md): `DELETE /api/v1/users/invite/sent/{invitation_id}` - [Retrieve the account's own profile](https://lempile.com/docs/direct/reference/get-own-profile.md): `GET /api/v1/users/me` - [List relations](https://lempile.com/docs/direct/reference/list-relations.md): `GET /api/v1/users/relations` - [Retrieve a profile](https://lempile.com/docs/direct/reference/get-profile.md): `GET /api/v1/users/{identifier}` - [List a profile's or a company's posts](https://lempile.com/docs/direct/reference/list-user-posts.md): `GET /api/v1/users/{identifier}/posts` - [List webhooks](https://lempile.com/docs/direct/reference/list-webhooks.md): `GET /api/v1/webhooks` - [Create a webhook](https://lempile.com/docs/direct/reference/create-webhook.md): `POST /api/v1/webhooks` - [Delete a webhook](https://lempile.com/docs/direct/reference/delete-webhook.md): `DELETE /api/v1/webhooks/{hook_id}` - [Find search parameter ids](https://lempile.com/docs/direct/reference/search-parameters.md): `GET /api/v1/linkedin/search/parameters` - [Retrieve a company page](https://lempile.com/docs/direct/reference/get-company.md): `GET /api/v1/linkedin/company/{identifier}` - [Raw LinkedIn data (reads)](https://lempile.com/docs/direct/reference/raw-data.md): `POST /api/v1/linkedin` - [List received invitations](https://lempile.com/docs/direct/reference/list-received-invitations.md): `GET /api/v1/users/invite/received` - [Accept or decline a received invitation](https://lempile.com/docs/direct/reference/handle-invitation.md): `POST /api/v1/users/invite/received/{invitation_id}` - [List a member's comments](https://lempile.com/docs/direct/reference/list-user-comments.md): `GET /api/v1/users/{identifier}/comments` - [List a member's reactions](https://lempile.com/docs/direct/reference/list-user-reactions.md): `GET /api/v1/users/{identifier}/reactions` - [React to a message](https://lempile.com/docs/direct/reference/add-message-reaction.md): `POST /api/v1/messages/{message_id}/reaction` - [Remove a message reaction](https://lempile.com/docs/direct/reference/remove-message-reaction.md): `DELETE /api/v1/messages/{message_id}/reaction` ## Google Search API SerpApi-compatible Google results from real browsers, queue-first: create a search, poll it, read the archive. - [Overview](https://lempile.com/docs/google-search.md): Lempile exposes a SerpApi-compatible Google Search API at https://api.lempile.com. - [Create Search](https://lempile.com/docs/google-search/create-search.md): Use GET /search.json for JSON clients. GET /search is also supported for SerpApi compatibility. - [Poll Search](https://lempile.com/docs/google-search/poll-search.md): Use the search_metadata.json_endpoint returned by create-search responses. - [Retrieve Artifacts](https://lempile.com/docs/google-search/retrieve-artifacts.md): Every search record can expose archive endpoints through search_metadata. - [Errors And Limits](https://lempile.com/docs/google-search/errors-and-limits.md): Lempile uses queue-first behavior so temporary runner pressure does not immediately fail fresh searches. Most new searches return 202 Accepted and are resolved later through polling. - [API reference](https://lempile.com/docs/google-search/reference.md): 5 endpoints, base URL `https://api.lempile.com` - [OpenAPI document](https://lempile.com/docs-assets/openapi/google-search.json) - [Search Google](https://lempile.com/docs/google-search/reference/search.md): `GET /search` - [Search Google as JSON](https://lempile.com/docs/google-search/reference/search-json.md): `GET /search.json` - [Retrieve archived Google search JSON](https://lempile.com/docs/google-search/reference/retrieve-json.md): `GET /searches/{searchId}.json` - [Retrieve archived Google search HTML](https://lempile.com/docs/google-search/reference/retrieve-html.md): `GET /searches/{searchId}.html` - [Retrieve archived Google search JSON with pixel positions](https://lempile.com/docs/google-search/reference/retrieve-json-with-pixel-position.md): `GET /searches/{searchId}.json_with_pixel_position` ## Email Finder Work emails from LinkedIn profile URLs or ids, verified by Lempile's own resolver, in queued jobs. - [Overview](https://lempile.com/docs/email-finder.md): Queue-first B2B email discovery and lightweight identity resolution from LinkedIn profile URLs or public identifiers. Email Finder uses Lempile-owned resolver logic; it does not call Apify or an external contact database. When a workspace has a Ready connected LinkedIn account, Lempile may use that same-workspace account to resolve the visible profile identity before company domain and email verification. - [API reference](https://lempile.com/docs/email-finder/reference.md): 5 endpoints, base URL `https://api.lempile.com` - [OpenAPI document](https://lempile.com/docs-assets/openapi/email-finder.json) - [Create email finder job](https://lempile.com/docs/email-finder/reference/create-job.md): `POST /email-finder` - [Get email finder usage](https://lempile.com/docs/email-finder/reference/get-usage.md): `GET /email-finder/usage` - [Get email finder job](https://lempile.com/docs/email-finder/reference/get-job.md): `GET /email-finder/jobs/{jobId}` - [List email finder items](https://lempile.com/docs/email-finder/reference/get-items.md): `GET /email-finder/jobs/{jobId}/items` - [Export email finder CSV](https://lempile.com/docs/email-finder/reference/get-csv.md): `GET /email-finder/jobs/{jobId}.csv` ## People Search Search approved people snapshots by role, location and company, with contact availability. - [Overview](https://lempile.com/docs/people.md): People Search provides gated, Apollo-style lead discovery over approved Lempile people snapshots. It returns only safe search metadata plus contact availability. Raw email and phone values are handled by the separate People Reveal API. - [API reference](https://lempile.com/docs/people/reference.md): 2 endpoints, base URL `https://api.lempile.com` - [OpenAPI document](https://lempile.com/docs-assets/openapi/people.json) - [Search people](https://lempile.com/docs/people/reference/search.md): `POST /people/search` - [Reveal people contact details](https://lempile.com/docs/people/reference/reveal.md): `POST /people/reveal` ## Optional - [Changelog](https://lempile.com/docs/changelog.md): what changed in the APIs and in these docs