Verification URL

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:

  1. Member signs in to your application
  2. Your app calls /verificationReport
  3. If verificationUrl exists, display a "Verify on LinkedIn" CTA
  4. Redirect member to LinkedIn verification flow
  5. Member completes verification
  6. Your app fetches updated verification data
  7. 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 verificationCriteria is provided as a query parameter on the /verificationReport GET request: it shows up if a member is eligible for those specific verifications.

    Example:

GET /verificationReport?verificationCriteria=IDENTITY
  • If no verificationCriteria query 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.

Try with Postman

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:

  1. Your app redirects member to the verification URL
  2. Member completes verification on LinkedIn
  3. LinkedIn redirects member back to your redirect URI
  4. 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:

  1. Go to LinkedIn Developer Portal
  2. Select your application then navigate to Auth tab
  3. Under Authorized redirect URLs, add your redirect URI
  4. 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:

  1. Call /verificationReport API again to retrieve the updated verification categories
  2. Update your database
  3. 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

APIs

Guides