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

Quickstart

Authenticate, enqueue a bulk enrichment, then poll for results - the full flow in one example.

Four steps get you from zero to enriched data: create a key, exchange it for a token, call an endpoint, and optionally wire up a webhook so results land on your server without polling.

#Base URL

All requests go to:

bash
https://api.up2data.ai/api

#1. Create an API key

Go to Settings -> Integrations in the dashboard and create a new API key. Keys are long-lived credentials, so copy and store it securely and keep it out of source control.

#2. Get an access token

Exchange the key for a JWT access token with POST /api-auth/authenticate. The token is valid for 24 hours. See the Authentication guide for the full exchange.

#3. Make requests

Send the token in the Authorization header on every subsequent call. Most endpoints enqueue work and hand you a queueId; two of them enrich a single profile or company synchronously instead. See Queues and polling for reading queued results back.

#4. Set up webhooks (optional)

Configure a webhook in Settings -> Integrations to have results pushed to your server as soon as they finish, instead of polling /open-refresh/status. See the Webhooks guide.

#Complete flow

bash
# 1. Authenticate and get access token
curl -X POST https://api.up2data.ai/api/api-auth/authenticate \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "your-api-key-here"}'

# Response: {"accessToken": "eyJhbGciOiJIUzI1NiIs..."}

# 2. Enqueue profiles for enrichment
curl -X POST https://api.up2data.ai/api/open-refresh/profiles-bulk \
  -H "Content-Type: application/json" \
  -H "Authorization: eyJhbGciOiJIUzI1NiIs..." \
  -d '{
    "name": "My Enrichment Job",
    "profiles": ["https://linkedin.com/in/johndoe", "https://linkedin.com/in/janedoe"],
    "priority": 2
  }'

# Response: {"message": "2 items have been enqueued.", "queueId": "..."}

# 3. Check status
curl -X GET "https://api.up2data.ai/api/open-refresh/status?queueId=..." \
  -H "Authorization: eyJhbGciOiJIUzI1NiIs..."
Info

Every request that enqueues profiles or companies is billed by the item that survives normalization, not by the item you sent, except the Search API, which reserves against each link's limit and refunds unused credits. See the Credits guide for the full rate table.