Toggle a tag on a LinkedIn connection

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
PATCH /linkedin/{caseId}/{linkedInId}/connections/{connectionId}/tags

Adds the given tag to a LinkedIn connection, or removes it if it is already applied, and returns the updated connection. Returns 404 if the connection does not belong to the profile and case. In the result, attachedTags leave out tags the other side added by hand.

Path parameters

  • caseId string Required
  • linkedInId string Required
  • connectionId string Required
application/json

Body Required

  • tagId string Required

    Tag ID to toggle on the resource

Responses

  • 200 application/json
    Hide response attributes Show response attributes object
    • data object Required
      Hide data attributes Show data attributes object
      • createdAt string(date-time) Required
      • updatedAt string(date-time) Required
      • id string Required
      • firstName string | null Required
      • lastName string | null Required
      • profileUrl string | null Required
      • email string | null Required
      • company string | null Required
      • position string | null Required
      • connectedOn string(date-time) | null Required
      • tags array[string] Required
      • attachedTags array[object]
        Hide attachedTags attributes Show attachedTags attributes object
        • tagId string Required

          Tag id (Tag._id)

        • tag string Required

          Tag display name (Tag.name)

        • addedBy string Required

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

        • addedById string | null
        • 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
PATCH /linkedin/{caseId}/{linkedInId}/connections/{connectionId}/tags
curl \
 --request PATCH 'http://api.example.com/linkedin/{caseId}/{linkedInId}/connections/{connectionId}/tags' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --data '{
  "tagId": "string"
}'
Request examples
{
  "tagId": "string"
}
Response examples (200)
{
  "data": {
    "createdAt": "2026-01-15T14:30:00.000Z",
    "updatedAt": "2026-01-15T14:30:00.000Z",
    "id": "507f1f77bcf86cd799439011",
    "firstName": "Jane",
    "lastName": "Doe",
    "profileUrl": "https://www.linkedin.com/in/jane-doe-example",
    "email": "string",
    "company": "Example Corp",
    "position": "Paralegal",
    "connectedOn": "2025-11-03T00:00:00.000Z",
    "tags": [
      "65a1b2c3d4e5f6a7b8c9d0e2"
    ],
    "attachedTags": [
      {
        "tagId": "507f1f77bcf86cd799439011",
        "tag": "Important",
        "addedBy": "user",
        "addedById": "507f1f77bcf86cd799439012",
        "removedAt": "2026-05-04T09:42:00Z",
        "removedBy": "user",
        "removedById": "string"
      }
    ]
  },
  "statusCode": 200,
  "timestamp": "2026-01-15T10:15:00.000Z"
}