List LinkedIn comments

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}/comments

Returns one page of LinkedIn comments from the profile's export, sorted by date; search by comment text or post link, or filter by tags. 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

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, postLink

  • tags array[string]

    Filter by tag IDs

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
        • date string(date-time) Required
        • message string | null Required
        • tags array[string] Required
        • attachedTags array[object] Required

          Tag records exactly as stored: they include removed tags (removedAt set) and tags from both sides of the case, and carry no tag name.

          Hide attachedTags attributes Show attachedTags attributes object
          • tagId string
          • addedBy string

            Values are user, ai, auto, auto-import, system, or default.

          • addedById string | null
          • addedAt string(date-time)
          • removedAt string(date-time) | null
          • removedBy string | null

            Values are user, ai, auto, auto-import, system, or default.

          • removedById string | null
    • statusCode number Required
    • timestamp string(date-time) Required
GET /linkedin/{caseId}/{linkedInId}/comments
curl \
 --request GET 'http://api.example.com/linkedin/{caseId}/{linkedInId}/comments' \
 --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",
        "date": "2026-01-15T14:30:00.000Z",
        "postLink": "https://www.linkedin.com/feed/update/urn:li:activity:7012345678901234567",
        "message": "Congratulations on the new role!",
        "tags": [
          "65a1b2c3d4e5f6a7b8c9d0e2"
        ],
        "attachedTags": [
          {
            "tagId": "65a1b2c3d4e5f6a7b8c9d0e2",
            "addedBy": "user",
            "addedById": "507f1f77bcf86cd799439011",
            "addedAt": "2026-01-15T14:30:00.000Z",
            "removedAt": null,
            "removedBy": null,
            "removedById": null
          }
        ]
      }
    ]
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}