Install the Up2Data skill

Teach Claude Code to integrate the Up2Data API. Installs once, then loads automatically whenever you ask it about Up2Data.

  1. Run this in your terminal
    bash
    mkdir -p ~/.claude/skills/up2data-api && curl -fsSL https://up2data.ai/docs/v1/skill.md -o ~/.claude/skills/up2data-api/SKILL.md
  2. Restart Claude CodeSo it picks up the new skill.
  3. Try it"Enrich these LinkedIn profiles with Up2Data and send results to my webhook"

Requires Claude Code. macOS, Linux, or WSL.

Prefer to read it first? View the skill file

Get company posts

List recent posts published by a company page.

POSThttps://api.up2data.ai/v1/companies/posts
1 credit per returned postsynchronous

Identify the company with one of url, domain, or linkedin_id; provide exactly one. Companies have no public comments or reactions activity feed on LinkedIn, so this returns authored posts only.

Info

For a profile's posts, comments, reactions, or reposts, use profile activity. For who engaged with one company post, use the per-post comments, reactions, or reposts endpoints.

Info

Send many as batch operation items (operation companies.posts); up to 500 posts per item, 1 credit per post returned. See the batch endpoint.

#Request

FieldTypeNotes
urlstringCompany page URL or slug. Provide url, domain, or linkedin_id.
domainstringCompany website domain, e.g. anthropic.com. Provide url, domain, or linkedin_id.
linkedin_idstringNumeric LinkedIn company ID. Provide url, domain, or linkedin_id.
pageintegerDefault 1.
per_pageintegerDefault 25. 1 to 25.
max_resultsintegerCaps how many posts are returned across pages. 1 to 100, defaults to per_page.
pagination_tokenstringRequired for pages after the first, when returned by a prior response.

#Call it

cURL
curl -X POST "https://api.up2data.ai/v1/companies/posts" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://linkedin.com/company/anthropic",
  "page": 1
}'

#Response

200
{
  "data": {
    "posts": [{ "url": "https://www.linkedin.com/posts/anthropic_launch-activity-7267273010393358336-ab12", "urn": "7267273010393358336", "author": {"name": "Anthropic", "url": "https://www.linkedin.com/company/anthropicresearch/posts", "headline": "1,204,800 followers"}, "text": "Today we are announcing Claude 4, our most capable model yet.", "posted_at": "2026-07-06T18:45:00Z", "reactions_count": 4200, "comments_count": 312, "reposts_count": 890, "scraped_at": "2026-07-08T12:00:00Z", "share_urn": "7315779815297421316", "media": [{ "type": "image", "url": "https://media.licdn.com/dms/image/v2/D4E22AQExample/feedshare-shrink_2048_1536/0/claude" }] }],
    "pagination": {"returned": 1, "max_results": 25, "pages_scraped": 1, "page": 1, "per_page": 25, "has_more": true, "total_estimate": 234},
    "pagination_token": "eyJwYWdlIjoyfQ"
  },
  "meta": { "creditsUsed": 1, "creditsRemaining": 98419, "billed": true, "reason": "success", "requestId": "req_example", "latencyMs": 2100 }
}

#Errors

StatusTypeWhenBilled
400invalid_requestMalformed body, unknown field, bad URL format, or an invalid pagination_token.No
401invalid_api_keyMissing, malformed, or revoked key.No
402insufficient_creditsBalance can't cover a full page.No
422unprocessable_targetCompany not found, private, deleted, or unreachable. Billed as 1 credit.Yes
429rate_limitedOver the 300 requests/min per-key limit. Honor Retry-After.No
500internal_errorSomething broke on the server side.No
504upstream_timeoutThe live scrape didn't complete in time.No

See the Errors guide for every error type this version can return.