Maton

LinkedIn Community Management

Access the LinkedIn Community Management API with managed OAuth authentication. Manage organization pages, create and manage posts, comments, reactions, and retrieve analytics.

REST API (/rest/...) calls take a LinkedIn-Version header (YYYYMM, e.g. 202606). If you leave it out, Maton sends 202606. LinkedIn retires old monthly versions and returns HTTP 426 NONEXISTENT_VERSION for retired or future-dated ones, so use a recent month.

Reference

Get Current Member

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/me" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Response:

{
  "localizedLastName": "Smith",
  "localizedFirstName": "John",
  "id": "abc123XYZ",
  "vanityName": "john-smith",
  "localizedHeadline": "Software Engineer at Acme Corp"
}

Get Person by ID

Look up a LinkedIn member's profile by their person ID. The person ID can be obtained from /rest/me, organizationAcls, post authors, or comment actors.

curl -s -g -X GET "https://api.maton.ai/linkedin-community-management/rest/people/(id:{personId})" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Response:

{
  "localizedLastName": "Smith",
  "profilePicture": {
    "displayImage": "urn:li:digitalmediaAsset:C5603AQFWsrW4dwGzmg"
  },
  "vanityName": "john-smith",
  "lastName": {
    "localized": {"en_US": "Smith"},
    "preferredLocale": {"country": "US", "language": "en"}
  },
  "firstName": {
    "localized": {"en_US": "John"},
    "preferredLocale": {"country": "US", "language": "en"}
  },
  "localizedHeadline": "Software Engineer at Acme Corp",
  "id": "abc123XYZ",
  "headline": {
    "localized": {"en_US": "Software Engineer at Acme Corp"},
    "preferredLocale": {"country": "US", "language": "en"}
  },
  "localizedFirstName": "John"
}

Available fields: id, firstName, lastName, vanityName, localizedFirstName, localizedLastName, localizedHeadline, headline, profilePicture

You can request a single field with the fields query parameter:

curl -s -g -X GET "https://api.maton.ai/linkedin-community-management/rest/people/(id:{personId})?fields=localizedHeadline" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Notes:

  • The (id:{personId}) syntax uses Rest.li composite key format — parentheses are required
  • Use curl -g to prevent shell glob expansion of parentheses
  • Non-connected members may return {"id": "private"} with limited data
  • The person ID comes from URNs like urn:li:person:{personId} found in org ACLs, post authors, and comment actors

Find Organization by Vanity Name

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizations?q=vanityName&vanityName={vanityName}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Get Organization by ID (Admin Required)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizations/{organizationId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Get Organization Follower Count

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/networkSizes/urn%3Ali%3Aorganization%3A{orgId}?edgeType=COMPANY_FOLLOWED_BY_MEMBER" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Response:

{
  "firstDegreeSize": 33634367
}

Find Administered Organizations

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationAcls?q=roleAssignee&role=ADMINISTRATOR&state=APPROVED" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Find Child Organizations (Brands)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizations?q=parentOrganization&parent=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Create a Post

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/posts" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "author": "urn:li:organization:{orgId}",
    "commentary": "Your post text here",
    "visibility": "PUBLIC",
    "distribution": {
      "feedDistribution": "MAIN_FEED",
      "targetEntities": [],
      "thirdPartyDistributionChannels": []
    },
    "lifecycleState": "PUBLISHED",
    "isReshareDisabledByAuthor": false
  }'

Returns 201 with x-restli-id header containing the post URN (e.g., urn:li:share:123456).

Author can be urn:li:person:{personId} for member posts or urn:li:organization:{orgId} for organization posts.

Create a Post with Media

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/posts" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "author": "urn:li:organization:{orgId}",
    "commentary": "Check out this video!",
    "visibility": "PUBLIC",
    "distribution": {
      "feedDistribution": "MAIN_FEED",
      "targetEntities": [],
      "thirdPartyDistributionChannels": []
    },
    "content": {
      "media": {
        "title": "Video title",
        "id": "urn:li:video:{videoId}"
      }
    },
    "lifecycleState": "PUBLISHED",
    "isReshareDisabledByAuthor": false
  }'

Create an Article Post

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/posts" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "author": "urn:li:organization:{orgId}",
    "commentary": "Great article on AI",
    "visibility": "PUBLIC",
    "distribution": {
      "feedDistribution": "MAIN_FEED",
      "targetEntities": [],
      "thirdPartyDistributionChannels": []
    },
    "content": {
      "article": {
        "source": "https://example.com/article",
        "thumbnail": "urn:li:image:{imageId}",
        "title": "Article Title",
        "description": "Article description"
      }
    },
    "lifecycleState": "PUBLISHED",
    "isReshareDisabledByAuthor": false
  }'

Get Post by URN

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/posts/{encoded_postUrn}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

URNs must be URL-encoded: urn:li:share:123 becomes urn%3Ali%3Ashare%3A123.

Find Posts by Author (Organization)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/posts?author=urn%3Ali%3Aorganization%3A{orgId}&q=author&count=10&sortBy=LAST_MODIFIED" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "X-RestLi-Method: FINDER"

Parameters:

FieldDescriptionRequired
authorOrganization or Person URN (URL-encoded)Yes
qMust be authorYes
countNumber of results (max 100, default 10)No
startOffset for pagination (default 0)No
sortByLAST_MODIFIED or CREATEDNo

