LinkedIn, with its membership surpassing 1 billion members in early 2024 and reaching 1.2 billion by late 2025, presents a substantial opportunity for extracting email addresses via its API, a key tool in business networking. This guide thoroughly introduces LinkedIn's APIs, highlighting the essential requirements for authentication and permissions. It comprehensively covers the API's rate limits and outlines best practices, followed by a step-by-step setup tutorial. The guide also addresses the common challenges encountered in LinkedIn API integration and discusses solutions, including the role of Phyllo in facilitating this integration process.
Understanding LinkedIn API: Introduction, Authentication, and Permissions
LinkedIn's API offers diverse tools for professional engagement, including user sign-in, content sharing, live events management, profile enhancement, marketing, sales integration, talent acquisition, learning content addition, and website plugins to augment user and business experiences on the platform. For businesses looking to go beyond LinkedIn alone, Phyllo's social data APIs provide a unified infrastructure to access creator data across multiple platforms — all through a single integration.
These APIs are useful for businesses and application developers and can access various data and functionalities from LinkedIn, catering to diverse professional needs.
Let's unpack what they offer and how best to utilize them.
A Closer Look
Imagine the API as a versatile toolkit. It includes 14 distinct resource methods, each catering to specific needs. The Rest.li Protocol and client libraries simplify constructing requests, while OAuth 2.0 Authentication remains a mandatory step for gaining authorized access.
Understanding Authorization Flows
Member Authorization (3-legged OAuth): This process allows applications to access LinkedIn members' data with their consent, ideal for actions on their behalf.
Application Authorization (2-legged OAuth): It provides broader access to LinkedIn’s resources, which is suitable for non-member-specific data. However, not all APIs support this type of authorization.
Helpful Insights
Third-party libraries greatly ease the OAuth 2.0 authentication process, making it more accessible. LinkedIn has upgraded its security protocols, moving away from TLS 1.0 for enhanced security.
Permissions Overview
Member Auth Permissions: These are like personal consent from LinkedIn members, allowing apps to access their data.
Application Auth Permissions: Consider these as special permissions granted to applications for accessing specific LinkedIn resources.
Sample Applications for Reference
LinkedIn provides OAuth sample applications, which demonstrate RESTful OAuth calls in Java. The Marketing sample application showcases API functionalities related to marketing.
Managing LinkedIn API Rate Limits
LinkedIn employs rate limiting to manage API requests efficiently. LinkedIn's default rate limit is 500 API calls per day for most apps. Production access tiers have higher limits. If someone exceeds these limits, it results in a 429 error code, indicating an excess of requests. This is a pattern common to most major social platforms. To understand why these restrictions exist and how to navigate them, see our deep-dive on how social platforms control third-party API access.
Key Tips for Effective API Management
Regularly monitoring your app's rate limits through the LinkedIn Developer Portal is essential. This practice helps manage request limits and maintain app efficiency. Adhering to these limits ensures your app’s smooth operation within LinkedIn’s ecosystem.
Setting Up LinkedIn API: A Step-by-Step Guide
Here's a step-by-step guide to help you get started:
Step 1: Accessing the LinkedIn Developer Portal and Creating a New Application
If you've worked through setting up a social platform API with Python before, you'll find the LinkedIn setup process follows a familiar OAuth-based structure — with a few LinkedIn-specific nuances worth noting.
- Navigating to the Developer Portal:
- Begin by visiting the LinkedIn Developer website at https://developer.linkedin.com/product-catalog/marketing. It is the gateway to LinkedIn's API resources, offering various products, documentation, and tools for developers.
- Locating the 'My Apps' Section:
- Once on the LinkedIn Developer site, locate the menu bar, which typically includes options like 'Products,' 'Docs and Tools,' 'Resources,' and 'Legal.'
- From these options, select 'My Apps.' This section allows you to manage your existing LinkedIn applications or create new ones.
- Redirect to the Application Management Page:
- After clicking on 'My Apps,' you will be redirected to a new page that lists all of your existing LinkedIn applications, if any. This page serves as the management hub for your LinkedIn applications.
- Initiating the Creation of a New Application:
- Look for a button labeled 'Create App' on the application management page. This button is usually prominently displayed and intended for creating new applications.
- Click on the 'Create App' button to begin setting up a new application in the LinkedIn ecosystem.


Step 2: Completing the Application Registration Form
- Providing Essential Application Information:
- Upon clicking 'Create App,' you will see a registration form where you need to fill in the details of your new application. It is important to provide accurate information that reflects the purpose and functionality of your application.
- App Name:
- Enter a unique name for your application in the 'App name' field. This name should be distinctive and easily identifiable, representing your application across the LinkedIn platform.
- LinkedIn Page:
- Link your application to a LinkedIn Company Page by entering the URL of your company’s page in the 'LinkedIn Page' field. If you do not have a company page, you can create one by following the link. This association is critical as it ties your app to your company's identity on LinkedIn.
- Privacy Policy URL:
- Input your application’s full privacy policy URL in the 'Privacy policy URL' field.
- App Logo:
- Upload a logo for your application by clicking on the 'Upload a logo' button. The logo should be a square image, and at least one dimension should be at least 100px.
- Legal Agreement:
- Carefully read LinkedIn’s API Terms of Use. Once you have understood and agreed to these terms, check the box indicating your agreement.
- Finalizing the Form:
- After filling out all required fields and ensuring that all entered information is correct, click on the 'Create app' button to submit the form.

