Register your interest: Tag @Cody, get an agent
BlogResources

LinkedIn and CodeWords: what the API permits

Most of what people want to automate on LinkedIn is not available and scraping breaks the terms. What the official APIs actually allow, and where the useful automation sits instead.

Isha MagguIsha Maggu11 min read

Summarize with AI

LinkedIn and CodeWords: what the API permits
On this page

LinkedIn is the platform where the gap between what people want to automate and what is permitted is widest. Connection requests, profile scraping, automated messaging, bulk outreach — the demand is enormous, the tooling advertising it is abundant, and essentially none of it uses an official API, because there isn't one for any of it.

This page covers what the official APIs do allow, which is narrower and genuinely useful, and is worth understanding precisely so you build something that still works next quarter.

What we'll cover

What is not available

Stated plainly, because this is the part that saves time.

Automated connection requests. No API, and doing it through browser automation is against LinkedIn's terms and risks the account.

Profile scraping. Not permitted, and the account doing it is the one at risk rather than the tool.

Automated personal messaging. Messaging APIs exist for specific sanctioned scenarios, not for outreach.

Searching for people programmatically. Not available in the general case.

Reading other companies' analytics or follower lists. Your own, yes. Anyone else's, no.

Tools offering these operate by driving a logged-in browser session, which breaks the user agreement and puts the account at risk of restriction. Whether to do that is a business decision rather than a technical one, and it is worth making deliberately rather than discovering after a restriction.

What the LinkedIn APIs reach

Share on LinkedIn posts to a personal profile or an organisation page, including text, links, images, and video.

Organisation pages can be managed, with posts scheduled and page details read, given the right permissions.

Analytics for your own pages and posts — impressions, engagement, follower demographics — at varying granularity.

Lead Gen Forms deliver the submissions from LinkedIn ad campaigns, which is the most immediately valuable endpoint available.

Advertising APIs cover campaign management and reporting for accounts you administer.

Sign In with LinkedIn provides basic profile information for people who authenticate with it, with their consent.

That list is the honest extent of it for most organisations, and the second half of it is genuinely worth building around.

Access, which is the real constraint

Getting permission is a larger part of a LinkedIn project than writing the code.

Products are requested individually. Access is granted per product rather than as a blanket developer permission, and each has its own criteria.

Some products require a partnership, with a review process and a business case rather than a form.

Page administration is required for anything touching an organisation, granted by somebody with the right role on the page.

Advertising access requires the corresponding role on the ad account.

Review takes time, and the outcome is not guaranteed.

Confirm what access you have before planning anything, because the common failure here is a project scoped around a capability the organisation turns out not to be approved for.

Connecting it to CodeWords

CodeWords connects to more than 3,000 integrations, and the connection is made once and reused.

  1. Open CodeWords and start a new automation.
  2. Describe what should happen in plain language to Cody, the automation builder: which page, what triggers a post or a retrieval, and where the result goes.
  3. Authorize the connection with an account holding the necessary page or ad account role.
  4. Describe the exceptions: an expired token, a post rejected, a lead retrieved twice.
  5. Post to a test page before anything publishes publicly.

You describe the outcome; Cody builds it, connects it, and deploys it. The free plan covers light use, with Pro at $39 per month and Business at $100 per month as usage grows; details are on the pricing page.

Seven automations worth building

Lead gen form delivery into the CRM. Submissions into the system where somebody will follow up, within minutes rather than when somebody next exports. Covered below because it is the clearest win.

Publishing from your content pipeline. When something is approved, it posts to the company page without anybody copying text between systems.

Page performance reporting. Your own page and posts, compared against your own history, delivered where the team works.

Cross-channel reporting. LinkedIn alongside your other channels in one view, which nobody assembles by hand consistently.

Campaign reporting joined to outcomes. Ad spend against what the leads actually became, which requires joining LinkedIn's data with your CRM and is the only version of the number worth having.

Content calendar synchronisation. What was planned against what was published, so the calendar reflects reality.

Engagement alerting. A post performing unusually well or badly, flagged promptly, since the response to a post gaining traction is time-sensitive.

Lead gen forms, the best of it

If you run LinkedIn ads, this is the automation to build first, and the reasons are specific.

Speed matters enormously. A lead contacted within minutes is a different conversation from one contacted the next day, and manual export guarantees the latter.

The data is clean. Lead gen forms pre-fill from the member's profile, so you get correct names and companies rather than what somebody typed on a phone.

Map to real fields. Company, role, and seniority arrive as structured data and deserve to land in CRM fields rather than a notes box.

Deduplicate on arrival. The same person can submit on several campaigns, and creating three records is a poor start.

Record the campaign. Which campaign and which form, so attribution survives past the first week.

Acknowledge immediately. A confirmation from a person, or clearly from your company, sets expectations while interest is still live.