Update a Post

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/posts/{encoded_postUrn}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "X-RestLi-Method: PARTIAL_UPDATE" \
  -H "Content-Type: application/json" \
  -d '{
    "patch": {
      "$set": {
        "commentary": "Updated post text"
      }
    }
  }'

Returns 204 on success. Only commentary, contentCallToActionLabel, contentLandingPage, and lifecycleState can be updated.

Delete a Post

curl -s -X DELETE "https://api.maton.ai/linkedin-community-management/rest/posts/{encoded_postUrn}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "X-RestLi-Method: DELETE"

Returns 204 on success.

Reshare a Post

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/posts" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "author": "urn:li:organization:{orgId}",
    "commentary": "Great insights!",
    "visibility": "PUBLIC",
    "distribution": {
      "feedDistribution": "MAIN_FEED",
      "targetEntities": [],
      "thirdPartyDistributionChannels": []
    },
    "lifecycleState": "PUBLISHED",
    "isReshareDisabledByAuthor": false,
    "reshareContext": {
      "parent": "urn:li:share:{originalPostId}"
    }
  }'

Get Comments on a Post

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_postUrn}/comments" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Get a Specific Comment

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_postUrn}/comments/{commentId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Create a Comment

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_postUrn}/comments" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "actor": "urn:li:organization:{orgId}",
    "object": "urn:li:activity:{activityId}",
    "message": {
      "text": "Your comment text"
    }
  }'

Returns 201 with x-restli-id header containing the comment ID.

Create a Nested Comment (Reply)

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_commentUrn}/comments" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "actor": "urn:li:organization:{orgId}",
    "object": "urn:li:share:{shareId}",
    "message": {
      "text": "Reply to comment"
    },
    "parentComment": "urn:li:comment:(urn:li:activity:{activityId},{commentId})"
  }'

Edit a Comment

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_postUrn}/comments/{commentId}?actor=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "X-RestLi-Method: PARTIAL_UPDATE" \
  -H "Content-Type: application/json" \
  -d '{
    "patch": {
      "message": {
        "$set": {
          "text": "Updated comment text"
        }
      }
    }
  }'

Delete a Comment

curl -s -X DELETE "https://api.maton.ai/linkedin-community-management/rest/socialActions/{encoded_postUrn}/comments/{commentId}?actor=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Create a Reaction

curl -s -X POST "https://api.maton.ai/linkedin-community-management/rest/reactions?actor=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0" \
  -H "Content-Type: application/json" \
  -d '{
    "root": "urn:li:activity:{activityId}",
    "reactionType": "LIKE"
  }'

Reaction types: LIKE, PRAISE (Celebrate), EMPATHY (Love), INTEREST (Insightful), APPRECIATION (Support), ENTERTAINMENT (Funny).

Get Reactions on a Post

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/reactions/(entity:{encoded_entityUrn})?q=entity" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Delete a Reaction

curl -s -X DELETE "https://api.maton.ai/linkedin-community-management/rest/reactions/(actor:urn%3Ali%3Aperson%3A{personId},entity:{encoded_entityUrn})" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Returns 204 on success.

Organization Follower Statistics (Lifetime)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationalEntityFollowerStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Returns follower counts segmented by geo, function, industry, seniority, and staff count range.

Organization Follower Statistics (Time-Bound)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationalEntityFollowerStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A{orgId}&timeIntervals.timeGranularityType=DAY&timeIntervals.timeRange.start={startMs}&timeIntervals.timeRange.end={endMs}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

timeGranularityType can be DAY, WEEK, or MONTH. Timestamps are milliseconds since epoch.

Organization Page Statistics (Lifetime)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationPageStatistics?q=organization&organization=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Organization Page Statistics (Time-Bound)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationPageStatistics?q=organization&organization=urn%3Ali%3Aorganization%3A{orgId}&timeIntervals.timeGranularityType=DAY&timeIntervals.timeRange.start={startMs}&timeIntervals.timeRange.end={endMs}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Organization Share Statistics (Lifetime)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A{orgId}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Response:

{
  "elements": [{
    "totalShareStatistics": {
      "uniqueImpressionsCount": 36430528,
      "shareCount": 0,
      "engagement": 0.029,
      "clickCount": 1999920,
      "likeCount": 0,
      "impressionCount": 67703905,
      "commentCount": 0
    },
    "organizationalEntity": "urn:li:organization:1337"
  }]
}

Organization Share Statistics (Time-Bound)

curl -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A{orgId}&timeIntervals.timeGranularityType=DAY&timeIntervals.timeRange.start={startMs}&timeIntervals.timeRange.end={endMs}" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Share Statistics for Specific Posts

curl -g -s -X GET "https://api.maton.ai/linkedin-community-management/rest/organizationalEntityShareStatistics?q=organizationalEntity&organizationalEntity=urn%3Ali%3Aorganization%3A{orgId}&shares=List(urn%3Ali%3Ashare%3A{shareId1},urn%3Ali%3Ashare%3A{shareId2})" \
  -H "Authorization: Bearer $MATON_API_KEY" \
  -H "LinkedIn-Version: 202606" \
  -H "X-Restli-Protocol-Version: 2.0.0"

Resources

On this page