> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stophy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# LinkedIn posts API

> Get a person's or company's latest public posts. Call the LinkedIn posts API and get JSON back in one request. 1 credit per call. Failed calls cost nothing.

Returns a person's or company's latest public posts. The profile or company is identified by its URL or ID.

## Request

Exactly one of `profileUrl`, `profileId`, `companyUrl` or `companyId` is required. A request that sets more than one, or none, fails with `invalidRequest`.

<CodeGroup>
  ```typescript TypeScript icon="https://mintcdn.com/sirathic/7E4w9-IC4ysabjfc/images/icons/typescript.svg?fit=max&auto=format&n=7E4w9-IC4ysabjfc&q=85&s=d8272a85e64145620f1fbbfcf7932986" theme={null}
  import { Stophy } from "stophy";

  const stophy = new Stophy({ apiKey: process.env.STOPHY_API_KEY });
  const result = await stophy.linkedin.posts({ profileId: "satyanadella" });
  console.log(result.data.results);
  ```

  ```python Python icon="python" theme={null}
  from stophy import Stophy

  stophy = Stophy()  # reads STOPHY_API_KEY
  result = stophy.linkedin.posts(profile_id="satyanadella")
  print(result["data"]["results"])
  ```

  ```bash cURL icon="terminal" theme={null}
  curl -X POST https://api.stophy.dev/v1/linkedin/posts \
    -H "Authorization: Bearer $STOPHY_API_KEY" \
    -H "content-type: application/json" \
    -d '{"profileId":"satyanadella"}'
  ```

  ```bash CLI icon="square-terminal" theme={null}
  stophy linkedin posts --profileId satyanadella
  ```
</CodeGroup>

## Response

If successful, the response body contains the standard envelope. `data.results[]` contains the latest public posts, each with its text, likes and date.

The following example is a real response, truncated: each list shows one item and long strings are cut.

```json theme={null}
{
  "success": true,
  "data": {
    "results": [
      {
        "postId": "7509276499837902849",
        "postUrl": "https://www.linkedin.com/posts/satyanadella_the-motivation-behind-the-new-copilot-intelligence-activity-750927649983790…",
        "text": "The motivation behind the new Copilot: intelligence is accelerating fast. Now we need to diffuse it everywhere.",
        "publishedAt": "2026-09-25T15:43:53.171Z",
        "likes": 959,
        "authorName": "Satya Nadella",
        "authorUrl": "https://www.linkedin.com/in/satyanadella"
      }
    ]
  },
  "creditsUsed": 1,
  "requestId": "2fe9dbad-fc48-4890-9751-0b24b596035b"
}
```

| Field | Type | Description |
| - | - | - |
| `publishedAt` | string (ISO 8601) | The publication time, in UTC. |
| `likes` | integer | The number of likes. |

For every field, see the response schema on this page.

<Note>Returns the most recent public posts that LinkedIn displays for the page, including reposts. This is typically at most 10 posts. Older posts are not available, and this method is not paginated.</Note>

## Billing

Each successful request consumes 1 credit, regardless of the number of items returned. Requests that fail, or that return no items, are not billed.

## Pagination

This method is not paginated. A single request returns the complete result.

## Related methods

* [LinkedIn profile](/api-reference/endpoint/linkedin-profile): Accepts the same `profileUrl` or `profileId`. Returns a person's profile.
* [LinkedIn company](/api-reference/endpoint/linkedin-company): Accepts the same `companyUrl` or `companyId`. Returns a company's profile, size and industry.


## OpenAPI

````yaml api-reference/openapi.json POST /v1/linkedin/posts
openapi: 3.1.0
info:
  title: Stophy API
  version: '1'
  description: >-
    Every endpoint is a POST that takes its input as a JSON object body. Unknown
    fields are rejected with 400.


    Responses leave out empty values: null, empty strings, empty objects and
    empty nested lists are not sent.


    x-credits is what one call costs. Every call costs the same, whatever it
    returns, unless an operation's description says it costs per 10 results, or
    per second of audio. Then x-credits is the lowest price and x-credits-max
    the most one call can cost. Where an operation takes limit, send it to
    return fewer results and pay for fewer.


    When a response has a cursor, send it back unchanged with the same input to
    get the next page. When it has a page, send the next page number.