Where the automation actually belongs

Since the platform limits what you can do on LinkedIn, most of the value sits either side of it.

Before publishing: assembling the post, checking it against your own guidelines, routing it for approval, scheduling it.

After the lead arrives: routing, enrichment from your own data, the follow-up task, the acknowledgement.

Around reporting: joining LinkedIn's numbers with everything else so somebody can see performance in one place.

In the CRM: which is where the actual work of following up happens, and where LinkedIn's data is most useful.

Almost none of this touches LinkedIn's API beyond retrieving leads and publishing posts, which is a reasonable description of what a sustainable LinkedIn integration looks like.

Publishing from a pipeline, without losing the point

Company page posting is supported, and the way it is usually implemented removes most of its value.

Approval before publication, not after. A post that goes out and is then reviewed is a correction waiting to happen on a public page.

Keep the writing human. The scheduling is worth automating; the text is the content. A page posting obviously generated copy on a schedule performs worse than one posting less often.

Do not cross-post identically. The same text across every network reads as broadcast, and LinkedIn's audience behaves differently from the others. Share the asset, write the words separately.

Schedule by your own data. General advice about optimal posting times is largely folklore; your own page's analytics are specific to your audience and available to you.

Publish the record back. Write what was published, when, and its identifier into your content system, so the calendar reflects what happened rather than what was planned.

Leave the comments to people. Engagement on a post is where a page's reputation is made, and automated replies are recognisable immediately.

Building it so it survives

Handle token expiry properly. Access tokens expire and the refresh path is where these integrations break after weeks of working.

Make lead retrieval idempotent. Record the lead identifier before creating a CRM record, since retrieval can return the same lead again.

Validate posts before publishing. Length, link formatting, and image dimensions, checked before the call, since a rejection after the fact is harder to act on.

Record what was published and when, because the platform is not a reliable archive of your own content schedule.

Report the outcome. Posts published, leads retrieved, and records created, with anything skipped.

Limits worth knowing about

Rate limits apply per application and per member, with daily quotas on several endpoints.

Permissions are granted per product, and a call outside your approved products fails for authorisation reasons rather than access ones.

Analytics granularity is limited, particularly historically, so retain your own copy rather than expecting to query far back.

Some endpoints are versioned and deprecate on a schedule, so an integration needs occasional maintenance rather than none.

Personal profile posting is more restricted than page posting, which surprises people planning around individual accounts.

What to build first

Lead gen form delivery into your CRM, with deduplication and the campaign recorded. If you run LinkedIn ads, nothing else here comes close: the leads are already being paid for, the data is clean, and the difference between minutes and a day is the difference between a conversation and a voicemail.

Two habits make the difference. Map the fields properly rather than dumping the submission into a notes field, since seniority and company are the fields that determine routing. And acknowledge the person immediately, because the gap between submitting and hearing anything is where paid-for interest is lost.

Frequently asked questions

Can I automate connection requests?

Not through any official API. Tools offering it drive a logged-in browser session, which is against LinkedIn's terms and puts the account at risk of restriction. The account bears the consequence, not the tool.

Can I scrape profiles for lead data?

Not within LinkedIn's terms. Sign In with LinkedIn gives you profile data for people who authenticate with your application, with their consent, which is the sanctioned route and a much narrower one.

What is actually worth building?

Lead gen form delivery into your CRM, publishing from your content pipeline, and reporting on your own pages. Those three are supported, durable, and cover most of the genuine value.

Why does my application not have access to an endpoint?

Because access is granted per product, and some products require a partnership with a review process. Confirm what you are approved for before scoping the work — the commonest failure here is planning around a capability that was never granted.

How quickly should leads be followed up?

Minutes. Lead gen form leads are paid for and warm, and the gap between submitting and hearing back is where that value evaporates. It is the single strongest argument for automating the delivery.

Why does the integration stop working after a while?

Token expiry, usually, and occasionally an endpoint version deprecating. Both are ordinary maintenance rather than faults, and both are worth exercising during testing rather than meeting in production.

Can I report on competitors' pages?

No. The analytics endpoints cover pages you administer. Anything offering competitor analytics is collecting it another way, with the risks that carries.

Should we cross-post the same text everywhere?

No. Identical copy across networks reads as broadcast, and LinkedIn's audience responds differently from others. Automate the scheduling and the asset handling; write the words for the platform.

When is the best time to post?

Whenever your own page analytics say your audience is active. General posting-time advice is not specific to your followers, and you already have the data that is.

How do we attribute ad spend to revenue?

By joining LinkedIn's campaign reporting with what the leads became in your CRM. LinkedIn knows cost and lead volume; only your CRM knows which of those leads turned into anything, and the joined number is the only one worth reporting.

Get started today

Your first workflow is free to build.

Describe what you need. Cody handles the build, the connections, and the deployment.