List LinkedIn messages

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.usehearsay.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "integrations MCP server": {
    "url": "https://docs.usehearsay.com/mcp"
  }
}

Close
GET /linkedin/{caseId}/{linkedInId}/conversations/{conversationId}/messages

Returns one page of messages in a LinkedIn conversation, sorted by date; searchText filters by message text. Returns 404 if the conversation does not belong to the profile and case. On a case shared with opposing counsel, a profile the caller may not see returns an empty page.

Path parameters

  • caseId string Required
  • linkedInId string Required
  • conversationId string Required

Query parameters

  • page number

    Default value is 1.

  • perPage number

    Default value is 10.

  • skip number

    If skip/limit not provided, page/perPage will take precedence

  • limit number

    If skip/limit not provided, page/perPage will take precedence

  • sortOrder string

    Values are asc or desc. Default value is asc.

  • searchText string

    Search message contentText

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • total number Required
      • page number
      • perPage number
      • skip number
      • limit number
      • totalPages number Required
      • nextPage number | null Required
      • previousPage number | null Required
      • data array[object]
        Hide data attributes Show data attributes object
        • createdAt string(date-time) Required
        • updatedAt string(date-time) Required
        • id string Required
        • from string | null Required
        • senderProfileUrl string | null Required
        • to string | null Required
        • recipientProfileUrls array[string] Required
        • date string(date-time) Required
        • subject string | null Required
        • content string | null Required
        • folder string | null Required
        • attachments string | null Required
        • isDraft boolean Required
    • statusCode number Required
    • timestamp string(date-time) Required
GET /linkedin/{caseId}/{linkedInId}/conversations/{conversationId}/messages
curl \
 --request GET 'http://api.example.com/linkedin/{caseId}/{linkedInId}/conversations/{conversationId}/messages' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "data": {
    "total": 42,
    "page": 1,
    "perPage": 20,
    "skip": 0,
    "limit": 20,
    "totalPages": 3,
    "nextPage": 2,
    "previousPage": 42.0,
    "data": [
      {
        "createdAt": "2026-01-15T14:30:00.000Z",
        "updatedAt": "2026-01-15T14:30:00.000Z",
        "id": "507f1f77bcf86cd799439011",
        "from": "Jane Doe",
        "senderProfileUrl": "https://www.linkedin.com/in/jane-doe-example",
        "to": "John Roe",
        "recipientProfileUrls": [
          "https://www.linkedin.com/in/john-roe-example"
        ],
        "date": "2026-01-15T09:12:00.000Z",
        "subject": "Introduction",
        "content": "Happy to connect.",
        "folder": "INBOX",
        "attachments": "https://www.linkedin.com/dms/prv/attachment/v2/D4E06AQExample/messaging-attachmentFile/0/1700000000000",
        "isDraft": false
      }
    ]
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}