# LinkedIn company page

> A company's public overview and latest updates.

- **Request:** `GET https://api.lurkapi.com/v1/linkedin/company`
- **Auth:** `x-api-key` header ([get a free key](https://lurkapi.com/login?next=/dashboard))
- **Cost:** 1 credit per call. Validation errors, `401`/`402`/`429` rejections and `5xx` failures are free; `not_found` is charged ([how charging works](https://lurkapi.com/docs.md#credits)).
- **MCP tool:** `linkedin_company` on `https://api.lurkapi.com/mcp`
- **Freshness:** responses are cached for up to 1 hour
- **Try it live:** https://lurkapi.com/docs/linkedin/company#try (no signup)
- **Platform:** [LinkedIn](https://lurkapi.com/docs/linkedin.md) (linkedin.com)
- **Web page:** https://lurkapi.com/docs/linkedin/company

## When to use this

Public company overview from LinkedIn's guest page. Includes the latest updates that LinkedIn makes available without a login. Missing public fields are null. Employee profiles, funding details and the full About tab are outside this response. An authentication wall or challenge is an upstream error, never a successful empty company.

## Parameters

All parameters go in the query string.

| Name | Type | Required | Default | Allowed values | Description | Example |
| --- | --- | --- | --- | --- | --- | --- |
| `url` | string | yes |  |  | Public LinkedIn company page URL, e.g. https://www.linkedin.com/company/hubspot/. Use the base company page. | `https://www.linkedin.com/company/hubspot/` |

## Example request

Replace `YOUR_API_KEY` with your key, or set `LURKAPI_KEY` for the code. [Get a free key](https://lurkapi.com/login?next=/dashboard).

curl:

```bash
curl "https://api.lurkapi.com/v1/linkedin/company?url=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fhubspot%2F" \
  -H "x-api-key: YOUR_API_KEY"
```

JavaScript:

```js
const params = new URLSearchParams({
  url: "https://www.linkedin.com/company/hubspot/",
});
const res = await fetch(`https://api.lurkapi.com/v1/linkedin/company?${params}`, {
  headers: { "x-api-key": process.env.LURKAPI_KEY },
});
const data = await res.json();
if (!data.success) throw new Error(`${data.code}: ${data.error}`);
console.log(data.specialties);
```

Python:

```python
import os
import requests

res = requests.get(
    "https://api.lurkapi.com/v1/linkedin/company",
    params={
        "url": "https://www.linkedin.com/company/hubspot/",
    },
    headers={"x-api-key": os.environ["LURKAPI_KEY"]},
    timeout=60,
)
data = res.json()
if not data["success"]:
    raise RuntimeError(f"{data['code']}: {data['error']}")
print(data["specialties"])
```

## Example response

A real response from this endpoint, captured from the live API and trimmed to a couple of items. Strings over 96 characters (mostly signed media URLs) are cut short and end in `…`.

200 OK (application/json):

```json
{
  "success": true,
  "credits_remaining": 999999,
  "credits_charged": 1,
  "id": "68529",
  "url": "https://www.linkedin.com/company/hubspot",
  "name": "HubSpot",
  "tagline": "The agentic customer platform to scale your business.",
  "description": "HubSpot is a leading agentic customer platform that provides software an…",
  "website": "https://hubspot.com",
  "logo": "https://media.licdn.com/dms/image/v2/C4D0BAQF8H-SLmMDZlA/company-logo_20…",
  "industry": "Software Development",
  "size": "5,001-10,000 employees",
  "employeeCount": 12967,
  "followers": 1758405,
  "founded": 2006,
  "headquarters": "Cambridge, Massachusetts",
  "type": "Public Company",
  "specialties": [
    "inbound marketing",
    "marketing",
    "internet marketing",
    "online marketing",
    "web marketing",
    "software",
    "blogging",
    "SEO",
    "marketing automation",
    "social media",
    "email marketing",
    "analytics",
    "sales",
    "inbound sales",
    "customer support",
    "customer service",
    "customer relationship management",
    "help desk software",
    "platform",
    "customer code",
    "and culture code"
  ],
  "posts": [
    {
      "id": "7510369779325734912",
      "url": "https://www.linkedin.com/posts/hubspot_we-built-the-original-flywheel-pl…",
      "text": "We built the original flywheel playbook.\n\nThen AI broke it.\n\nSo we did w…",
      "datePublished": "2026-09-28T16:08:11.313Z",
      "dateSource": "published",
      "likeCount": 166,
      "commentCount": 23,
      "images": [
        "https://media.licdn.com/dms/image/v2/D4E10AQGtNbunT0NzDg/image-shrink_80…"
      ],
      "video": null,
      "reposted": false
    },
    {
      "id": "7509275824353755137",
      "url": "https://www.linkedin.com/posts/hubspot_hubspot-activity-7509275824353755137-t_UZ",
      "text": "Yep. Everyone's using AI, but new data shows only 6% of companies are ge…",
      "datePublished": "2026-09-25T15:41:12.123Z",
      "dateSource": "published",
      "likeCount": 125,
      "commentCount": 23,
      "images": [],
      "video": null,
      "reposted": false
    }
  ]
}
```

## Response fields

Every field of a successful response. `[]` marks a list: `a[].b` is the `b` of each item in `a`. **nullable** fields can be `null`; **optional** fields can be missing.

| Field | Type | Description |
| --- | --- | --- |
| `success` | `true` | Always true here; errors have `success: false`. |
| `credits_remaining` | `number` | Your balance after this call. On anonymous playground calls: free tries left today. |
| `credits_charged` | `number` | Credits this call cost; 0 on free endpoints. On anonymous playground calls: tries used (1). |
| `id` | `string`, nullable | LinkedIn organization id, when exposed on the public page. |
| `url` | `string` | Canonical public LinkedIn company page URL. |
| `name` | `string` | Company name. |
| `tagline` | `string`, nullable | Company's short tagline. |
| `description` | `string`, nullable | Public About us text. |
| `website` | `string`, nullable | External website published by the company. |
| `logo` | `string`, nullable | Company logo URL; may expire. |
| `industry` | `string`, nullable | Industry category shown by LinkedIn. |
| `size` | `string`, nullable | Company headcount range as LinkedIn displays it, e.g. 5,001–10,000 employees. |
| `employeeCount` | `number`, nullable | LinkedIn members affiliated with the company; this can differ from its declared size range. |
| `followers` | `number`, nullable | Followers of the company page, when published. |
| `founded` | `number`, nullable | Founding year published by the company. |
| `headquarters` | `string`, nullable | Headquarters location as displayed by LinkedIn. |
| `type` | `string`, nullable | Organization type, e.g. Public Company. |
| `specialties` | `string[]` | Company specialties listed on the public page. |
| `posts` | `object[]` | Latest public update cards, including reposts, in LinkedIn's order. Typically up to 12; not a complete history. |
| `posts[].id` | `string` | Activity id of this update, kept as a string to preserve all digits. |
| `posts[].url` | `string` | Public post URL or activity permalink. |
| `posts[].text` | `string` | The update's public text. Empty when the card only contains media. |
| `posts[].datePublished` | `string`, nullable | Publication time in UTC. For repost cards with no published timestamp, estimated from the activity id; see dateSource. |
| `posts[].dateSource` | `string`, nullable | published comes from LinkedIn JSON-LD; activity_id is reconstructed from the activity id and may describe the repost time. Null when unavailable. |
| `posts[].likeCount` | `number`, nullable | Total reactions LinkedIn shows, including reaction types other than likes; null when hidden. |
| `posts[].commentCount` | `number`, nullable | Number of comments shown on the public card; null when hidden. |
| `posts[].images` | `string[]` | Public images in the update, in source order. Expiring URLs; empty for video-only or document-only cards. |
| `posts[].video` | `string`, nullable | A publicly playable video URL from the card, or null. URLs may expire. |
| `posts[].reposted` | `boolean` | True when LinkedIn explicitly marks this update as a repost. |

## Caching and freshness

Responses are cached for up to 1 hour, so a repeat call within that window can return the same data. It still costs 1 credit.

## Errors

Errors return `{ success: false, error, code, docs }` with the HTTP status below. Validation errors, `401`/`402`/`429` rejections and `5xx` failures are free; `not_found` is charged ([how charging works](https://lurkapi.com/docs.md#credits)). [All error codes](https://lurkapi.com/docs.md#errors).

| Status | Code | Meaning |
| --- | --- | --- |
| 401 | `missing_api_key` | No API key. Send it in the `x-api-key` header. |
| 401 | `invalid_api_key` | The key is unknown or was revoked. |
| 402 | `insufficient_credits` | Not enough credits for this call. Buy a pack or wait for tomorrow's top-up. |
| 404 | `not_found` | The endpoint, or the thing you asked for (ad, post, subreddit), doesn't exist. Charged when the platform was checked. |
| 405 | `method_not_allowed` | Endpoints take GET with query params. |
| 429 | `rate_limited` | Too many calls at once. Wait for the `retry-after` seconds, then retry. |
| 500 | `internal_error` | Something broke on our side. Retry; 5xx errors are free. |
| 502 | `upstream_error` | The platform didn't give a usable answer. Retry; 5xx errors are free. |
| 503 | `upstream_busy` | All our connections to the platform are busy. Retry in a few seconds; 5xx errors are free. |
| 504 | `upstream_timeout` | The platform took over 30 seconds to answer. Retry; timeouts are free. |

## Use it in Claude

Once LurkAPI is [connected to Claude](https://lurkapi.com/docs.md#claude), this endpoint is the `linkedin_company` tool. Ask in plain English, for example:

Ask Claude:

```text
Use LurkAPI's linkedin_company with url "https://www.linkedin.com/company/hubspot/" and summarize what you find.
```

Claude calls `linkedin_company` with arguments like these, and each call costs 1 credit:

Tool arguments:

```json
{
  "url": "https://www.linkedin.com/company/hubspot/"
}
```

Tool results skip nulls and empty lists to save tokens.

---

Previous: [Media transcript](https://lurkapi.com/docs/instagram/media-transcript.md) · Next: [LinkedIn company posts](https://lurkapi.com/docs/linkedin/company-posts.md)
