List all posts
GEThttps://api.postpress.ai/v1/users/{identifier}/posts
Returns a paginated list of posts written by a user or a company.
Authorization
X-API-KEYstringrequired
API key from your postpress dashboard. Sent as a request header.
Path parameters
identifierstringrequired
The entity's provider internal id. LinkedIn: starts with `ACo`/`ADo` for users, or a series of numbers for companies. Instagram: `provider_id` or `username`.
Query parameters
cursorstringoptional
Pagination cursor. Pass the `cursor` from the previous response to fetch the next page. Repeat until `cursor` is `null`. Minimum length 1.
limitintegeroptional
Maximum number of items to return. Between 1 and 100. Defaults to 100.
is_companybooleanoptional
LinkedIn only. Set to `true` if the posts are from a company.
account_idstringrequired
The linked account to perform the request from.
Response 200 OK
Each item is one of the following post variants, depending on the provider.
objectstringPostListrequireditemsarray of objectsrequiredPosts in the current page.
items array
LinkedIn post variantobjectLinkedIn post variant object
objectstringPostrequiredproviderstringLINKEDINrequiredidstringrequiredsocial_idstringrequiredIdentifier used to add a comment or reaction to the post.
share_urlstringrequiredtitlestringtextstringrequireddatestringrequiredparsed_datetimestringrequiredreaction_counternumberrequiredcomment_counternumberrequiredrepost_counternumberrequiredimpressions_counternumberrequireduser_reactedstringLIKEPRAISEAPPRECIATIONEMPATHYINTERESTENTERTAINMENTauthorobjectrequiredauthor object
public_identifierstringrequiredidstringrequirednamestringrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstringwritten_byobjectwritten_by object
idstringrequiredpublic_identifierstringrequirednamestringrequiredpermissionsobjectrequiredpermissions object
can_reactbooleanrequiredcan_sharebooleanrequiredcan_post_commentsbooleanrequiredis_repostbooleanrequiredrepost_idstringThe republication id.
reposted_byobjectreposted_by object
public_identifierstringrequiredidstringrequirednamestringrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstringrepost_contentobjectThe post shared in the current publication.
repost_content object
idstringrequireddatestringrequiredparsed_datetimestringrequiredauthorobjectrequiredauthor object
public_identifierstringrequiredidstringrequirednamestringrequiredis_companybooleanrequiredheadlinestringprofile_picture_urlstringtextstringrequiredmentionsarray of objectsrequiredmentions object
urlstringrequiredstartnumberrequiredlengthnumberrequiredattachmentsarray of objectsrequiredattachments array
ImageobjectImage object
typestringimgrequiredidstringrequiredunavailablebooleanrequiredstickerbooleanrequiredmimetypestringfile_sizenumberurlstringurl_expires_atnumbersizeobjectrequiredsize object
widthnumberrequiredheightnumberrequiredVideoobjectVideo object
typestringvideorequiredidstringrequiredunavailablebooleanrequiredgifbooleanrequiredmimetypestringfile_sizenumberurlstringurl_expires_atnumbersizeobjectrequiredsize object
widthnumberrequiredheightnumberrequiredAudioobjectAudio object
typestringaudiorequiredidstringrequiredunavailablebooleanrequiredvoice_notebooleanrequireddurationnumbermimetypestringfile_sizenumberurlstringurl_expires_atnumberFileobjectFile object
typestringfilerequiredidstringrequiredunavailablebooleanrequiredfile_namestringrequiredmimetypestringfile_sizenumberurlstringurl_expires_atnumberLinkedIn postobjectLinkedIn post object
typestringlinkedin_postrequiredidstringrequiredunavailablebooleanrequiredmimetypestringfile_sizenumberurlstringurl_expires_atnumberVideo meetingobjectVideo meeting object
typestringvideo_meetingrequiredidstringrequiredunavailablebooleanrequiredstarts_atnumberrequiredexpires_atnumberrequiredtime_rangenumberrequiredmimetypestringfile_sizenumberurlstringurl_expires_atnumberpollobjectpoll object
idstringrequiredquestionstringrequiredis_openbooleanrequiredtotal_votes_countnumberrequiredoptionsarray of objectsrequiredoptions object
idstringrequiredtextstringrequiredwinbooleanrequiredvotes_countnumberrequiredgroupobjectgroup object
idstringrequirednamestringrequiredprivatebooleanrequiredanalyticsobjectanalytics object
impressionsnumberengagementsnumberengagement_ratenumberclicksnumberclickthrough_ratenumberpage_viewers_from_this_postnumberfollowers_gained_from_this_postnumbermembers_reachednumberInstagram post variantobjectInstagram post variant object
objectstringPostrequiredproviderstringINSTAGRAMrequiredprovider_idstringrequiredhas_audiobooleanrequiredhas_likedbooleanrequiredlike_countnumberrequiredcomment_countnumberrequiredlike_and_view_counts_disabledbooleanrequiredcomments_disabledbooleanrequiredaccessibility_captionstringrequiredcaptionobjectcaption object
editedbooleanrequiredhas_translationbooleanrequiredcreated_atnumberrequiredtextstringrequiredvideoobjectvideo object
urlstringrequiredwidthnumberrequiredheightnumberrequiredpreview_imageobjectrequiredpreview_image object
urlstringrequiredwidthnumberrequiredheightnumberrequiredownerobjectrequiredowner object
idstringrequiredusernamestringrequiredprofile_pic_urlstringrequiredis_verifiedbooleanrequiredis_privatebooleanrequiredlocationobjectrequiredlocation object
namestringrequiredlatnumberrequiredlngnumberrequiredcursorstringrequiredCursor for the next page, or `null` if this is the last page.
pagingobjectrequiredpaging object
page_countnumberrequiredExample request
curl --request GET \
--url 'https://api.postpress.ai/api/v1/users/ACoAACr-1eYBl.../posts?limit=100&account_id=acc_linkedin_01HXYZ4QK3WJ8FN3M6QH7TZ8GR' \
--header 'X-API-KEY: pp_live_...' \
--header 'accept: application/json'Example response
{
"object": "PostList",
"items": [
{
"object": "Post",
"provider": "LINKEDIN",
"id": "7180000000000000000",
"social_id": "urn:li:activity:7180000000000000000",
"share_url": "https://www.linkedin.com/posts/jordan-walke_activity-7180000000000000000",
"text": "Excited to share what we shipped this week.",
"date": "2 days ago",
"parsed_datetime": "2026-05-15T12:34:00.000Z",
"reaction_counter": 248,
"comment_counter": 31,
"repost_counter": 12,
"impressions_counter": 18200,
"user_reacted": "LIKE",
"author": {
"public_identifier": "jordan-walke",
"id": "ACoAACr-1eYBl...",
"name": "Jordan Walke",
"is_company": false,
"headline": "Engineer at Acme",
"profile_picture_url": "https://media.licdn.com/.../profile.jpg"
},
"permissions": { "can_react": true, "can_share": true, "can_post_comments": true },
"is_repost": false,
"mentions": [],
"attachments": [
{
"type": "img",
"id": "img_01HXYZ",
"unavailable": false,
"mimetype": "image/jpeg",
"url": "https://media.licdn.com/.../image.jpg",
"url_expires_at": 1747000000,
"size": { "width": 1200, "height": 800 },
"sticker": false
}
]
}
],
"cursor": "eyJvIjoxMDB9",
"paging": { "page_count": 1 }
}Errors
Every error response follows the same envelope:
titlestringrequired
Short error title.
detailstringoptional
Human-readable explanation.
instancestringoptional
Request identifier for support.
typestringrequired
Error type identifier.
statusnumberrequired
HTTP status code.
401 Unauthorized13 types
Credentials are missing, expired, or otherwise invalid.
errors/missing_credentials- Some credentials are necessary to perform the request.errors/multiple_sessions- LinkedIn limits multiple sessions on certain Recruiter accounts. Use the cookie connection method.errors/invalid_checkpoint_solution- The checkpoint resolution did not pass successfully. Retry.errors/invalid_proxy_credentials- The provided proxy credentials are invalid.errors/checkpoint_error- The checkpoint does not appear to be resolvable.errors/invalid_credentials- The provided credentials are invalid.errors/expired_credentials- Credentials have expired. Reconnect the account.errors/insufficient_privileges- This resource is out of your API-key scopes.errors/disconnected_account- The account is disconnected from the provider service.errors/disconnected_feature- The service you're trying to reach is disconnected.errors/invalid_credentials_but_valid_account_imap- IMAP/SMTP credentials are invalid but the account is otherwise valid.errors/expired_link- This link has expired. Generate a new one.errors/wrong_account- The provided credentials do not match the correct account.
403 Forbidden9 types
Authenticated but the account is restricted or the action is not allowed.
errors/account_restricted- The account has been restricted by the provider.errors/account_mismatch- This action cannot be done with your account.errors/insufficient_permissions- Valid authentication but insufficient permissions to perform the request.errors/session_mismatch- Token user id does not match client session id.errors/feature_not_subscribed- The requested feature has not been subscribed or authenticated properly.errors/subscription_required- A subscription is required to use this feature.errors/unknown_authentication_context- An additional step seems necessary to complete login.errors/action_required- An additional step is required.errors/resource_access_restricted- You don't have access to this resource.
422 Unprocessable Entity6 types
The request is well-formed but cannot be fulfilled as-is.
errors/invalid_account- The provided account is not designed for this feature.errors/invalid_recipient- The target user is not valid.errors/user_unreachable- The target user cannot be reached on the provider.errors/unprocessable_entity- The request cannot be processed in its current form.errors/account_configuration_error- The account configuration prevents this request.errors/provider_unreachable- The provider is currently unreachable.
500 Internal Server Error3 types
Something went wrong on our side or with the upstream provider.
errors/unexpected_error- Something went wrong.errors/provider_error- The provider is experiencing operational problems. Retry later.errors/authentication_intent_error- The current authentication intent was killed after failure.
503 Service Unavailable5 types
postpress is temporarily unable to handle the request.
errors/no_client_session- No client session is currently running.errors/no_channel- No channel to client session.errors/no_handler- Handler missing for that request.errors/network_down- Network is down on the server side. Retry shortly.errors/service_unavailable- Service temporarily unavailable. Retry later.
504 Gateway Timeout1 types
The upstream provider did not respond in time.
errors/request_timeout- Request timed out. Retry, and contact support if it persists.
Updated May 2026