curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi \
--header 'Authorization: Bearer <token>' \
--header 'Team-SID: <api-key>'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi"
headers = {
"Authorization": "Bearer <token>",
"Team-SID": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Team-SID': '<api-key>'}
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi', 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-accounts/{sid}/get-my-ssi",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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"
"net/http"
"io"
)
func main() {
url := "https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Team-SID", "<api-key>")
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-accounts/{sid}/get-my-ssi")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi")
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>'
response = http.request(request)
puts response.read_body{
"success": true,
"operation": "action",
"action": "<string>",
"item": {
"sid": "<string>",
"team_sid": "<string>",
"antidetect_browser_sid": "<string>",
"account_share_sid": "<string>",
"ln_id": "<string>",
"ln_member_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"full_name": "<string>",
"avatar_url": "<string>",
"display_name": "<string>",
"label": "<string>",
"has_premium": true,
"has_sn": true,
"has_recruiter": true,
"inmail_credits": 123,
"last_premium_check_at": "<string>",
"last_connections_sync_at": "<string>",
"last_conversations_sync_at": "<string>",
"last_sales_navigator_conversations_sync_at": "<string>",
"last_connection_requests_sync_at": "<string>",
"last_connection_invitations_sync_at": "<string>",
"last_followers_sync_at": "<string>",
"last_snapshot_at": "<string>",
"initial_sync_completed_at": "<string>",
"last_heartbeat_at": "<string>",
"sync_config": {
"entries": {
"connections": {
"interval_minutes": 123
},
"conversations": {
"interval_minutes": 123
},
"sales_navigator_conversations": {
"interval_minutes": 123
},
"connection_requests": {
"interval_minutes": 123
},
"connection_invitations": {
"interval_minutes": 123
},
"premium_check": {
"interval_minutes": 123
},
"snapshot_check": {
"interval_minutes": 123
}
},
"timezone": "<string>",
"window": [
{
"day_of_week": 4,
"start_minute": 719,
"end_minute": 720
}
]
},
"webhook_config": {
"connections": {
"enabled": true,
"since": "<string>"
},
"connection_requests": {
"enabled": true,
"since": "<string>"
},
"connection_invitations": {
"enabled": true,
"since": "<string>"
},
"conversations": {
"enabled": true,
"since": "<string>"
},
"sales_navigator_conversations": {
"enabled": true,
"since": "<string>"
},
"messages": {
"enabled": true,
"since": "<string>"
},
"followers": {
"enabled": true,
"since": "<string>"
},
"snapshot": {
"enabled": true,
"since": "<string>"
},
"strike_log": {
"enabled": true,
"since": "<string>"
},
"limits": {
"enabled": true,
"since": "<string>"
}
},
"created_by": {
"actor_sid": "<string>",
"team_sid": "<string>",
"permissions": {},
"reason": "<string>",
"request_sid": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"result": {
"status": "<string>",
"ssi": {
"active_seat": true,
"overall": 123,
"pillars": {
"professional_brand": 123,
"find_right_people": 123,
"insight_engagement": 123,
"strong_relationship": 123
},
"group_ranks": [
{
"group_type": "<string>",
"rank": 123,
"group_size": 123,
"overall": 123,
"industry": "<string>"
}
]
}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
},
"credits": {
"charged": 1,
"balance_after": 1
}
}{
"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 SSI
Read the connected account’s Social Selling Index: the overall score, the four pillars it is the sum of (professional brand, finding the right people, engaging with insights, building relationships), and where the account stands inside its industry and its own network. Answers WITHOUT a Sales Navigator seat, reporting that as active_seat: false with the scores still filled in, so it is a health signal for any account rather than a premium-only read. Non-creditable and identity-bound: the sid names the account whose own dashboard is read; there is no way to read someone else’s SSI. Every score is FRACTIONAL (a real reading is 53.496, not 53), so do not round before comparing runs, the week-over-week movement is usually under a point.
Contract:
- MCP tool
get_linkedin_account_my_ssi, registry packagemcp.linkedin/linkedin_accounts, mountlinkedin.accounts. - Operation
action, response envelopeaction. - Flags: read only.
curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi \
--header 'Authorization: Bearer <token>' \
--header 'Team-SID: <api-key>'import requests
url = "https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi"
headers = {
"Authorization": "Bearer <token>",
"Team-SID": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Team-SID': '<api-key>'}
};
fetch('https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi', 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-accounts/{sid}/get-my-ssi",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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"
"net/http"
"io"
)
func main() {
url := "https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Team-SID", "<api-key>")
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-accounts/{sid}/get-my-ssi")
.header("Authorization", "Bearer <token>")
.header("Team-SID", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-ssi")
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>'
response = http.request(request)
puts response.read_body{
"success": true,
"operation": "action",
"action": "<string>",
"item": {
"sid": "<string>",
"team_sid": "<string>",
"antidetect_browser_sid": "<string>",
"account_share_sid": "<string>",
"ln_id": "<string>",
"ln_member_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"full_name": "<string>",
"avatar_url": "<string>",
"display_name": "<string>",
"label": "<string>",
"has_premium": true,
"has_sn": true,
"has_recruiter": true,
"inmail_credits": 123,
"last_premium_check_at": "<string>",
"last_connections_sync_at": "<string>",
"last_conversations_sync_at": "<string>",
"last_sales_navigator_conversations_sync_at": "<string>",
"last_connection_requests_sync_at": "<string>",
"last_connection_invitations_sync_at": "<string>",
"last_followers_sync_at": "<string>",
"last_snapshot_at": "<string>",
"initial_sync_completed_at": "<string>",
"last_heartbeat_at": "<string>",
"sync_config": {
"entries": {
"connections": {
"interval_minutes": 123
},
"conversations": {
"interval_minutes": 123
},
"sales_navigator_conversations": {
"interval_minutes": 123
},
"connection_requests": {
"interval_minutes": 123
},
"connection_invitations": {
"interval_minutes": 123
},
"premium_check": {
"interval_minutes": 123
},
"snapshot_check": {
"interval_minutes": 123
}
},
"timezone": "<string>",
"window": [
{
"day_of_week": 4,
"start_minute": 719,
"end_minute": 720
}
]
},
"webhook_config": {
"connections": {
"enabled": true,
"since": "<string>"
},
"connection_requests": {
"enabled": true,
"since": "<string>"
},
"connection_invitations": {
"enabled": true,
"since": "<string>"
},
"conversations": {
"enabled": true,
"since": "<string>"
},
"sales_navigator_conversations": {
"enabled": true,
"since": "<string>"
},
"messages": {
"enabled": true,
"since": "<string>"
},
"followers": {
"enabled": true,
"since": "<string>"
},
"snapshot": {
"enabled": true,
"since": "<string>"
},
"strike_log": {
"enabled": true,
"since": "<string>"
},
"limits": {
"enabled": true,
"since": "<string>"
}
},
"created_by": {
"actor_sid": "<string>",
"team_sid": "<string>",
"permissions": {},
"reason": "<string>",
"request_sid": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"result": {
"status": "<string>",
"ssi": {
"active_seat": true,
"overall": 123,
"pillars": {
"professional_brand": 123,
"find_right_people": 123,
"insight_engagement": 123,
"strong_relationship": 123
},
"group_ranks": [
{
"group_type": "<string>",
"rank": 123,
"group_size": 123,
"overall": 123,
"industry": "<string>"
}
]
}
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"debug_url": "<string>"
},
"credits": {
"charged": 1,
"balance_after": 1
}
}{
"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.
Path Parameters
LinkedIn account sid (ln_ac_…).
18^ln_ac_Response
action success envelope.
true action kebab-case verb; matches the route segment.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes