---
title: "Read LinkedIn company"
method: POST
path: "/api/companies/read-linkedin"
tags: ["companies"]
---

# Read LinkedIn company

`POST /api/companies/read-linkedin`

## Request

- Base URL: `https://beta.getsales.io/playtables/v1`
- URL: `https://beta.getsales.io/playtables/v1/api/companies/read-linkedin`
- Auth: HTTP bearer and API key in header `Team-SID`

Read one LinkedIn company page by slug or link, numeric id, or website domain, for the company card: name, tagline, about, industry, people_count, founded_year, location, website, the axes; nothing written. The corpus answers free; a pool read is comped for a workspace's first three, then 2 credits. found false with reason company_not_resolvable (the domain maps to no page), company_not_found, company_unreadable or pool_unavailable (retry_after). A company row is update_company.

Contract:
- MCP tool `read_linkedin_company`, registry package `mcp.playtables/companies`, mount `playtables.people`.
- Operation `action`, response envelope `action`.
- Flags: read only.

## Request body

- ReadLinkedinCompanyRequest: Request body of `read_linkedin_company`.
  - `ln_nickname` string, nullable: The company page slug, or its linkedin.com/company/ link; parsed at the edge, never stored. One of ln_nickname, ln_id and domain.
  - `ln_id` string, nullable: The page's numeric LinkedIn id, as digits (read_linkedin_person's company_ln_id), when the slug is not known: the page is read by the address LinkedIn serves for it.
  - `domain` string, nullable: The company's website domain (acme.com, a URL accepted), when neither the slug nor the id is known: a corpus lookup, which answers only a page the corpus already knows (found false, reason company_not_resolvable, otherwise).

## Response `200`

`action` success envelope.

- ReadLinkedinCompanyResponse
  - `success` true, required
  - `operation` 'action', required
  - `action` string, required: kebab-case verb; matches the route segment.
  - `item` unknown, required
  - `result` object, required
    - `found` boolean, required: LinkedIn served the page.
    - `comped` boolean: The read ran on the onboarding allowance at price 0 (the first three pool reads of a team).
    - `company` object, nullable: The page's words and axes when found.
      - `name` string, nullable, required
      - `tagline` string, nullable, required
      - `about` string, nullable, required: The page's about text.
      - `industry` string, nullable, required
      - `people_count` integer, nullable, required: The page's headcount; null when the read served a size bucket only.
      - `founded_year` integer, nullable, required
      - `location` string, nullable, required: The headquarters as "City, Area, Country".
      - `website` string, nullable, required
      - `ln_id` string, nullable, required: The numeric company id, as digits.
      - `ln_nickname` string, nullable, required: The page slug, never a URL.
    - `reason` string: Why found is false: company_not_resolvable (the domain maps to no page), company_not_found (no page at the slug), company_unreadable (LinkedIn would not serve it) or pool_unavailable (no capacity: retry_after).
    - `retry_after` union: With pool_unavailable: when to ask again.
      - string
      - number
      - unknown
  - `meta` object, required
    - `trace_id` string, required: UUID v7; same 128-bit value as the X-Trace-Id header.
    - `span_id` string, required: 16 hex chars, root span of this request.
    - `timestamp` string, required: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
    - `duration_ms` integer, required: Server-side wall clock.
    - `team_sid` string, nullable: The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.
    - `actor_type` string, nullable: user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.

## Other responses

- `4XX`: MCP error envelope. `error.code` is one of validation_failed, nothing_to_update, not_found, relation_not_found, invalid_transition, limit_exceeded, payment_required, duplicate_rejected, conflict, delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
- `5XX`: MCP error envelope with `error.code` internal_error or service_unavailable.

---

[API](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-playtables.md) - [All operations](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-playtables/llms.txt) - [OpenAPI document](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-playtables/revisions/aa394506515d?raw)
