curl --request GET \
--url https://openapi.enginy.ai/v1/social-selling/posts \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/social-selling/posts"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://openapi.enginy.ai/v1/social-selling/posts', 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://openapi.enginy.ai/v1/social-selling/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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://openapi.enginy.ai/v1/social-selling/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://openapi.enginy.ai/v1/social-selling/posts")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/social-selling/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"publishingPostId": 123,
"identity": {
"id": 123,
"name": "<string>"
},
"linkedinPostUrn": "<string>",
"url": "<string>",
"postType": "ORIGINAL",
"postedAt": "<string>",
"content": "<string>",
"metrics": {
"impressions": 123,
"reactions": 123,
"reactionsByType": {},
"comments": 123,
"reposts": 123,
"engagedAccounts": 123,
"newEngagers": 123,
"refreshedAt": "<string>"
},
"topics": [
{
"key": "<string>",
"label": "<string>"
}
],
"targetRoles": [
{
"key": "<string>",
"label": "<string>"
}
],
"appUrl": "<string>"
}
],
"meta": {
"page": 123,
"pageSize": 123,
"total": 123
}
}List Social Selling posts
List the LinkedIn posts Social Selling tracks for your identities, newest first, with their latest LinkedIn metrics (impressions, reactions by type, comments, reposts) and Enginy engagement counters (engaged accounts, new engagers). Filter by identity and publish date. Reposts are hidden unless includeReposts=true.
Responses include direct Enginy app URLs when available. Each post includes an appUrl that opens it in Enginy once it has a publishing post. MCP agents should return those URLs to users whenever they are present in the response.
Required scope:
SOCIAL_SELLING_READRate limit: 100 requests per minute
curl --request GET \
--url https://openapi.enginy.ai/v1/social-selling/posts \
--header 'x-api-key: <api-key>'import requests
url = "https://openapi.enginy.ai/v1/social-selling/posts"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://openapi.enginy.ai/v1/social-selling/posts', 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://openapi.enginy.ai/v1/social-selling/posts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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://openapi.enginy.ai/v1/social-selling/posts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://openapi.enginy.ai/v1/social-selling/posts")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.enginy.ai/v1/social-selling/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"publishingPostId": 123,
"identity": {
"id": 123,
"name": "<string>"
},
"linkedinPostUrn": "<string>",
"url": "<string>",
"postType": "ORIGINAL",
"postedAt": "<string>",
"content": "<string>",
"metrics": {
"impressions": 123,
"reactions": 123,
"reactionsByType": {},
"comments": 123,
"reposts": 123,
"engagedAccounts": 123,
"newEngagers": 123,
"refreshedAt": "<string>"
},
"topics": [
{
"key": "<string>",
"label": "<string>"
}
],
"targetRoles": [
{
"key": "<string>",
"label": "<string>"
}
],
"appUrl": "<string>"
}
],
"meta": {
"page": 123,
"pageSize": 123,
"total": 123
}
}Authorizations
Query Parameters
x >= 11 <= x <= 100Comma-separated identity ids. Defaults to every identity the caller may see.
1"12,34"
Only posts published on or after this day (UTC).
^\d{4}-\d{2}-\d{2}$"2026-09-01"
Only posts published on or before this day (UTC).
^\d{4}-\d{2}-\d{2}$"2026-09-01"
Include reposts made by the identity. Off by default.