Skip to main content

LinkedIn Pages

Sync overview

The LinkedIn Pages source only supports Full Refresh for now. Incremental Sync will be coming soon.

Airbyte uses LinkedIn Marketing Developer Platform - API to fetch data from LinkedIn Pages.

Output schema

This Source is capable of syncing the following data as streams:

Data type mapping

Integration TypeAirbyte TypeNotes
numbernumberfloat number
integerintegerwhole number
arrayarray
booleanbooleanTrue/False
stringstring

Features

FeatureSupported?(Yes/No)Notes
Full Refresh Overwrite SyncYes
Full Refresh Append SyncNo
Incremental - Append SyncYes
Incremental - Append + Deduplication SyncNo
NamespacesNo

Performance considerations

There are official Rate Limits for LinkedIn Pages API Usage, more information here. Rate limited requests will receive a 429 response. Rate limits specify the maximum number of API calls that can be made in a 24 hour period. These limits reset at midnight UTC every day. In rare cases, LinkedIn may also return a 429 response as part of infrastructure protection. API service will return to normal automatically. In such cases you will receive the next error message:

"Caught retryable error '<some_error> or null' after <some_number> tries. Waiting <some_number> seconds then retrying..."

This is expected when the connector hits the 429 - Rate Limit Exceeded HTTP Error. If the maximum of available API requests capacity is reached, you will have the following message:

"Max try rate limit exceeded..."

After 5 unsuccessful attempts - the connector will stop the sync operation. In such cases check your Rate Limits on this page > Choose your app > Analytics.

Getting started

The API user account should be assigned the following permissions for the API endpoints: Endpoints such as: Organization Lookup API, Follower Statistics, Share Statistics, Total Follower Count, Follower Statistics Time Bound, Share Statistics Time Bound require these permissions:

  • r_organization_social: Retrieve your organization's posts, comments, reactions, and other engagement data.
  • rw_organization_admin: Manage your organization's pages and retrieve reporting data.

The API user account should be assigned the ADMIN role.

Authentication

There are 2 authentication methods: Access Token or OAuth2.0. OAuth2.0 is recommended since it will continue streaming data for 12 months instead of 2 months with an access token.

Create the Refresh_Token or Access_Token:

The source LinkedIn Pages can use either the client_id, client_secret and refresh_token for OAuth2.0 authentication or simply use an access_token in the UI connector's settings to make API requests. Access tokens expire after 2 months from creation date (60 days) and require a user to manually authenticate again. Refresh tokens expire after 12 months from creation date (365 days). If you receive a 401 invalid token response, the error logs will state that your token has expired and to re-authenticate your connection to generate a new token. This is described more here.

  1. Log in to LinkedIn as the API user

  2. Create an App here:

    • App Name: airbyte-source
    • Company: search and find your LinkedIn Company Page
    • Privacy policy URL: link to company privacy policy
    • Business email: developer/admin email address
    • App logo: Airbyte's (or Company's) logo
    • Review/agree to legal terms and create app
    • Review the Auth tab:
      • Save your client_id and client_secret (for later steps)
      • Oauth 2.0 settings: Provide a redirect_uri (for later steps): https://airbyte.com
  3. Verify App:

    • In the Settings tab of your app dashboard, you'll see a Verify button. Click that button!
    • Generate and provide the verify URL to your Company's LinkedIn Admin to verify the app.
  4. Request API Access:

    • Navigate to the Products tab
    • Select the Advertising API and agree to the legal terms
    • After a few minutes, refresh the page to see a link to View access form in place of the Select button
    • Fill out the access form and access should be granted within 72 hours (usually quicker)
  5. Create A Refresh Token (or Access Token):

    • Navigate to the LinkedIn Developers' OAuth Token Tools and click Create token
    • Select your newly created app and check the boxes for the following scopes:
      • r_organization_social
      • rw_organization_admin
    • Click Request access token and once generated, save your Refresh token
  6. Use the client_id, client_secret and refresh_token from Steps 2 and 5 to autorize the LinkedIn Pages connector within the Airbyte UI.

    • As mentioned earlier, you can also simply use the Access token auth method for 60-day access.

Changelog

Expand to review
VersionDatePull RequestSubject
1.1.52024-12-1249272Update dependencies
1.1.42024-12-1148924Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
1.1.32024-10-2947749Update dependencies
1.1.22024-10-2847455Update dependencies
1.1.12024-08-1644196Bump source-declarative-manifest version
1.1.02024-08-1544132Refactor connector to manifest-only format
1.0.172024-08-1043560Update dependencies
1.0.162024-08-0343281Update dependencies
1.0.152024-07-2742782Update dependencies
1.0.142024-07-2042218Update dependencies
1.0.132024-07-1341833Update dependencies
1.0.122024-07-1041407Update dependencies
1.0.112024-07-0941274Update dependencies
1.0.102024-07-0640828Update dependencies
1.0.92024-06-2540422Update dependencies
1.0.82024-06-2239975Update dependencies
1.0.72024-06-1336744Add time bound incremental streams for follower & share statistics. Migrate to Low Code
1.0.62024-06-0639171[autopull] Upgrade base image to v1.2.2
1.0.52024-06-0338918Replace AirbyteLogger with logging.Logger
1.0.42024-06-0338918Replace AirbyteLogger with logging.Logger
1.0.32024-05-2138526[autopull] base image + poetry + up_to_date
1.0.22023-05-3024352Remove duplicate streams
1.0.12023-03-2224352Remove authSpecification as it's not yet supported
1.0.02023-03-1618967Fixed failing connection checks
0.1.02022-08-1113098Initial Release