# Authored posts (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "posts", "posted_within": "month"}'
# Comments tab — separate scrape (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "comments", "page": 1}'
import requests
# Each kind = separate request = separate scrape
for kind in ("posts", "comments", "reactions"):
resp = requests.post(
"https://api.up2data.ai/v1/profiles/activity",
headers={"X-API-Key": UP2DATA_API_KEY},
json={"url": "https://linkedin.com/in/janedoe", "kind": kind, "page": 1},
)
data = resp.json()["data"]
{
"data": {
"kind": "posts",
"url": "https://linkedin.com/in/janedoe",
"urn": "ACoAA…",
"posts": [{
"url": "https://linkedin.com/posts/janedoe_launch-activity-7215",
"urn": "7267273010393358336",
"author": {"name": "Jane Doe", "url": "https://linkedin.com/in/janedoe", "headline": "CEO at Example"},
"text": "Today we are launching…",
"posted_at": "2026-07-06T18:45:00Z",
"reactions_count": 1204,
"comments_count": 187,
"reposts_count": 96,
"scraped_at": "2026-07-08T12:00:00Z"
}],
"pagination": {"page": 1, "per_page": 25, "has_more": false},
"pagination_token": null,
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {
"creditsUsed": 2,
"creditsRemaining": 98417,
"billed": true,
"reason": "success",
"requestId": "req_example",
"latencyMs": 2100
}
}
{
"data": {
"kind": "comments",
"url": "https://linkedin.com/in/janedoe",
"comments": [{
"text": "Congrats on the launch!",
"posted_at": "2026-07-05T14:22:00Z",
"target_post": {
"url": "https://linkedin.com/posts/acme_announcement-activity-7210",
"urn": "7267273010393358000",
"text_snippet": "We are thrilled to announce…",
"author": {"name": "Acme Corp", "url": "https://linkedin.com/company/acme"}
}
}],
"pagination": {"page": 1, "per_page": 25, "has_more": true},
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {"creditsUsed": 2, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2400}
}
Profiles
Get profile activity
Outbound profile activity — authored posts, comments, reactions, or reposts. One kind parameter per request; each kind is a separate scrape.
POST
/
v1
/
profiles
/
activity
# Authored posts (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "posts", "posted_within": "month"}'
# Comments tab — separate scrape (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "comments", "page": 1}'
import requests
# Each kind = separate request = separate scrape
for kind in ("posts", "comments", "reactions"):
resp = requests.post(
"https://api.up2data.ai/v1/profiles/activity",
headers={"X-API-Key": UP2DATA_API_KEY},
json={"url": "https://linkedin.com/in/janedoe", "kind": kind, "page": 1},
)
data = resp.json()["data"]
{
"data": {
"kind": "posts",
"url": "https://linkedin.com/in/janedoe",
"urn": "ACoAA…",
"posts": [{
"url": "https://linkedin.com/posts/janedoe_launch-activity-7215",
"urn": "7267273010393358336",
"author": {"name": "Jane Doe", "url": "https://linkedin.com/in/janedoe", "headline": "CEO at Example"},
"text": "Today we are launching…",
"posted_at": "2026-07-06T18:45:00Z",
"reactions_count": 1204,
"comments_count": 187,
"reposts_count": 96,
"scraped_at": "2026-07-08T12:00:00Z"
}],
"pagination": {"page": 1, "per_page": 25, "has_more": false},
"pagination_token": null,
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {
"creditsUsed": 2,
"creditsRemaining": 98417,
"billed": true,
"reason": "success",
"requestId": "req_example",
"latencyMs": 2100
}
}
{
"data": {
"kind": "comments",
"url": "https://linkedin.com/in/janedoe",
"comments": [{
"text": "Congrats on the launch!",
"posted_at": "2026-07-05T14:22:00Z",
"target_post": {
"url": "https://linkedin.com/posts/acme_announcement-activity-7210",
"urn": "7267273010393358000",
"text_snippet": "We are thrilled to announce…",
"author": {"name": "Acme Corp", "url": "https://linkedin.com/company/acme"}
}
}],
"pagination": {"page": 1, "per_page": 25, "has_more": true},
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {"creditsUsed": 2, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2400}
}
Cost: 2 credits per page (up to 25 items) · empty pages free · one
Comment/reaction tabs may be empty or truncated when the member hides activity or LinkedIn’s ~360-day visibility window applies.
Rate limit: counts as 1 request against your rate limit.
kind per request
Outbound activity for a profile — what they published, commented on, reacted to, or reposted. Pass exactly one kind per call. Each kind hits a different LinkedIn tab and is billed as its own scrape — there is no combined all mode.
This is the mirror of post engagement (inbound on a single post). For company-authored posts only, use company posts.
kind | What you get |
|---|---|
posts | Posts the profile published |
comments | Comments the profile left on others’ posts |
reactions | Reactions/likes the profile gave |
reposts | Posts the profile reposted |
string
Profile URL or public identifier (e.g.
satyanadella). Provide url or urn.string
LinkedIn member URN (e.g.
ACoAAB…). Preferred when you already have it from search or engagement endpoints.string
required
posts | comments | reactions | reposts — one per request.string
default:"all"
24h | week | month | all — applies when kind is posts.integer
default:"1"
integer
default:"25"
1–25.
string
Required for pages after the first when returned by a prior response.
Response
string
Echo of the requested activity kind.
object[]
object[]
When
kind is comments — text, posted_at, target_post.object[]
When
kind is reactions — reaction_type, reacted_at, target_post.object[]
When
kind is reposts — repost entries with original post metadata.# Authored posts (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "posts", "posted_within": "month"}'
# Comments tab — separate scrape (2 credits)
curl -X POST https://api.up2data.ai/v1/profiles/activity \
-H "X-API-Key: $UP2DATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://linkedin.com/in/janedoe", "kind": "comments", "page": 1}'
import requests
# Each kind = separate request = separate scrape
for kind in ("posts", "comments", "reactions"):
resp = requests.post(
"https://api.up2data.ai/v1/profiles/activity",
headers={"X-API-Key": UP2DATA_API_KEY},
json={"url": "https://linkedin.com/in/janedoe", "kind": kind, "page": 1},
)
data = resp.json()["data"]
{
"data": {
"kind": "posts",
"url": "https://linkedin.com/in/janedoe",
"urn": "ACoAA…",
"posts": [{
"url": "https://linkedin.com/posts/janedoe_launch-activity-7215",
"urn": "7267273010393358336",
"author": {"name": "Jane Doe", "url": "https://linkedin.com/in/janedoe", "headline": "CEO at Example"},
"text": "Today we are launching…",
"posted_at": "2026-07-06T18:45:00Z",
"reactions_count": 1204,
"comments_count": 187,
"reposts_count": 96,
"scraped_at": "2026-07-08T12:00:00Z"
}],
"pagination": {"page": 1, "per_page": 25, "has_more": false},
"pagination_token": null,
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {
"creditsUsed": 2,
"creditsRemaining": 98417,
"billed": true,
"reason": "success",
"requestId": "req_example",
"latencyMs": 2100
}
}
{
"data": {
"kind": "comments",
"url": "https://linkedin.com/in/janedoe",
"comments": [{
"text": "Congrats on the launch!",
"posted_at": "2026-07-05T14:22:00Z",
"target_post": {
"url": "https://linkedin.com/posts/acme_announcement-activity-7210",
"urn": "7267273010393358000",
"text_snippet": "We are thrilled to announce…",
"author": {"name": "Acme Corp", "url": "https://linkedin.com/company/acme"}
}
}],
"pagination": {"page": 1, "per_page": 25, "has_more": true},
"scraped_at": "2026-07-08T12:00:00Z"
},
"meta": {"creditsUsed": 2, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2400}
}