curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-recruiter-contracts \
--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-recruiter-contracts"
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-recruiter-contracts', 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-recruiter-contracts",
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-recruiter-contracts"
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-recruiter-contracts")
.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-recruiter-contracts")
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>",
"status": "new",
"account_share_sid": "<string>",
"share_role": "owner",
"ln_id": "<string>",
"ln_member_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"recruiter_seat_id": "<string>",
"recruiter_contract_id": "<string>",
"recruiter_session_expires_at": "<string>",
"full_name": "<string>",
"avatar_url": "<string>",
"label": "<string>",
"has_premium": true,
"has_sn": true,
"recruiter_status": "active",
"smart_limits_enabled": true,
"inmail_credits": 123,
"premium_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_recruiter_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>",
"initial_sync_held_at": "<string>",
"initial_sync_hold_reason": "<string>",
"last_heartbeat_at": "<string>",
"sync_config": {
"entries": {
"connections": {
"interval_minutes": 123
},
"conversations": {
"interval_minutes": 123
},
"sales_navigator_conversations": {
"interval_minutes": 123
},
"recruiter_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>"
},
"recruiter_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_type": "user",
"actor_sid": "<string>",
"team_sid": "<string>",
"permissions": {},
"reason": "<string>",
"request_sid": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"result": {
"recruiter_contracts": [
{
"contract_id": "<string>",
"contract_urn": "<string>",
"contract_name": "<string>",
"category": "<string>",
"description": "<string>",
"sso_enabled": true,
"application_instance_urn": "<string>",
"enterprise_profile_urn": "<string>",
"enterprise_account_id": "<string>",
"enterprise_profile_id": "<string>"
}
],
"current_contract_id": "<string>"
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"team_sid": "<string>",
"actor_type": "<string>"
}
}{
"success": false,
"error": {
"code": "validation_failed",
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"severity": "hard",
"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,
"team_sid": "<string>",
"actor_type": "<string>"
}
}{
"success": false,
"error": {
"code": "validation_failed",
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"severity": "hard",
"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,
"team_sid": "<string>",
"actor_type": "<string>"
}
}Get my Recruiter contracts
The Recruiter contracts this account’s member can act under (LinkedIn’s contract chooser, wire get-recruiter-contract-options), with current_contract_id = the contract the account’s seat is stamped under. NEEDS A RECRUITER SEAT on the account (422 recruiter_required otherwise). Read it when recruiter_status is set but recruiter_seat_id is null: a member on several contracts holds no seat until the browser is bound to one, and the premium check binds one by itself only when the choice is unambiguous (the account’s own contract, the only row, the only CORPORATE row). CORPORATE rows are Recruiter seats; the INDIVIDUAL row is a Job Posting contract on the personal account. Not gated on the Recruiter session clock: the chooser answers for a browser LinkedIn has not let into Recruiter yet, and a run-out session (recruiter_status signed_out) is the seat holder’s to renew through the cloud browser.
Contract:
- MCP tool
get_linkedin_account_my_recruiter_contracts, registry packagemcp.linkedin/linkedin_accounts, mountlinkedin.recruiter. - Operation
action, response envelopeaction. - Flags: read only.
curl --request POST \
--url https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/{sid}/get-my-recruiter-contracts \
--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-recruiter-contracts"
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-recruiter-contracts', 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-recruiter-contracts",
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-recruiter-contracts"
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-recruiter-contracts")
.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-recruiter-contracts")
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>",
"status": "new",
"account_share_sid": "<string>",
"share_role": "owner",
"ln_id": "<string>",
"ln_member_id": "<string>",
"sn_id": "<string>",
"nickname": "<string>",
"recruiter_seat_id": "<string>",
"recruiter_contract_id": "<string>",
"recruiter_session_expires_at": "<string>",
"full_name": "<string>",
"avatar_url": "<string>",
"label": "<string>",
"has_premium": true,
"has_sn": true,
"recruiter_status": "active",
"smart_limits_enabled": true,
"inmail_credits": 123,
"premium_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_recruiter_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>",
"initial_sync_held_at": "<string>",
"initial_sync_hold_reason": "<string>",
"last_heartbeat_at": "<string>",
"sync_config": {
"entries": {
"connections": {
"interval_minutes": 123
},
"conversations": {
"interval_minutes": 123
},
"sales_navigator_conversations": {
"interval_minutes": 123
},
"recruiter_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>"
},
"recruiter_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_type": "user",
"actor_sid": "<string>",
"team_sid": "<string>",
"permissions": {},
"reason": "<string>",
"request_sid": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
},
"result": {
"recruiter_contracts": [
{
"contract_id": "<string>",
"contract_urn": "<string>",
"contract_name": "<string>",
"category": "<string>",
"description": "<string>",
"sso_enabled": true,
"application_instance_urn": "<string>",
"enterprise_profile_urn": "<string>",
"enterprise_account_id": "<string>",
"enterprise_profile_id": "<string>"
}
],
"current_contract_id": "<string>"
},
"meta": {
"trace_id": "<string>",
"span_id": "<string>",
"timestamp": "<string>",
"duration_ms": 1,
"team_sid": "<string>",
"actor_type": "<string>"
}
}{
"success": false,
"error": {
"code": "validation_failed",
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"severity": "hard",
"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,
"team_sid": "<string>",
"actor_type": "<string>"
}
}{
"success": false,
"error": {
"code": "validation_failed",
"message": "<string>",
"recoverable": true,
"suggestion": "<string>",
"field_errors": {},
"blockers": [
{
"type": "<string>",
"severity": "hard",
"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,
"team_sid": "<string>",
"actor_type": "<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