LinkedIn · Search
Posts
Search posts by keyword. Costs 4 credits per returned post, the same as profile posts. Empty results are free.
01
Request
POST /api/linkedin/search/posts with query, optional filters, and an optional pagination_token.
▸ ▾ request {}
{
"query": "AI AND recruitment",
"filters": {
"sort_by": "date_posted",
"date_posted": "past-week",
"content_type": "videos"
},
"spell_check_enabled": false
}| query | Search text, including quoted phrases and Boolean operators, passed as entered. Up to 2,048 bytes. |
| spell_check_enabled | Defaults to true. Set false to keep spelling literal. |
| pagination_token | Omit initially. Return data.pagination.pagination_token unchanged with the same query, filters and spell-check setting. |
The first page asks for ten posts. LinkedIn may return fewer. A short page can still have a continuation; stop when has_next_page is false.
02
Filters
Put these fields inside filters. Omit any you do not need.
| sort_by | relevance or date_posted. |
| date_posted | past-24h, past-week or past-month. |
| content_type | photos, videos, liveVideos, documents or jobs. |
| posted_by | Array containing first, following or me. Relationships refer to the LinkedIn account used for the search. |
| from_member | Array of native LinkedIn member filter values. |
| from_organization | Array of native LinkedIn organization filter values. |
| mentions_member | Array of native member values for mentions. |
| mentions_organization | Array of native organization values for mentions. |
| author_company | Array of native company filter values for authors. |
| author_industry | Array of native industry filter values for authors. |
| author_job_title | Array of native job-title filter values for authors. |
Array filters accept up to 50 nonempty strings, each up to 512 bytes. Use the values from LinkedIn’s search filters; public URLs and names are not resolved automatically.
03
Response sample
▸ ▾ response {} — one real post; metadata and media shortened
{
"cost": 4,
"data": {
"query": "hello and won",
"posts": [
{
"id": "7509748714438172672",
"urn": "urn:li:activity:7509748714438172672",
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7509748714438172672/",
"author": {
"name": "Western Force",
"type": "company",
"url": "https://www.linkedin.com/company/westernforce/",
"verified": true
},
"text": "Win, and the Grand Final comes WEST. 🏆\n\nLet’s get it done 💪\n\n#StrongerTogether #WeAreTheWest",
"posted_at_text": "1w •",
"visibility": "Global",
"images": [
{
"url": "https://media.licdn.com/dms/image/v2/D4E10AQEVrHkcr7NbSQ/image-shrink_1280/B4EaDf8qEkHcAc-/0/1790463615603?e=1791748800&v=beta&t=avo8UmBoXMt79hQ3uI8QVlEk-sAArGvPdovOlulUy-c",
"width": 1080,
"height": 1350,
"alt_text": "View image"
}
],
"engagement": {
"reaction_count": 17,
"comment_count": 1,
"repost_count": 0
}
}
],
"pagination": {
"has_next_page": true,
"pagination_token": "<opaque token from the response>"
}
}
}04
Fields
The response includes cost, created_at, request_duration and parse_duration alongside data. Cost is 4 times the number of returned posts. An unaffordable page returns no results and no charge.
data {}
▸ ▾ postsobject[]Deduplicated search result cards.
Fields missing from LinkedIn are omitted or null. Media links may expire. Document preview URLs can cover fewer pages than page_count. Search results can contain previews rather than every field available on a post’s own page.