Step 3: Requesting App Verification from the Company Page
Initiate Verification:
Following application creation, a verification request is generated to confirm the association between your app and the linked company page on LinkedIn.
Verification Notice:
You will encounter a 'Verify responsibility for an app' notification, which is LinkedIn’s protocol for validating the authenticity of the app’s connection to the company.
Verification Process:
Confirm the details of your application and the associated company page, then proceed to verify your authority to create the app by clicking the 'Verify' button.
Legal Considerations:
Be aware that this verification is irreversible and legally binds the app to the company page.
Complete Verification:
Select 'Verify' to finalize the process. A successful verification will allow you to move on to configuring your application’s settings and API credentials.

Step 4: Configuring OAuth 2.0 Scopes and Security for Your LinkedIn App
OAuth Scopes Configuration:
In the app settings, navigate to the 'Auth' tab to specify what your application can do on a user's behalf. OAuth 2.0 scopes are permissions that determine the level of access to LinkedIn member data your app requires.
Setting OAuth Redirect URL:
Register the OAuth redirect URL, which is the callback location where users are sent after authentication. This URL must be a secure endpoint of your application.
Selecting Required Scopes:
Ensure your application requests only the necessary scopes for its operation. Common scopes include:
- w_member_social for actions on behalf of the user,
- r_liteprofile for basic profile data,
- w_organization_social if your app will manage company interactions.
These scopes must align with your app's functionality and the privacy policy.
Storing Credentials Securely:
After registering your app, you will receive a client ID and client secret.

Challenges in Setting Up LinkedIn API Integration
Inconsistent API Documentation
The challenge: LinkedIn API documentation can be tricky when it's outdated or inconsistent, leading to confusion in tasks such as retrieving LinkedIn profile data.
Solution: Regularly verify that the API documentation is current and provides explicit instructions.
Versioning and Compatibility Issues
The challenge: API versioning may affect business workflows, requiring engineers to ensure that new updates do not break compatibility with older versions.
Solution: Design code to be adaptable and stay updated on changes.
Rate Limiting and Throttling
The challenge: LinkedIn API's rate limits can restrict the flow of LinkedIn data, particularly during numerous sample requests.
Solution: Optimize usage and possibly use webhooks to avoid exceeding limits.
Data Format and Schema Discrepancies
The challenge: Variations in data formats can lead to integration issues, especially when dealing with LinkedIn profile URLs or LinkedIn profiles.
Solution: Use client libraries to standardize data formats and implement robust validation.
Authentication Complexities
The challenge: Obtaining an access token or using an API key involves various authentication methods, complicating secure LinkedIn account access.
Solution: Familiarize with the authentication methods and secure credential storage.
Retrieving Specific LinkedIn Data
The challenge: Acquiring specific information, like an email address from LinkedIn profiles, requires navigating the contact API and understanding user interface requirements.
Solution: Thoroughly review the profile API for the necessary member permissions and response code interpretations.
How Phyllo Assists in LinkedIn API Implementation
Phyllo provides a sophisticated search tool that enhances the functionality of LinkedIn API implementations. Their platform enables businesses to accurately locate influential LinkedIn profiles, which is crucial for B2B marketing campaigns. With Phyllo's LinkedIn API, the complexities of API integration, such as authentication and rate limit management, become more manageable — and accessing verified contact details like email addresses becomes a straightforward, single-step process. It addresses typical integration challenges by offering streamlined data retrieval capabilities, all while maintaining compliance with LinkedIn's best practices. For further details on Phyllo's services, please refer to Phyllo's LinkedIn Creator Search.
Frequently Asked Questions
1. Can you get someone's email address directly through the LinkedIn API?
Not by default. The LinkedIn API only returns a member's email address if they have explicitly granted your app the r_emailaddress scope during OAuth authorization. You cannot retrieve another user's email without their active consent — LinkedIn does not expose email data publicly through its API.
2. What OAuth scope is required to access email addresses from LinkedIn?
You need the r_emailaddress scope. This is a member-level permission granted via 3-legged OAuth, meaning the user must log in and approve your app's access. Without this scope approved, the API will not return any email data in its response.
3. Does the LinkedIn API return email addresses for all users or only those who log in to your app?
Only users who authenticate with your app and grant the required permissions. The LinkedIn API does not allow bulk or passive email retrieval. Each email address must be obtained individually through a user-initiated OAuth flow.
4. What is the difference between 2-legged and 3-legged OAuth for LinkedIn API access?
3-legged OAuth (Member Authorization) lets your app act on behalf of a specific LinkedIn member — this is required for accessing personal data like email addresses. 2-legged OAuth (Application Authorization) gives your app broader access to LinkedIn resources but does not support member-specific data such as emails.
5. What happens if your app exceeds LinkedIn API rate limits?
LinkedIn returns a 429 error code, which means your app has sent too many requests within the allowed daily limit. To avoid this, monitor your usage regularly through the LinkedIn Developer Portal and optimize API calls — for example, by using webhooks instead of repeated polling.
6. Is it legal and compliant to collect email addresses via the LinkedIn API?
Yes, as long as you follow LinkedIn's API Terms of Use and obtain explicit user consent through OAuth. You must have a published privacy policy URL linked to your app, only request scopes your app genuinely needs, and handle all data in line with applicable privacy laws such as GDPR.
7. What is the easiest way to retrieve LinkedIn email addresses at scale for B2B or marketing use cases?
Using a third-party platform like Phyllo simplifies the process significantly. Phyllo handles LinkedIn API authentication, rate limit management, and data retrieval — including email addresses — while staying compliant with LinkedIn's policies. This is especially useful for teams running influencer marketing or B2B outreach campaigns who need reliable access to LinkedIn profile data without building the integration from scratch.




