POST
/
posts-api
/
posts
/
search
Search posts
curl --request POST \
  --url https://app.arxena.com/posts-api/posts/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "keywords": "hiring",
  "dataSource": "auto",
  "limit": 10
}
'
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({keywords: 'hiring', dataSource: 'auto', limit: 10})
};

fetch('https://app.arxena.com/posts-api/posts/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "https://app.arxena.com/posts-api/posts/search"

payload = {
"keywords": "hiring",
"dataSource": "auto",
"limit": 10
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "status": "ok",
  "dataSource": "unipile",
  "total": 1,
  "items": [
    {
      "id": "post-1",
      "socialId": "urn:li:activity:1",
      "shareUrl": "https://www.linkedin.com/feed/update/urn:li:activity:1",
      "title": "Hiring",
      "text": "We are hiring Account Executives",
      "postedAt": "2026-08-01T12:00:00.000Z",
      "authorName": "Jane Doe",
      "authorUrl": "https://www.linkedin.com/in/jane-doe",
      "reactionCount": 12,
      "commentCount": 3,
      "isRepost": false
    }
  ]
}
Pass keywords, and optionally sortBy (relevance | date), datePosted (past_day | past_week | past_month), and contentType. Omit dataSource or pass auto to resolve a LinkedIn Unipile account automatically (Sales Navigator seat first), then Harvest. Pin unipile, pool, recruiter, or harvest when you do not want that auto-resolve. Each hit is a standard post record: id, socialId, shareUrl, title, text, postedAt, authorName, authorUrl, reactionCount, commentCount, isRepost. Nested Unipile filters (posted_by, mentioning, author) remain on the low-level LinkedIn search route.
curl --request POST \
  --url https://app.arxena.com/posts-api/posts/search \
  --header 'Authorization: Bearer YOUR_API_KEY_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "keywords": "hiring",
    "dataSource": "auto",
    "limit": 10
  }'

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
dataSource
enum<string>
Available options:
auto,
harvest,
unipile,
pool,
recruiter
Example:

"auto"

accountId
string
keywords
string
Example:

"hiring"

sortBy
enum<string>
Available options:
relevance,
date
datePosted
enum<string>
Available options:
past_day,
past_week,
past_month
contentType
enum<string>
Available options:
videos,
images,
live_videos,
collaborative_articles,
documents
limit
number
default:20
Required range: 1 <= x <= 100

Response

200 - application/json

Post search hits

status
enum<string>
Available options:
ok
dataSource
enum<string>
Available options:
harvest,
unipile,
pool,
recruiter
total
integer
items
object[]