> **For coding agents and LLMs:** This is one page from the Social Fetch docs (markdown export). For curated orientation and workflow guidance, start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for agent onboarding and crawl rules, use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for the full endpoint list with links to pages like this one, use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt); for one platform's parameters and curls, use [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt); use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need structured JSON for tool registration.

## This page

- **On-site (HTML):** [https://www.socialfetch.dev/docs/api/v2/linkedin/profiles/batch/get](https://www.socialfetch.dev/docs/api/v2/linkedin/profiles/batch/get)
- **Markdown (.mdx) URL:** [https://www.socialfetch.dev/docs/api/v2/linkedin/profiles/batch/get.mdx](https://www.socialfetch.dev/docs/api/v2/linkedin/profiles/batch/get.mdx)

## API base URL and authentication

- **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev`
- **Authentication:** send `x-api-key: sfk_...` on `/v1/**` and `/v2/**` routes unless the operation is explicitly anonymous (check OpenAPI `security`, the [API reference hub](https://www.socialfetch.dev/docs/api.mdx), [`/llms.txt`](https://www.socialfetch.dev/llms.txt), or [`/llms.json`](https://www.socialfetch.dev/llms.json) for each route).
- **OpenAPI JSON:** [https://www.socialfetch.dev/openapi.json](https://www.socialfetch.dev/openapi.json)

## Recommended docs entrypoints (this site)

- [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown).
- [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope.
- [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`.
- [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — every operation with identifiers, pagination, outcomes, media download, credits, and its SDK method. Generated from OpenAPI, so use it for route selection instead of scanning individual pages.
- [Recipes](https://www.socialfetch.dev/docs/recipes.mdx) — copyable workflows (brand monitoring, transcripts, Ad Library, creator scoring, Reddit research) with credit callouts and SDK examples.
- [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, Apify Store Actors, Make custom app, SDK, and REST API connection paths.
- [MCP product page](https://www.socialfetch.dev/mcp) — hosted MCP overview, OAuth, Skills install.
- [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 232 endpoint tools, plus docs_search/docs_read for implementation help.
- [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples.
- [Apify integration](https://www.socialfetch.dev/docs/integrations/apify.mdx) — Store Actors under @social-fetch, PPE billing, dataset export, and quick start.
- [Make integration](https://www.socialfetch.dev/docs/integrations/make.mdx) — custom app modules for Make scenarios, API key credentials, and module catalog.
- [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt) — every documented operation with a direct link to that route's agent-readable markdown page (prefer this over parsing OpenAPI).
- [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt) — per-platform endpoint files generated from OpenAPI (parameters, credits, curls).
- [`/agents.txt`](https://www.socialfetch.dev/agents.txt) — agent crawl/onboarding file with capabilities, auth rules, and allowlist.
- [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping.
- [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages.
- [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance.
- [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs.
- Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract.

## Markdown docs convention

- Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`).
- Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`).
- Published blog posts use the same convention: `/blog/{slug}` → `/blog/{slug}.mdx`, or `Accept: text/markdown` on the HTML URL (`Vary: Accept`).

---
# Get LinkedIn profiles (https://www.socialfetch.dev/docs/api/v2/linkedin/profiles/batch/get)

## Summary

Get LinkedIn person profiles by URL.

**Tags:** `LinkedIn`

## HTTP

- **Method:** GET
- **Path:** `/v2/linkedin/profiles/batch`
- **operationId:** `linkedin.live.profile.batch.v2`
- **Base URL:** `https://api.socialfetch.dev`

## Capability summary

- **SDK mapping:** `client.linkedin.getProfiles({ url: ["https://www.linkedin.com/in/marclouvion/"] })`
- **Accepted identifiers:** `url` (query)
- **Pagination:** none

## Credits

- Up to 3 credits per URL; 50 URLs per request (150 credits maximum authorization). Final charge covers completed operations, including verified misses. Technical failures and unstarted work cost zero.

## Authentication

- **`x-api-key`**: API key (`sfk_...`)

## Parameters

### `url` (query)

- **Required:** yes
- **Constraints:** type `array`

## Responses (status codes)

- **200**: LinkedIn profiles.
- **400**: Request could not be completed.
- **401**: Request could not be completed.
- **402**: Request could not be completed.
- **413**: Response exceeds 4,000,000 bytes. No charge; request fewer URLs.
- **429**: Request could not be completed.
- **500**: Request could not be completed.
- **502**: Request could not be completed.
- **503**: Request could not be completed.

## Response body (200)

LinkedIn profiles.

### Field outline

- **data** (required) — type `object`
  - **sourceFamily** (required) — type `string`; enum: live
  - **results** (required) — type `array`
    - _items:_
      - **url** (required) — type `string`
      - **lookupStatus** (required) — type `string`; enum: found, not_found, error
      - **profile** (required) — type `object`; nullable
        - **sourceFamily** (required) — type `string`; enum: live, data. Record family (`live` or `data`).
        - **dataId** (required) — type `string`; nullable. Stable Data API person identifier (`prsn_…`) when observed.
        - **liveNumericId** (required) — type `string`; nullable. Live numeric person identifier, serialized as a string when observed.
        - **entityId** (required) — type `string`; nullable. LinkedIn person entity ID when observed.
        - **handle** (required) — type `string`; nullable. Public LinkedIn handle when observed.
        - **profileUrl** (required) — type `string`; nullable. Canonical LinkedIn profile URL when observed.
        - **firstName** (required) — type `string`; nullable. First name when observed.
        - **lastName** (required) — type `string`; nullable. Last name when observed.
        - **fullName** (required) — type `string`; nullable. Full name supplied by discovery when observed.
        - **headline** (required) — type `string`; nullable. Professional headline when observed.
        - **summary** (required) — type `string`; nullable. Profile summary when observed.
        - **profilePictureUrl** (required) — type `string`; nullable. Primary profile picture URL when observed.
        - **profilePictures** (required) — type `array`; nullable. Profile image variants when observed.
          - _items:_
        - **backgroundImages** (required) — type `array`; nullable. Background image variants when observed.
          - _items:_
        - **followerCount** (required) — type `number`; nullable. Follower count when observed.
        - **connectionsCount** (required) — type `number`; nullable. Connection count when observed.
        - **isCreator** (required) — type `boolean`; nullable. Creator flag when observed.
        - **isPremium** (required) — type `boolean`; nullable. Premium flag when observed.
        - **isInfluencer** (required) — type `boolean`; nullable. Influencer flag when observed.
        - **isOpenToWork** (required) — type `boolean`; nullable. Open-to-work flag when observed.
        - **isHiring** (required) — type `boolean`; nullable. Hiring flag when observed.
        - **geo** (required) — type `object`; nullable. Structured location when observed.
          - **city** (required) — type `string`; nullable. City label when observed.
          - **full** (required) — type `string`; nullable. Full location label when observed.
          - **country** (required) — type `string`; nullable. Country label when observed.
          - **countryCode** (required) — type `string`; nullable. Country code when observed.
        - **location** (required) — type `string`; nullable. Discovery location label when observed.
        - **geoCity** (required) — type `string`; nullable. Flat city location when observed.
        - **geoFull** (required) — type `string`; nullable. Flat full location when observed.
        - **geoCountry** (required) — type `string`; nullable. Flat country when observed.
        - **geoCountryCode** (required) — type `string`; nullable. Flat country code when observed.
        - **primaryLanguage** (required) — type `string`; nullable. Primary language when observed.
        - **languages** (required) — type `array`; nullable. Spoken languages when observed.
          - _items:_
        - **supportedLocales** (required) — type `array`; nullable. Supported locales when observed.
          - _items:_
        - **multiLocaleFirstName** (required) — type `array`; nullable. Localized first names when observed.
          - _items:_
        - **multiLocaleLastName** (required) — type `array`; nullable. Localized last names when observed.
          - _items:_
        - **multiLocaleHeadline** (required) — type `array`; nullable. Localized headlines when observed.
          - _items:_
        - **industry** (required) — type `object`; nullable. Industry when observed.
          - **entityId** (required) — type `string`; nullable. Industry entity ID when observed.
          - **name** (required) — type `string`; nullable. Industry name when observed.
        - **updatedAt** (required) — type `string`; nullable. Source update timestamp when observed.
        - **currentPositions** (required) — type `array`; nullable. Current-position summaries when observed.
          - _items:_
        - **positions** (required) — type `array`; nullable. Position summaries when observed.
          - _items:_
        - **fullPositions** (required) — type `array`; nullable. Full position records when observed.
          - _items:_
        - **allPositions** (required) — type `array`; nullable. All-position records when observed.
          - _items:_
        - **education** (required) — type `array`; nullable. Education records when observed.
          - _items:_
        - **skills** (required) — type `array`; nullable. Profile skills when observed.
          - _items:_
        - **certifications** (required) — type `array`; nullable. Certifications when observed.
          - _items:_
        - **publications** (required) — type `array`; nullable. Publications when observed.
          - _items:_
        - **volunteering** (required) — type `array`; nullable. Volunteer records when observed.
          - _items:_
        - **projects** (required) — type `array`; nullable. Project records when observed.
          - _items:_
        - **patents** (required) — type `array`; nullable. Patent records when observed.
          - _items:_
        - **courses** (required) — type `array`; nullable. Courses when observed.
          - _items:_
        - **honorsAndAwards** (required) — type `array`; nullable. Honors and awards when observed.
          - _items:_
        - **organizations** (required) — type `array`; nullable. Professional organizations when observed.
          - _items:_
      - **error** (required) — type `object`; nullable
        - **code** (required) — type `string`
        - **message** (required) — type `string`
        - **retryAfterMs** (required) — type `number`; minimum: 0; nullable
      - **creditsCharged** (required) — type `integer`; minimum: 0
  - **summary** (required) — type `object`
    - **requestedUrls** (required) — type `integer`; minimum: 0
    - **found** (required) — type `integer`; minimum: 0
    - **notFound** (required) — type `integer`; minimum: 0
    - **errored** (required) — type `integer`; minimum: 0
- **meta** (required) — type `object`. Metadata about the API response.
  - **requestId** (required) — type `string`; minLength: 1. Unique request identifier for tracing this API call.
  - **creditsCharged** (required) — type `integer`; minimum: 0. Credits charged for this request.
  - **version** (required) — type `string`; enum: v2. Public API version that served the response.

### Example JSON (found)

```json
{
  "data": {
    "sourceFamily": "live",
    "results": [
      {
        "url": "https://www.linkedin.com/in/ryanroslansky/",
        "lookupStatus": "found",
        "profile": {
          "sourceFamily": "live",
          "dataId": null,
          "liveNumericId": "678940",
          "entityId": "ACoAAAAKXBwBikfbNJww68eYvcu2dqDYJhHbp4g",
          "handle": "ryanroslansky",
          "profileUrl": null,
          "firstName": "Ryan",
          "lastName": "Roslansky",
          "fullName": null,
          "headline": "Executive Vice President at Microsoft ",
          "summary": "Ryan Roslansky oversees the group responsible for LinkedIn, Microsoft Office, Teams and Outlook as a member of Satya Nadella’s senior leadership team at Microsoft. Through these products, Ryan aims to help LinkedIn, Microsoft, and the global labor market as AI transforms how people work and grow in their careers.Ryan …",
          "profilePictureUrl": "https://media.licdn.com/dms/image/v2/C4D03AQELbnIckyItlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1667929254389?e=1791417600&v=beta&t=PUIIdV623r2YorDrR0LqDwUgUarKSD33tZvSoMpWMEM",
          "profilePictures": [
            {
              "url": "https://media.licdn.com/dms/image/v2/C4D03AQELbnIckyItlw/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1667929254389?e=1791417600&v=beta&t=emunmap7f3e7DluX7UTQ6Ofi94lmYdlNOQilvmLhTAs",
              "width": 100,
              "height": 100
            }
          ],
          "backgroundImages": [
            {
              "url": "https://media.licdn.com/dms/image/v2/C4D16AQHXtyQ-bg4B2Q/profile-displaybackgroundimage-shrink_200_800/profile-displaybackgroundimage-shrink_200_800/0/1580864697675?e=1791417600&v=beta&t=dSwA3KkKq3UVfajp1M3C0LSrcnjxO1e_D2seaB0hfbc",
              "width": 800,
              "height": 200
            }
          ],
          "followerCount": 0,
          "connectionsCount": 9137,
          "isCreator": true,
          "isPremium": true,
          "isInfluencer": true,
          "isOpenToWork": false,
          "isHiring": false,
          "geo": {
            "city": "San Francisco Bay Area",
            "full": "San Francisco Bay Area",
            "country": "United States",
            "countryCode": "us"
          },
          "location": null,
          "geoCity": null,
          "geoFull": null,
          "geoCountry": null,
          "geoCountryCode": null,
          "primaryLanguage": null,
          "languages": [
            {
              "name": "English",
              "proficiency": "NATIVE_OR_BILINGUAL"
            }
          ],
          "supportedLocales": [
            {
              "language": "en",
              "country": "US"
            }
          ],
          "multiLocaleFirstName": [
            {
              "locale": "en_US",
              "value": "Ryan"
            }
          ],
          "multiLocaleLastName": [
            {
              "locale": "en_US",
              "value": "Roslansky"
            }
          ],
          "multiLocaleHeadline": [
            {
              "locale": "en_US",
              "value": "Executive Vice President at Microsoft "
            }
          ],
          "industry": {
            "entityId": "4",
            "name": "Computer Software"
          },
          "updatedAt": null,
          "currentPositions": [
            {
              "title": null,
              "subtitle": null,
              "description": null,
              "employmentType": null,
              "location": null,
              "locationType": null,
              "duration": null,
              "isCurrent": null,
              "isMultiPositions": null,
              "start": null,
              "end": null,
              "durationParsed": null,
              "organization": {
                "id": "1035",
                "name": "Microsoft",
                "url": "https://www.linkedin.com/company/microsoft/",
                "logoUrl": "https://media.licdn.com/dms/image/v2/D560BAQH32RJQCl3dDQ/company-logo_400_400/B56ZYQ0mrGGoAc-/0/1744038948046/microsoft_logo?e=1791417600&v=beta&t=rS6M3r55PzewvVGJJABsaLy0gtYIdv7OfeZ1-08ZQ3k"
              },
              "organizationId": null,
              "organizationName": "Microsoft",
              "organizationUrl": null,
              "organizationLogo": null,
              "organizationHandle": null,
              "organizationSlug": null,
              "organizationIndustry": null,
              "organizationHeadcountRange": null,
              "multiLocaleTitle": null,
              "multiLocaleOrganizationName": null,
              "skills": null
            }
          ],
          "positions": [
            {
              "title": "Executive Vice President",
              "subtitle": null,
              "description": "I oversee the group responsible for LinkedIn, Microsoft Office, Outlook and Teams in service of the mission to connect the world's professionals to make them more productive and successful.",
              "employmentType": "Full-time",
              "location": "",
              "locationType": "",
              "duration": null,
              "isCurrent": null,
              "isMultiPositions": null,
              "start": {
                "day": null,
                "month": 4,
                "year": 2025
              },
              "end": null,
              "durationParsed": null,
              "organization": null,
              "organizationId": "1035",
              "organizationName": "Microsoft",
              "organizationUrl": "https://www.linkedin.com/company/microsoft/",
              "organizationLogo": "https://media.licdn.com/dms/image/v2/D560BAQH32RJQCl3dDQ/company-logo_400_400/B56ZYQ0mrGGoAc-/0/1744038948046/microsoft_logo?e=1791417600&v=beta&t=rS6M3r55PzewvVGJJABsaLy0gtYIdv7OfeZ1-08ZQ3k",
              "organizationHandle": "microsoft",
              "organizationSlug": null,
              "organizationIndustry": "Computer Software",
              "organizationHeadcountRange": "10001 - 0",
              "multiLocaleTitle": [
                {
                  "locale": "en_US",
                  "value": "Executive Vice President"
                }
              ],
              "multiLocaleOrganizationName": [
                {
                  "locale": "en_US",
                  "value": "Microsoft"
                }
              ],
              "skills": null
            }
          ],
          "fullPositions": [
            {
              "title": "Executive Vice President",
              "subtitle": null,
              "description": "I oversee the group responsible for LinkedIn, Microsoft Office, Outlook and Teams in service of the mission to connect the world's professionals to make them more productive and successful.",
              "employmentType": "Full-time",
              "location": "",
              "locationType": "",
              "duration": null,
              "isCurrent": null,
              "isMultiPositions": null,
              "start": {
                "day": null,
                "month": 4,
                "year": 2025
              },
              "end": null,
              "durationParsed": null,
              "organization": null,
              "organizationId": "1035",
              "organizationName": "Microsoft",
              "organizationUrl": "https://www.linkedin.com/company/microsoft/",
              "organizationLogo": "https://media.licdn.com/dms/image/v2/D560BAQH32RJQCl3dDQ/company-logo_400_400/B56ZYQ0mrGGoAc-/0/1744038948046/microsoft_logo?e=1791417600&v=beta&t=rS6M3r55PzewvVGJJABsaLy0gtYIdv7OfeZ1-08ZQ3k",
              "organizationHandle": "microsoft",
              "organizationSlug": null,
              "organizationIndustry": "Computer Software",
              "organizationHeadcountRange": "10001 - 0",
              "multiLocaleTitle": [
                {
                  "locale": "en_US",
                  "value": "Executive Vice President"
                }
              ],
              "multiLocaleOrganizationName": [
                {
                  "locale": "en_US",
                  "value": "Microsoft"
                }
              ],
              "skills": null
            }
          ],
          "allPositions": null,
          "education": [],
          "skills": [
            {
              "name": "LinkedIn",
              "normalizedName": null,
              "source": null,
              "isVerified": false,
              "passedAssessment": null
            }
          ],
          "certifications": [],
          "publications": [],
          "volunteering": [],
          "projects": [],
          "patents": [
            {
              "title": "Techniques for Ascribing Social Attributes to Content",
              "description": null,
              "issuer": "US",
              "issuerLocale": [
                {
                  "locale": "en_US",
                  "value": "US"
                }
              ],
              "multiLocaleTitle": [
                {
                  "locale": "en_US",
                  "value": "Techniques for Ascribing Social Attributes to Content"
                }
              ],
              "patentNumber": "9229900",
              "applicationNumber": "9229900",
              "url": null,
              "pending": false,
              "filedOn": null,
              "issuedOn": {
                "day": 5,
                "month": 1,
                "year": 2016
              },
              "inventors": [
                {
                  "entityId": "ACoAAAAKXBwBikfbNJww68eYvcu2dqDYJhHbp4g",
                  "firstName": "Ryan",
                  "lastName": "Roslansky",
                  "handle": "ryanroslansky",
                  "headline": "Executive Vice President at Microsoft ",
                  "profilePictureUrl": "https://media.licdn.com/dms/image/v2/C4D03AQELbnIckyItlw/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1667929254389?e=1791417600&v=beta&t=PUIIdV623r2YorDrR0LqDwUgUarKSD33tZvSoMpWMEM"
                }
              ]
            }
          ],
          "courses": [],
          "honorsAndAwards": [],
          "organizations": []
        },
        "error": null,
        "creditsCharged": 3
      }
    ],
    "summary": {
      "requestedUrls": 1,
      "found": 1,
      "notFound": 0,
      "errored": 0
    }
  },
  "meta": {
    "requestId": "fixture",
    "creditsCharged": 3,
    "version": "v2"
  }
}
```

## Error handling & retries

Interpret HTTP status codes using the descriptions below. Do not assume a JSON body unless the OpenAPI schema defines one for that status.

- **400**: Request could not be completed. **Retry:** Fix the request; retrying the same invalid payload will not help.
- **401**: Request could not be completed. **Retry:** Fix the API key first; retrying without changes will not help.
- **402**: Request could not be completed. **Retry:** Do not retry without resolving billing/credits (retrying the same request will not help).
- **413**: Response exceeds 4,000,000 bytes. No charge; request fewer URLs.
- **429**: Request could not be completed.
- **500**: Request could not be completed.
- **502**: Request could not be completed. **Retry:** May be transient; a few retries with backoff are reasonable.
- **503**: Request could not be completed. **Retry:** Usually safe to retry with exponential backoff and jitter.

### Suggested client defaults

- Send the API key using the `x-api-key` header on every request.
- On `503` (and sometimes `502`), retry with backoff; cap retries and surface a clear error to the user.
- On `402`, surface an actionable billing message rather than blind retries.

## Examples

### TypeScript SDK

```typescript
import { SocialFetchClient } from "@socialfetch/sdk";

const client = new SocialFetchClient({
  apiKey: process.env.SOCIALFETCH_API_KEY!,
});

const result = await client.linkedin.getProfiles({
  url: ["https://www.linkedin.com/in/marclouvion/"],
});

if (!result.ok) {
  console.error(result.error);
} else {
  console.log(result.value.data);
}
```

### Node.js

```javascript
const response = await fetch(
  "https://api.socialfetch.dev/v2/linkedin/profiles/batch?url=https://www.linkedin.com/in/marclouvion/",
  {
    headers: {
      "x-api-key": "YOUR_API_KEY"
    }
  }
);

const data = await response.json();
console.log(data);
```

### cURL

```bash
curl "https://api.socialfetch.dev/v2/linkedin/profiles/batch?url=https://www.linkedin.com/in/marclouvion/" \
  -H "x-api-key: YOUR_API_KEY"
```

### Python

```python
import requests

response = requests.get(
    "https://api.socialfetch.dev/v2/linkedin/profiles/batch?url=https://www.linkedin.com/in/marclouvion/",
    headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()
print(data)
```