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

Authentication

Exchange an API key for a JWT access token and use it on every request.

The API uses a two-step process: an API key proves who you are once, and a short-lived JWT token proves it on every request after that.

Info

API keys are long-lived credentials and should be stored securely. JWT tokens expire after 24 hours and need to be refreshed.

#Creating an API key

  1. Log in to the dashboard
  2. Navigate to Settings from the sidebar
  3. Click on Integrations
  4. Click Create API Key
  5. Enter a name for your key (for example, "Production API Key")
  6. Copy and securely store the generated key

#Exchanging the key for a token

POST /api-auth/authenticate is the only endpoint that does not require the Authorization header. It exchanges an API key for a JWT access token valid for 24 hours.

json
{
  "apiKey": "string"
}
bash
curl -X POST https://api.up2data.ai/api/api-auth/authenticate \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "your-api-key-here"}'

A successful exchange returns the token:

json
{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

An invalid key returns 401:

json
{
  "error": "Not authorized"
}

#Using the access token

Every other endpoint requires the token in the Authorization header:

bash
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Warning

Tokens expire after 24 hours and need to be refreshed; re-run the exchange with your API key to get a new one.