LinkedIn Pages to BigQuery: How to Move Your Data

Move LinkedIn Pages into BigQuery with Airbyte. Why OAuth lasts twelve months against two, the admin role and write scopes, and the paired statistics streams.

Summarize with AI:

Moving LinkedIn Pages into BigQuery lets you connect organic company page performance to everything else: whether follower growth tracks hiring, which posts precede inbound enquiries, how organic compares with paid on your own terms. LinkedIn's page analytics stop at engagement and a short window.

This guide covers the managed path with Airbyte. Two things are worth settling before you build: which authentication method you use, because the difference is two months of working pipeline versus twelve, and which of the paired statistics streams you actually need.

LinkedIn Pages to BigQuery at a glance:

CapabilitySupportedWhat it means for this pipeline
OAuth 2.012 monthsRecommended, because it keeps streaming far longer
Access token2 monthsSimpler to set up and breaks roughly every 60 days
Required rolePage adminThe API user account must hold the admin role
Required scopesInclude writeReporting access comes bundled with page management
Rate limitsDailyCalls are capped per 24 hours, resetting at midnight UTC

Why move data from LinkedIn Pages to BigQuery?

Two situations account for most of these pipelines.

The first is history. LinkedIn's own page analytics cover a limited window, and questions about how follower growth or engagement has moved across two years simply cannot be asked there. A warehouse accumulating daily statistics answers them, and the value grows the longer it runs.

The second is joining. Organic page performance next to paid campaign spend, website traffic and inbound pipeline is where you find out whether any of it connects. For paid campaign performance specifically, the LinkedIn Ads source is the connector you want alongside this one.

What do you need before you start?

Two of these involve permissions somebody else controls, so start them first:

An API user account with the admin role on the page. Not a member or an analyst, an admin. Whoever manages your company page has to grant that, so it is a conversation rather than a configuration step. The LinkedIn Pages source documentation covers the setup.

Two LinkedIn permissions, one broader than you might expect. Retrieving the organisation's posts, comments, reactions and engagement data, and a second covering managing your organisation's pages and retrieving reporting data. That second one bundles write access with the reporting access you actually want, which is worth raising with whoever approves it.

A decision between OAuth and an access token. OAuth is recommended because it continues streaming data for twelve months, against roughly two with an access token. OAuth needs a client identifier, secret and refresh token; the access token route needs only the token.

A BigQuery service account and dataset. With the BigQuery User and BigQuery Data Editor roles. Set the dataset location to match your paid media and web analytics datasets, since joining them is the point and BigQuery only joins within a location.

If your organisation restricts inbound traffic by IP, add the Airbyte Cloud IP addresses to the allow list before you begin.

How do you build a LinkedIn Pages to BigQuery pipeline in Airbyte?

Step 1: Set up OAuth rather than an access token

Create the LinkedIn application, request the permissions above and work through the flow to obtain a client identifier, client secret and refresh token. It is more setup than pasting an access token, and it is the difference between a pipeline that keeps running for a year and one that stops in about two months.

Step 2: Configure the LinkedIn Pages source

Click Sources in the left navigation, then New Source, and select LinkedIn Pages, following adding a source. Supply your credentials and the organisation identifier for the page you are syncing. One source covers one page, so a company with several pages needs one source each.

Step 3: Configure the BigQuery destination

Click Destinations, then New Destination, and select BigQuery, following adding a destination. Supply the project, dataset and service account key. Batched standard inserts is the default and is ample, since page statistics are tiny by warehouse standards even across years.

Step 4: Choose between the paired statistics streams

Click Connections, then New connection, and select streams with a sync mode. Follower statistics and share statistics each come in a plain and a time bound version, and the time bound ones are the incremental streams. Which you want depends on the question, as covered below. Daily is the right cadence.

LinkedIn caps API calls per 24 hour period, resetting at midnight UTC, and rate-limited requests return a 429. The connector retries and logs a message about waiting before retrying, which is expected behaviour rather than a fault. A large backfill that exhausts the daily quota simply resumes after the reset.

Why does the authentication method matter so much?

Because it decides how often somebody has to intervene. OAuth continues streaming data for twelve months. An access token gives roughly two, so a pipeline built on one stops working about six times a year, and each time it does, the days between the failure and someone noticing are days of statistics you did not collect.

That matters more here than on sources where a gap can be backfilled. Daily page statistics are snapshots, and a week missed while a token sat expired is a week with no numbers, not a week to catch up on later.

So take the extra setup. The access token route is reasonable for a one-off extract or a proof of concept, and for anything ongoing OAuth is the only sensible choice. Either way, put the renewal date in a calendar rather than discovering it from a dashboard that stopped moving.

Which statistics streams do you actually want?

The connector pairs them, and the pairs answer different questions. Follower statistics and share statistics give you the current picture, broken down by dimensions such as region, function or seniority. The time bound versions of both give you a series across a period, and those are the incremental streams.

If someone asks how our follower base is composed today, the plain streams answer it. If they ask how it has changed since we started publishing more, only the time bound ones can, because a snapshot has no history in it. Sync the time bound streams if you want to trend anything, which for a warehouse project is usually the whole point.

There is also a total follower count stream, which is small, cheap and the one your executive dashboard will actually use. Take it alongside whichever detailed streams you choose, and take the organisation lookup stream too so page identifiers resolve to names.

Frequently asked questions

Should I use an access token or OAuth?

OAuth for anything ongoing, because it continues streaming for twelve months against roughly two with an access token. The token route suits a one-off extract.

Why does the connector need write permissions?

Because LinkedIn bundles reporting access into a permission that also covers managing your organisation's pages. The API user account also needs the admin role, so raise it with whoever approves access.

What is the difference between the time bound streams and the others?

The plain streams give you the current picture, and the time bound ones give you a series across a period and support incremental sync. Use the time bound streams if you want to trend anything.

My logs mention retrying after a wait. Is something wrong?

No. That is expected when the connector hits LinkedIn's rate limit and receives a 429. Limits are per 24 hours and reset at midnight UTC.

Can I do this without writing code?

Yes. The setup above is UI-driven, though the OAuth flow involves configuring a LinkedIn application. You will want BigQuery views joining page statistics to your paid and web data.

Get your LinkedIn Pages data into BigQuery

Get the admin role and permissions agreed first, use OAuth rather than an access token so the pipeline lasts a year instead of two months, take the time bound streams if anyone wants trends, and remember that a gap here is a gap forever because daily statistics cannot be backfilled.

Airbyte's connector catalog includes 600+ pre-built connectors, so organic social can sit beside the paid and product data that give it meaning. For another organic social source, see Instagram to BigQuery, and for paid performance on a comparable platform, Facebook Ads to Snowflake.

Start syncing now →

Integrate with 700+ apps using Airbyte

Move data from 700+ sources into warehouses, lakes, and beyond. Set up pipelines in minutes with pre-built connectors and the Connector Builder.