Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Overview
The verificationUrl is a dynamic link that directs members to complete identity or workplace verification on LinkedIn before returning to your application. It serves as the primary mechanism for resolving "unverified" states.
When a member has not completed all available verifications, the /verificationReport API may return a verificationUrl. Your application should use this URL to redirect the member to LinkedIn so they can complete verification.
Once verification is completed, call /verificationReport again to retrieve the updated status.
This step is critical to the integration flow, ensuring eligible members are prompted to verify rather than remaining unverified.
Why the Verification URL Is Important
If your application only reads verification status but never surfaces the verification URL, many eligible members will remain unverified because they are never prompted to start the verification flow.
Using the verification URL enables your platform to:
- Prompt eligible members to complete LinkedIn verification
- Increase verified user coverage
Typical integration pattern:
- Member signs in to your application
- Your app calls /verificationReport
- If
verificationUrlexists, display a "Verify on LinkedIn" CTA - Redirect member to LinkedIn verification flow
- Member completes verification
- Your app fetches updated verification data
- After successful verification, the member is brought back to your app based on the configured redirect URI
When verificationUrl Appears
The verificationUrl is returned only when the member is eligible to complete additional verifications.
More specifically:
If
verificationCriteriais provided as a query parameter on the/verificationReportGET request: it shows up if a member is eligible for those specific verifications.Example:
GET /verificationReport?verificationCriteria=IDENTITY
- If no
verificationCriteriaquery parameter is provided: it shows up when a member is eligible for any verification type.
When it's absent:
- Member has completed all requested verifications, OR
- Member is not eligible for any additional verifications
It may appear in the following situations:
| Member State | Verifications | verificationUrl Returned |
Action Required |
|---|---|---|---|
| Fully Verified | All categories present | Not returned | Display verification badges |
| Partially Verified | Some categories present | Returned | Show completed badges + "Complete Verification" button |
| Not Verified | Empty array | Returned | Show "Verify on LinkedIn" button |
| Not Eligible | Empty array | Not returned | Member cannot verify (region/eligibility restrictions) |
Note
Member eligibility depends on factors like region, account status, and verification availability. See LinkedIn Help Center for eligibility details.
Example 1: Development/Lite Tier - Fully Verified Member
Member has completed both verifications. No verificationUrl in response.
Request:
curl -X GET 'https://api.linkedin.com/rest/verificationReport' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'LinkedIn-Version: {LATEST_VERSION}'
Response (Development/Lite Tier):
{
"verifications": ["IDENTITY", "WORKPLACE"],
"id": "Yw-zU_kyua"
}
Try the /verificationReport API in Postman to explore verification states and metadata.
Example 2: Development/Lite Tier - Unverified Member
Member has no verifications but is eligible. Response includes verificationUrl.
Request:
curl -X GET 'https://api.linkedin.com/rest/verificationReport?verificationCriteria=IDENTITY&verificationCriteria=WORKPLACE' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'LinkedIn-Version: {LATEST_VERSION}'
Response (Development/Lite Tier):
{
"verifications": [],
"id": "Yw-zU_kyua",
"verificationUrl": "https://www.linkedin.com/trust/verification?isDeeplinkToCCT=true&verificationUrl=..."
}
How to Retrieve the Verification URL
The verificationUrl is returned only when the member has not completed all requested verifications and is eligible to complete additional verifications.
Call the Verification Report API:
GET https://api.linkedin.com/rest/verificationReport
Required headers:
Authorization: Bearer {ACCESS_TOKEN}
LinkedIn-Version: {LATEST_VERSION}
Example response for a member who has not yet verified:
{
"verifications": [],
"id": "Yw-zU_kyua",
"verificationUrl": "https://www.linkedin.com/trust/verification?..."
}
Your application should use this URL to redirect the member to LinkedIn.
Redirecting the Member to LinkedIn
When the member selects "Verify on LinkedIn", redirect them to the verificationUrl.
The member will complete verification on LinkedIn and will be redirected back to your application only if a redirectUri is provided. You can configure a redirect URI to return the member to your application after verification.
Flow:
- Your app redirects member to the verification URL
- Member completes verification on LinkedIn
- LinkedIn redirects member back to your redirect URI
- Your app resumes the member's session
If you want the member to return to your application after completing verification, append the redirectUri parameter to the verificationUrl, making sure that the redirectUri value is URL-encoded before appending.
Example:
https://www.linkedin.com/trust/verification?...&redirectUri=https%3A%2F%2Fyourapp.com%2Fcallback
Registration Steps:
- Go to LinkedIn Developer Portal
- Select your application then navigate to Auth tab
- Under Authorized redirect URLs, add your redirect URI
- Save changes
Important
The redirectUri must exactly match a URL registered in your LinkedIn Developer App's Auth tab.
After Verification Completes
When the member returns to your application:
- Call
/verificationReportAPI again to retrieve the updated verification categories - Update your database
- Display verification badges
Do not rely on previous responses. Always call the API again to retrieve the latest verification state.
Common Issues
| Issue | Cause | Resolution |
|---|---|---|
| Member never verifies | Verification URL not shown | Display a "Verify on LinkedIn" CTA |
| Member stuck on LinkedIn | redirectUri missing | Append URL-encoded redirectUri parameter to verificationUrl |
| Redirect fails | URL mismatch | Use exact URL from Developer Portal |
verificationUrl reused |
URL expired | Fetch a new URL from /verificationReport |
| Verification not updating | API not re-called | Call /verificationReport again |
Best Practices
Always fetch a fresh verification URL. Always call /verificationReport before displaying verification UI to ensure you have the latest verification state.
Do not cache or persist the URL.
Verification URLs:
- may expire
- may be single-use
- should always be retrieved from
/verificationReport
Related Resources
APIs
- Profile Details API – Get member profile information
- Verification Report API – Get detailed verification metadata
- Validation Status API – Bulk validation checks (Plus tier only)
Guides
- Quickstart Guide – Get started with the API
- Upgrade to Lite Tier – Move to production
- Implementation Guide – Best practices
