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/legacy/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

Enqueue posts

Enqueue LinkedIn profiles and get back only the posts each one published.

POSThttps://api.up2data.ai/api/open-refresh/posts
2 creditsasynchronous

Enqueue LinkedIn profiles and get back only the posts each one published, at a lower rate than a full profiles-activity call. Takes the same body and behaves identically - same normalization, same queue, same callbacks - but returns only the posts list. The callback and queues-list both carry the profile plus that single list; the other two lists are absent from the payload rather than empty, and partial carries only the flag for the list you asked for.

Warning

Ensure you have sufficient credits before making requests - see the credit pill above.

Info

The callback envelope's type is "ActivityPosts", and its result holds the profile plus a posts array - the same post shape as the Activity record.

#Request

FieldTypeNotes
profilesrequiredstring[]LinkedIn profile URLs or bare slugs.
namestringOptional.
prioritynumberOptional, 1 = High, 2 = Normal, 3 = Low, defaults to 2.
webhookTagsstring[]Optional, defaults to every webhook on the team. Send [] to switch callbacks off - see the Webhooks guide.

#Call it

cURL
curl -X POST "https://api.up2data.ai/api/open-refresh/posts" \
  -H "Authorization: YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Q1 Leads Posts",
  "profiles": [
    "https://www.linkedin.com/in/johndoe",
    "https://www.linkedin.com/in/janedoe",
    "johndoe123"
  ],
  "priority": 2
}'

#Response

200 - Success
{
  "message": "3 activity posts items have been enqueued (6 credits).",
  "queueId": "507f1f77bcf86cd799439011",
  "enqueued": 3,
  "skipped": {
    "invalid": 0,
    "duplicates": 0
  },
  "webhooks": [
    {
      "_id": "6512c1a4f1b2c3d4e5f60789",
      "name": "Production",
      "url": "https://api.example.com/hooks/up2data"
    }
  ]
}
400 - Error
{
  "message": "No valid profiles to enqueue: of 4 submitted, 1 were invalid and 3 were duplicates."
}

#Webhook payload

Callback item
{
  "queueId": "507f1f77bcf86cd799439011",
  "name": "Q1 Leads Posts",
  "url": "https://www.linkedin.com/in/johndoe",
  "type": "ActivityPosts",
  "status": 200,
  "_id": "8f14e45fceea167a5a36dedd4bea2545",
  "result": { ... }
}

#Errors

StatusTypeWhen
400No valid profiles to enqueueEvery entry in profiles was invalid or a duplicate after normalization, so no queue was created.
400No webhook matches webhookTagsOne or more webhookTags do not match any webhook on the team.

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