LinkedIn API Access

Verified on LinkedIn API: Why Development Tier Works and Lite Tier Decides

Your integration authenticates cleanly, the badge renders, the verification data comes back exactly as documented — and then every real user gets a 403. Development tier is admin-only by design. Lite tier is the access request that stands between a working prototype and a product you can actually ship.

Verified on LinkedIn is LinkedIn’s consumer identity product. After a member consents through OAuth, your application can retrieve whether that member has completed identity verification (government-issued ID) or workplace verification (work email or Microsoft Entra Verified ID), and display a verification badge inside your own product.

It is a genuinely useful trust signal for marketplaces, professional networks, hiring-adjacent tools and community platforms. It is also one of the easiest LinkedIn integrations to build and one of the easiest to get stuck on — because the technical work and the access work are completely separate problems, and only one of them is under your control.

The trap almost every team walks into

LinkedIn’s own API reference states it plainly: on Development tier you can only access data for LinkedIn accounts that are administrators of your developer application. Your build looks finished because you tested it with your own account. The first real user returns 403 — insufficient permissions. Development tier is explicitly not permitted in production.

Three tiers, and only one of them is a review

Verified on LinkedIn ships with three access tiers. Understanding which one you are on, and what actually moves you between them, is most of the battle.

TierWho your app can readHow you get it
DevelopmentOnly accounts that are admins of your developer app. Testing only.Self-serve. No review.
LiteAll LinkedIn members. Free.Access request — automated and manual review.
PlusAll members, plus enhanced verification metadata, bulk validation and push notifications.Business Development approval. Pricing is contact-based.

Here is the part that surprises people, and it comes straight from LinkedIn’s upgrade documentation: moving from Development to Lite requires no code changes at all. Identical endpoints, identical scopes, identical request shapes. The only thing that changes is who your app is allowed to read.

Which means the entire difficulty of this integration is not engineering. It is the access request.

The endpoint layer

Two endpoints run on all tiers. A third — bulk validation status — is Plus-only, uses two-legged OAuth, and needs no member consent at all.

The scope layer

Lower tiers and Plus use different verification scopes, and LinkedIn’s own documentation pages currently disagree about which one the lower tiers accept.

The consent layer

Three-legged OAuth for member data. Access tokens last 60 days, refresh tokens a year, and two-legged tokens expire in 30 minutes with no refresh issued.

The access layer

Development gets you a demo. Lite gets you a product. Nothing you write in code shortens the distance between them.

What the Lite tier request actually asks for

The upgrade is requested from the Products tab in the Developer Portal, and LinkedIn documents a specific set of things that must be in place before the request goes anywhere. None of them are difficult on their own. Missing any of them stalls the request.

  1. A working Development-tier integrationNot a plan, not a mockup. LinkedIn expects the integration to already function against admin accounts before it is willing to widen access.
  2. A verified business email addressThe account making the request has to be reachable at a business address, not a personal one.
  3. Accepted Verified on LinkedIn termsA separate product-specific agreement, distinct from the general developer terms your app already accepted.
  4. A completed access request formIt covers the application, the company behind it, the use case, and the technical implementation — four sections that reviewers read together and expect to be consistent with each other.
  5. A specific, defensible use caseLinkedIn’s only published lever on review speed is specificity: clear, detailed use cases move faster. A vague one-line answer here is the single most common self-inflicted delay.
  6. HTTPS redirect URIsPlain HTTP is rejected outright. A leftover localhost or HTTP callback in your app configuration will quietly undermine an otherwise sound request.

LinkedIn states that reviews typically complete within about a week. That is LinkedIn’s own estimate for a clean request, not a commitment, and it says nothing about how many rounds a request that comes back for clarification will take.

The prohibited-use list is where applications actually fail

LinkedIn does not publish a list of rejection reasons. What it does publish — and what matters far more — is an explicit list of use cases the product may not be used for. This is the part most teams read too late, after they have already designed a feature around it.

Verified on LinkedIn is positioned as a trust-enhancement signal. It is not a compliance instrument. The documentation specifically rules out using it for:

  • Hiring and employment decisions
  • Background checks and screening
  • Credit, lending or insurance eligibility
  • Housing eligibility decisions
  • Fintech or banking KYC
  • Government or otherwise regulated identity verification
  • Platform safety and risk scoring used as a replacement for your own systems
  • Aggregating, reselling or redistributing verification data to anyone

Read that list against a typical marketplace roadmap and the problem becomes obvious. A great many products that genuinely want this badge are, in their own internal language, describing exactly one of those categories. The use case survives review or it does not based largely on how honestly and how precisely it is framed — and on whether the product design itself has to change first.

There are two more constraints that catch teams after approval rather than during it. Verification data may not be stored indefinitely — caching must be temporary and refreshed. And the badge has strict branding rules: it may only be shown when the API actually confirms a verification, and the button wording is fixed. Variants that read naturally in your UI but differ from the required label are not permitted.

Why the technical side still needs care

Nothing above means the build is trivial. There are a handful of details that produce confusing behaviour and that are easy to get wrong when you are working from a half-correct blog post rather than the current reference.

  • The published rate limits are per-application and per-member, and they are separate counters. Exceeding either returns a 429 with a retry header you are expected to honour.
  • Endpoint timeouts are short. Treating this as a slow background call rather than a synchronous blocking one changes your architecture.
  • A member can come back not eligible — no verifications and no verification URL, because of region or account restrictions. That is a distinct state from "not verified yet", and it needs different UI. Conflating them sends users to a flow they cannot complete.
  • Verification categories are identity and workplace only. Education data exists on Plus tier, but it is profile data, not a verification — describing it as verified education in your product is a branding problem waiting to happen.
  • LinkedIn’s authentication page and its endpoint reference currently disagree about which verification scope the lower tiers accept. Building against the wrong one produces authorisation errors that look like an access-tier problem but are not.
DevelopmentWorks only for your own admins
LiteReviewed access to all members
PlusBusiness Development gated

Where this usually goes wrong in practice

The pattern repeats across LinkedIn products, and Verified on LinkedIn is a particularly clean example of it. Teams treat access as a configuration step that comes after the build. It is not. It is a review of what you intend to do with member identity data, submitted by a business that has to be legible to a reviewer, describing a use case that has to fall on the right side of a list most people have not read.

A request that comes back for clarification is not fatal, but each round costs a week of LinkedIn’s stated review window plus however long your side takes to respond. Two or three rounds is a month gone on a launch date that was set assuming this was a checkbox.

The work that avoids that is unglamorous: reconciling what the product actually does with what the prohibited-use list permits, writing a use case that is specific enough to be believed and narrow enough to be approvable, making sure the app configuration and the business details support the story, and getting the technical prerequisites genuinely in place before the request is submitted rather than after it comes back.

Getting help with it

This is exactly the kind of access request I prepare and support for clients across LinkedIn, Meta, Google and other platform APIs — reviewing the integration against the platform’s current published requirements, framing the use case in the terms reviewers assess against, and preparing the submission so that the first round is the strongest one.

Related reading on the LinkedIn cluster: Sign In with LinkedIn (OpenID Connect) setup and scopes, LinkedIn Community Management API access and the Standard tier review, and the LinkedIn API setup and approval support service.

This article reflects LinkedIn’s published developer documentation as of 2026 and is provided as policy-aligned guidance. Platform requirements change. No specific outcome or timeline can be guaranteed by any third party, including this one.