Skip to main content
POST
Call analytics.linkedin_page_analytics

Authorizations

Authorization
string
header
required

An API key minted at Settings › API & MCP. Send it as Authorization: Bearer <key>. A key carries its holder's own permissions, resolved on every call — revoking a membership closes the key's reach immediately. Keep it in an environment variable (GOOSY_API_KEY), never in a committed file.

Headers

x-request-id
string

Your own id for this request, echoed back and recorded on the audit trail. 1–128 characters from A–Z a–z 0–9 . _ : -, starting with a letter or digit; anything else is replaced by a generated id.

Maximum string length: 128

Body

application/json
organization_urn
string

The company page to read, as its LinkedIn page URN — the urn:li:… identifier carried on the connected grant. Omit when the connection administers exactly one page — it is then chosen automatically. If several are administered, this is required and the answer lists them.

days
integer

Read a trailing window of this many days instead of lifetime totals. OMIT for the lifetime read, which is the only one that carries follower DEMOGRAPHICS (industry, seniority, function, geography) — LinkedIn drops every demographic facet from a time-bound follower query, so a window and a breakdown are two different questions.

Required range: 1 <= x <= 90
include
enum<string>[]

Which sections to read: followers (count + demographics or gains), page_views (views and custom-button clicks), shares (organic impressions, clicks, reactions, comments, engagement rate). Omit for all three. Each section is a separate LinkedIn call, so narrowing this spends less of the page's rate budget.

Minimum array length: 1
Available options:
followers,
page_views,
shares
workspace
string

Which workspace to run in — its slug. Omit to use your default. With more than one reachable workspace and no default, the call is refused and the choices are listed.

Minimum string length: 1

Response

The call was admitted and dispatched. ok says whether the tool succeeded — a refusal the tool itself produced is still a 200, exactly as it is a successful JSON-RPC result over MCP.

The tool ran and answered.

ok
boolean
required
source
enum<string>
required

Which rail these numbers came from. linkedin_cmapi = LinkedIn's own page analytics; ghl = the workspace posts through GoHighLevel, which reports no LinkedIn-specific numbers; none = neither is connected.

Available options:
linkedin_cmapi,
ghl,
none
provenance
enum<string> | null
required

The trust class, on the metric dictionary's own axis. Both connected rails are platform_reported — the platform's number, subject to the platform's methodology. Null when there is no number.

Available options:
platform_reported
source_note
string
required

The plain-language sentence to tell the operator about where these numbers come from. Say it — never paraphrase it into a stronger claim.

connect_path
string | null
required

Where the operator connects LinkedIn page analytics directly, when that would change the answer. Null when already connected on the direct rail.

read_elsewhere
object | null
required

On the ghl source ONLY: the cross-platform social metric keys LinkedIn activity is counted inside, and the tool/page that reads them. There is no LinkedIn breakdown to give — offer these instead of guessing one.

organization_urn
string | null
required

The company page these numbers are for. Null on the ghl and none sources, which have no page-level read.

administered_organizations
string[]
required

Every company page this connection may read. More than one and organization_urn is required.

window
object
required

What was ACTUALLY read — not what was asked for. The two differ whenever LinkedIn's follower publication lag applies.

total_followers
number | null
required

The page's total follower count, from LinkedIn's networkSizes read. It is a SEPARATE call from the follower statistics and carries no publication lag. Null when the followers section was not read or its call failed.

follower_demographics
object | null
required

Lifetime read only. Bucket keys are LinkedIn URNs or enums, and each count rolls organic AND paid followers together — LinkedIn's own instruction, not an approximation. Each facet reports its FULL bucket count alongside the top few it carries; see truncated.

follower_gains
object[] | null
required

Time-bound read only. GAINS per interval, not running totals.

page_views
object[] | null
required

all_page_views counts every page tab across desktop and mobile; overview_page_views counts the overview tab only, so all_* is legitimately the larger number.

shares
object[] | null
required

ORGANIC only — sponsored activity is not counted here and lives on the ads rail. like_count can be negative when a member unlikes a sponsored share; that is LinkedIn's number, not a bug.

unavailable
object[]
required

Sections that were asked for and could not be read, each with why. A section listed here has NO number — never report it as zero.

workspace
string
required

The slug of the workspace this call ran in.

working_in
object
required

Which workspace this call ran in, and how that was decided. Present on every workspace-scoped result.