---
title: "Get authenticated user's LinkedIn profile"
method: GET
path: "/me/linkedin"
tags: ["profile"]
---

# Get authenticated user's LinkedIn profile

`GET /me/linkedin`

Returns the authenticated user's LinkedIn profile as it is currently stored: identity, headline, profile URL, connection count, location, and verification status. Reads storage only, so it makes no LinkedIn API call and consumes no credits. Enriched fields (about text, positions, education, recent posts, recent comments and reactions) appear only when an earlier call has already written them, so treat every one of them as optional and never assume the record is complete.

## Response `200`

Stored LinkedIn profile data

- object
  - `success` true, required
  - `linkedinProfileId` string, nullable, required — LinkedIn vanity name (e.g., 'alexandre-sarfati')
  - `linkedinName` string, nullable, required — Full name from LinkedIn
  - `linkedinEmail` string, nullable, required — Email from LinkedIn profile
  - `profileUrn` string, nullable, required — LinkedIn profile URN
  - `headline` string, nullable, required — LinkedIn headline
  - `profilePic` string, nullable, required — Profile picture URL
  - `profileUrl` string, nullable, required — Full LinkedIn profile URL
  - `summary` string, nullable — About section text. Present only when an earlier enrichment stored it; no current call populates it, so treat it as optional.
  - `positions` object[] — Work positions. Present only when an earlier enrichment stored them; no current call populates them, so treat them as optional.
    - `companyName` string, nullable, required
    - `title` string, nullable, required
    - `description` string, nullable — Position description / responsibilities text (always fetched on visit_profile; may be null if LinkedIn has none)
    - `companyUrl` string, nullable, required
    - `companyLogo` string, nullable, required
    - `companyDescription` string, nullable — Short description of the company (always fetched on visit_profile; may be null)
    - `startDate` object, nullable, required
      - `month` integer, nullable, required
      - `year` integer, required
    - `endDate` object, nullable, required
      - `month` integer, nullable, required
      - `year` integer, required
    - `isCurrent` boolean, required
  - `educations` object[] — Education entries. Present only when an earlier enrichment stored them; no current call populates them, so treat them as optional.
    - `schoolName` string, nullable, required
    - `degreeName` string, nullable, required
    - `fieldOfStudy` string, nullable, required
    - `schoolUrl` string, nullable, required
    - `schoolLogo` string, nullable, required
    - `startDate` object, nullable, required
      - `month` integer, nullable, required
      - `year` integer, required
    - `endDate` object, nullable, required
      - `month` integer, nullable, required
      - `year` integer, required
  - `connectionsCount` integer, nullable, required — Total LinkedIn connections
  - `followersCount` integer, nullable — Total number of followers
  - `location` object, nullable, required — Profile location
    - `countryCode` string, required
    - `postalCode` string
  - `isVerified` boolean, nullable, required — LinkedIn verification status
  - `lastPosts` object[] — Last 5 posts (populated when posts have been fetched via /me/linkedin/posts)
    - `postUrl` string, required — Public URL of the post.
    - `text` string, required — Post text content.
    - `date` integer, required — Post creation timestamp (Unix milliseconds).
    - `likesCount` integer, required — Total reactions on this post.
    - `commentsCount` integer, required — Total top-level comments on this post.
    - `sharesCount` integer, required — Total shares/reposts of this post.
    - `postUrn` string, required — LinkedIn internal URN for this post. Use with engagement tools (like, comment, collect_engagers).
    - `postId` string, required — Numeric post identifier parsed from the URN.
    - `type` 'activity' | 'ugcPost' | 'share', required — LinkedIn post type: 'ugcPost' = standard post, 'share' = native share/repost, 'activity' = legacy format.
    - `isRepost` boolean — True when the post is a repost/reshare of another post. Absent for original posts.
    - `media` object — Media attached to the post (image, video, document, or article). Absent when the post is text-only.
      - `type` 'image' | 'video' | 'document' | 'article', required — Type of media attached to the post.
      - `urls` string[], required — Media URLs (image URLs for carousels, video streaming URL, article link, etc.).
      - `title` string — Title of the article or document, when available.
      - `thumbnailUrl` string — Thumbnail URL for videos, articles, or document covers.
    - `authorName` string — Display name of the post's author.
    - `authorProfileUrl` string — Author's profile URL.
    - `authorPublicIdentifier` string, nullable — Author's vanity slug, when they have one.
    - `authorProfileUrn` string, nullable — Author's profile URN.
    - `authorHeadline` string — Author's headline as shown on the post.
    - `authorImageUrl` string — Author's avatar URL.
    - `repostedFromName` string — On a repost, the ORIGINAL author's name when it differs from the resharer.
    - `reactionTypeCounts` object[] — Per-reaction-type breakdown, when LinkedIn exposes it.
      - `reactionType` string, required
      - `count` integer, required
    - `numImpressions` integer, nullable — Total impressions, exposed only on Creator-mode posts.
    - `highlightedReactorName` string, nullable — Social-proof attribution, when LinkedIn surfaces one in the feed.
    - `viewerLiked` boolean, nullable — Whether the authenticated account has reacted to this post.
  - `lastComments` unknown[] — Last 20 comments by the user (populated after /me/linkedin/activity?tabType=COMMENTS)
    - unknown
  - `lastReactions` unknown[] — Last reactions by the user (populated after /me/linkedin/activity?tabType=REACTIONS)
    - unknown
  - `creditsUsed` integer, required — Credits consumed by this call. 0 for free endpoints, cached results, duplicates, and for every query that does not touch LinkedIn.
  - `retryAfter` integer, required — Seconds to wait before another call of the same type. 0 means no wait is needed.
  - `_meta` object — Credit balance carried on every response so a caller never has to ask for it separately. Absent when the caller has no connected account.
    - `credits` object, required
      - `current` number, required — Credits spent this period.
      - `limit` number, nullable, required — Period allowance, or null when unlimited.
      - `remaining` number, nullable, required — Allowance left, or null when unlimited.
      - `percentage` number, required — Share of the allowance spent, 0 to 100.
      - `isUnlimited` boolean, required
      - `accountPlan` string, required — The credential's plan.

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error.
- `401` — Although HTTP specifies "unauthorized", this response means "unauthenticated". Authenticate to continue. NOTE: 401 is also returned with code "linkedin_not_connected" when the caller IS authenticated but has no connected LinkedIn account — connect LinkedIn (not re-authenticate) to continue.
- `403` — The client does not have access rights to the content.
- `404` — The server cannot find the requested resource.
- `409` — The request conflicts with the current state of the server.
- `410` — The requested content has been permanently deleted from the server.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — Rate limit exceeded. Read error.retryAfter for the wait time in seconds.
- `500` — The server encountered a situation it does not know how to handle.
- `502` — LinkedIn returned a server error or the proxy connection failed. Retry after a few seconds.
- `503` — Proxy capacity temporarily exceeded. Retry after a few seconds.

---

[API](https://skmtc.net/berea/apis/bereach-api.md) · [All operations](https://skmtc.net/berea/apis/bereach-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/berea/bereach-api/revisions/9217eedacbb8/schema)