servers:
  - url: https://api.stophy.dev
security:
  - apiKey: []
paths:
  /v1/linkedin/posts:
    post:
      summary: Get a person's or company's latest public posts
      description: Costs 1 credit per call.
      operationId: linkedinPosts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                profileUrl:
                  type: string
                  description: >-
                    Link to the LinkedIn profile, like
                    https://www.linkedin.com/in/satyanadella. Send this or
                    profileId.
                profileId:
                  type: string
                  description: >-
                    LinkedIn profile slug, like satyanadella. Send this or
                    profileUrl.
                companyUrl:
                  type: string
                  description: >-
                    Link to the LinkedIn company, like
                    https://www.linkedin.com/company/microsoft. Send this or
                    companyId.
                companyId:
                  type: string
                  description: >-
                    LinkedIn company slug, like microsoft. Send this or
                    companyUrl.
              sendOne:
                - profileUrl
                - profileId
                - companyUrl
                - companyId
              additionalProperties: false
            example:
              profileId: satyanadella
      responses:
        '200':
          description: The data, and the credits this call used.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/RequestId'
            x-credits-used:
              $ref: '#/components/headers/CreditsUsed'
            X-RateLimit-Limit:
              $ref: '#/components/headers/RateLimitLimit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/RateLimitRemaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/RateLimitReset'
            x-cache:
              $ref: '#/components/headers/Cache'
            x-cache-age:
              $ref: '#/components/headers/CacheAge'
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - data
                  - creditsUsed
                  - requestId
                properties:
                  success:
                    const: true
                  data:
                    type: object
                    additionalProperties: false
                    properties:
                      results:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          properties:
                            postId:
                              type: string
                            postUrl:
                              type: string
                              format: uri
                            text:
                              type: string
                            publishedAt:
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            likes:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            comments:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            imageUrls:
                              type: array
                              items:
                                type: string
                                format: uri
                            authorName:
                              type: string
                            authorUrl:
                              type: string
                              format: uri
                          required:
                            - postUrl
                    required:
                      - results
                  creditsUsed:
                    type: integer
                  requestId:
                    type: string
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
components:
  headers:
    RequestId:
      description: The request id. Quote it when you report a problem.
      schema:
        type: string
    CreditsUsed:
      description: Credits this call used.
      schema:
        type: integer
    RateLimitLimit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    RateLimitRemaining:
      description: Requests left in the current window.
      schema:
        type: integer
    RateLimitReset:
      description: Unix time in seconds when the current window resets.
      schema:
        type: integer
    Cache:
      description: hit if this result came from the cache, miss if it was fetched live.
      schema:
        type: string
    CacheAge:
      description: Seconds since the returned result was written to the cache.
      schema:
        type: integer
    RetryAfter:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  responses:
    Error:
      description: The request failed. retryable says whether trying again can help.
      headers:
        X-Request-ID:
          $ref: '#/components/headers/RequestId'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      required:
        - success
        - error
      properties:
        success:
          const: false
        error:
          type: object
          required:
            - code
            - message
            - retryable
            - requestId
          properties:
            code:
              type: string
              enum:
                - cliSessionCompleted
                - cliSessionExists
                - cliSessionNotFound
                - forbidden
                - insufficientCredits
                - internalError
                - inviteClaimed
                - inviteDisabled
                - inviteExpired
                - inviteUsedUp
                - invalidCliSession
                - invalidCliVerifier
                - invalidRequest
                - notFound
                - rateLimited
                - sourceChanged
                - sourceRefused
                - sourceTimeout
                - sourceUnavailable
                - tooManyInFlight
                - unauthorized
                - unsupportedMediaType
            message:
              type: string
            retryable:
              type: boolean
            retryAfterSeconds:
              type: integer
            requestId:
              type: string
            requiredCredits:
              type: number
            availableCredits:
              type: number
            billingUrl:
              type: string
              const: https://stophy.dev/billing
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.