curl --request GET \
--url https://api.reply.io/v3/linkedin-accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/linkedin-accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/linkedin-accounts', 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://api.reply.io/v3/linkedin-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.reply.io/v3/linkedin-accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.reply.io/v3/linkedin-accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/linkedin-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 10,
"name": "John Doe",
"status": "enabled",
"profileUrl": "https://www.linkedin.com/in/johndoe",
"photoUrl": "https://media.licdn.com/photo.jpg",
"ownerUserId": 42,
"accountType": "premium",
"authType": "cookie",
"cookieStatus": "valid"
}
]{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Feature scopes [ViewLinkedInAccount] are denied for userId 123.",
"code": "linkedInAccount.forbidden"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}List LinkedIn accounts
channels:read scope (or a broader one that includes it).
Get the LinkedIn accounts connected to Reply, with connection state and automation limits. One call, no paging.
curl --request GET \
--url https://api.reply.io/v3/linkedin-accounts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/linkedin-accounts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/linkedin-accounts', 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://api.reply.io/v3/linkedin-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.reply.io/v3/linkedin-accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.reply.io/v3/linkedin-accounts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/linkedin-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 10,
"name": "John Doe",
"status": "enabled",
"profileUrl": "https://www.linkedin.com/in/johndoe",
"photoUrl": "https://media.licdn.com/photo.jpg",
"ownerUserId": 42,
"accountType": "premium",
"authType": "cookie",
"cookieStatus": "valid"
}
]{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Feature scopes [ViewLinkedInAccount] are denied for userId 123.",
"code": "linkedInAccount.forbidden"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Authorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>
Get your API key from the Reply dashboard: Settings → API Key.
Response
List of LinkedIn accounts
Unique identifier for the LinkedIn account
Display name of the LinkedIn account
Current status of the account
disabled, enabled, dailyLimitReached, cookieInvalid URL to the LinkedIn profile
URL to the profile photo
ID of the user who owns this account
Type of LinkedIn account
public, salesNavigator, premium Authentication method used
cookie, credentials Status of the LinkedIn authentication cookie
notValid, valid, neverValidated Daily usage statistics for a LinkedIn account.
Show child attributes
Show child attributes
{
"connectionRequests": 10,
"messages": 25,
"salesNavigatorConnectionRequests": 5,
"inMails": 3,
"viewProfiles": 50,
"likeRecentPosts": 15,
"detects": 30,
"revokeConnections": 2,
"endorseSkills": 5,
"followProfile": 8
}
Daily limits configuration for a LinkedIn account.
Show child attributes
Show child attributes
{
"limitsMode": "Fixed",
"fixedMax": {
"dailyDetectCount": 100,
"dailySendConnectionRequestCount": 20,
"dailySendMessageCount": 50,
"dailySendSalesNavigatorConnectionRequestCount": 10,
"dailyInMailCount": 10,
"dailyViewProfileCount": 80,
"dailyLikeRecentPostsCount": 30,
"dailyRevokeConnectionCount": 10,
"dailyEndorsedSkillsCount": 10,
"dailyFollowedProfilesCount": 20
},
"actionDelayMinSeconds": 60,
"actionDelayMaxSeconds": 120
}
Individual daily limit values for LinkedIn automation actions.
Show child attributes
Show child attributes
{
"dailyDetectCount": 100,
"dailySendConnectionRequestCount": 20,
"dailySendMessageCount": 50,
"dailySendSalesNavigatorConnectionRequestCount": 10,
"dailyInMailCount": 10,
"dailyViewProfileCount": 80,
"dailyLikeRecentPostsCount": 30,
"dailyRevokeConnectionCount": 10,
"dailyEndorsedSkillsCount": 10,
"dailyFollowedProfilesCount": 20,
"dailyCommentRecentPostCount": 10
}
Connection revocation settings for a LinkedIn account.
Show child attributes
Show child attributes
{ "enabled": true, "periodDays": 30 }
Voice profile associated with a LinkedIn account.
Show child attributes
Show child attributes
{
"voiceProfileId": 5,
"voiceProfileName": "Professional tone",
"isDefault": true
}