Get my latest Sales Navigator messages
curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Team-SID: <api-key>' \
--data '
{
"linkedin_conversation_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav"
payload = {
"linkedin_conversation_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_conversation_sid: '<string>', page_size: 50, cursor: '<string>'})
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav', 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-messages/get-my-latest-sales-nav",
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_conversation_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-messages/get-my-latest-sales-nav"
payload := strings.NewReader("{\n \"linkedin_conversation_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-messages/get-my-latest-sales-nav")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedin_conversation_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-messages/get-my-latest-sales-nav")
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_conversation_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>",
"linkedin_conversation_sid": "<string>",
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"subject": "<string>",
"text": "<string>",
"attachments": [
{
"id": "<string>",
"urn": "<string>",
"name": "<string>",
"content_type": "<string>",
"content_url": "<string>",
"file_byte_size": 123,
"path": "<string>",
"size": 123
}
],
"reactions": [
{
"emoji": "<string>",
"count": 123,
"is_viewer_reacted": true,
"first_reacted_at": "<string>"
}
],
"message_hash": "<string>",
"sent_at": "<string>",
"custom_content": {},
"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>"
},
"refresh": {
"performed": true,
"pages_fetched": 123,
"items_seen": 123,
"items_upserted": 123,
"stop_reason": "<string>"
},
"counts": {
"total_count": 123,
"inbox_count": 123,
"outbox_count": 123,
"message_count": 123,
"inmail_count": 123,
"connection_note_count": 123,
"with_attachments_count": 123,
"groups": {}
}
}{
"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>"
}
}linkedin_messages
Get my latest Sales Navigator messages
Sales Navigator variant of get_my_latest_linkedin_messages: always-fresh head read of ONE SN thread’s messages (§5.8 refresh-then-return). Requires a messenger_type=‘sales_navigator’ conversation; same hard-429 guards.
Contract:
- MCP tool
get_my_latest_linkedin_messages_sales_nav, registry packagemcp.linkedin/linkedin_messages, mountlinkedin.messaging. - Operation
action, response envelopesearch. - Flags: none.
POST
/
api
/
linkedin-messages
/
get-my-latest-sales-nav
Get my latest Sales Navigator messages
curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Team-SID: <api-key>' \
--data '
{
"linkedin_conversation_sid": "<string>",
"page_size": 50,
"cursor": "<string>"
}
'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav"
payload = {
"linkedin_conversation_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_conversation_sid: '<string>', page_size: 50, cursor: '<string>'})
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/get-my-latest-sales-nav', 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-messages/get-my-latest-sales-nav",
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_conversation_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-messages/get-my-latest-sales-nav"
payload := strings.NewReader("{\n \"linkedin_conversation_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-messages/get-my-latest-sales-nav")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedin_conversation_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-messages/get-my-latest-sales-nav")
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_conversation_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>",
"linkedin_conversation_sid": "<string>",
"ln_member_id": "<string>",
"ln_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"subject": "<string>",
"text": "<string>",
"attachments": [
{
"id": "<string>",
"urn": "<string>",
"name": "<string>",
"content_type": "<string>",
"content_url": "<string>",
"file_byte_size": 123,
"path": "<string>",
"size": 123
}
],
"reactions": [
{
"emoji": "<string>",
"count": 123,
"is_viewer_reacted": true,
"first_reacted_at": "<string>"
}
],
"message_hash": "<string>",
"sent_at": "<string>",
"custom_content": {},
"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>"
},
"refresh": {
"performed": true,
"pages_fetched": 123,
"items_seen": 123,
"items_upserted": 123,
"stop_reason": "<string>"
},
"counts": {
"total_count": 123,
"inbox_count": 123,
"outbox_count": 123,
"message_count": 123,
"inmail_count": 123,
"connection_note_count": 123,
"with_attachments_count": 123,
"groups": {}
}
}{
"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
application/json
Request body of get_my_latest_linkedin_messages_sales_nav.
Response
search success envelope.
Available options:
true Available options:
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
Show child attributes
Show child attributes
⌘I