curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Team-SID: <api-key>' \
--data '
{
"linkedin_account_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest"
payload = {
"linkedin_account_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Team-SID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Team-SID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({linkedin_account_sid: '<string>', page_size: 50, cursor: '<string>'})
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'linkedin_account_sid' => '<string>',
'page_size' => 50,
'cursor' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Team-SID: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest"
payload := strings.NewReader("{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Team-SID", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Team-SID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"operation": "search",
"items": [
{
"item": {
"sid": "<string>",
"team_sid": "<string>",
"linkedin_account_sid": "<string>",
"conversation_hash": "<string>",
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"participants": [
{
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"full_name": "<string>",
"headline": "<string>",
"picture_url": "<string>"
}
],
"is_muted": true,
"event_count": 123,
"last_activity_at": "<string>",
"last_stored_message_at": "<string>",
"last_message_sync_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"included": {}
}
],
"pagination": {
"next_cursor": "<string>",
"has_more": true,
"total_count": 123
},
"applied_filters": {},
"includes": [
"<string>"
],
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
},
"counts": {}
}{
"success": false,
"error": {
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"description": "<string>",
"entity_sid": "<string>",
"resolution": "<string>",
"resolution_hint": "<string>",
"count": 123
}
],
"context": {}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
}
}{
"success": false,
"error": {
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"description": "<string>",
"entity_sid": "<string>",
"resolution": "<string>",
"resolution_hint": "<string>",
"count": 123
}
],
"context": {}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
}
}Get my latest LinkedIn conversations
Always-fresh head read of the basic-LinkedIn-messenger thread list for one account (§5.8 foreground refresh, then the last N threads from the refreshed DB, last_activity_at DESC). Never serves stale data: it 429s with bucket_saturated / sync_in_progress instead. Use before an inbox decision; use sync_my_linkedin_conversations for full backfill.
Contract:
- MCP tool
get_my_latest_linkedin_conversations, registry packagemcp.linkedin/linkedin_conversations, mountlinkedin.messaging. - Operation
action, response envelopesearch. - Flags: none.
curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Team-SID: <api-key>' \
--data '
{
"linkedin_account_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest"
payload = {
"linkedin_account_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Team-SID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Team-SID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({linkedin_account_sid: '<string>', page_size: 50, cursor: '<string>'})
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'linkedin_account_sid' => '<string>',
'page_size' => 50,
'cursor' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Team-SID: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest"
payload := strings.NewReader("{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Team-SID", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gtm-api.com/linkedin/v4/api/linkedin-conversations/get-my-latest")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Team-SID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedin_account_sid\": \"<string>\",\n \"page_size\": 50,\n \"cursor\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"operation": "search",
"items": [
{
"item": {
"sid": "<string>",
"team_sid": "<string>",
"linkedin_account_sid": "<string>",
"conversation_hash": "<string>",
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"participants": [
{
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"full_name": "<string>",
"headline": "<string>",
"picture_url": "<string>"
}
],
"is_muted": true,
"event_count": 123,
"last_activity_at": "<string>",
"last_stored_message_at": "<string>",
"last_message_sync_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"included": {}
}
],
"pagination": {
"next_cursor": "<string>",
"has_more": true,
"total_count": 123
},
"applied_filters": {},
"includes": [
"<string>"
],
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
},
"counts": {}
}{
"success": false,
"error": {
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"description": "<string>",
"entity_sid": "<string>",
"resolution": "<string>",
"resolution_hint": "<string>",
"count": 123
}
],
"context": {}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
}
}{
"success": false,
"error": {
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"description": "<string>",
"entity_sid": "<string>",
"resolution": "<string>",
"resolution_hint": "<string>",
"count": 123
}
],
"context": {}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
}
}Authorizations
Access token issued by gtm.service.id. Its access_identity claim carries team_sid, actor_sid and actor_type, and that team scope is authoritative.
Team scope for tokens that do not carry one. Ignored when the token already names a team.
Body
Request body of get_my_latest_linkedin_conversations.
Response
search success envelope.
true search Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes