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 incremental batch result entries

Read a batch job's result entries as an incremental, cursor-paged feed.

GEThttps://api.up2data.ai/v1/batch/{job_id}/results
Freesynchronous

A cursor page of immutable, first-seen result entries; free, and safe to poll while the job is still processing. Pass the previous response's next_cursor back as cursor until has_more is false. job_id is a path parameter; cursor and limit are query parameters on the same request. Every entry carries the operation that produced it (e.g. enrich.profile, profiles.activity, search.jobs) and input, echoing what you submitted for it - the url string when the item was identified by url, or its request body otherwise.

#Request

FieldTypeNotes
job_idrequiredstringPath parameter. The job_id returned by POST /batch.
cursorstringQuery parameter. Opaque delivery_seq cursor from a prior response. Omit for the first page.
limitintegerQuery parameter. 1 to 1,000, default 100.

#Call it

cURL
curl -X GET "https://api.up2data.ai/v1/batch/job_7hd92kfa/results?cursor=eyJkZWxpdmVyeV9zZXEiOjJ9&limit=100" \
  -H "X-API-Key: YOUR_API_KEY"

#Response

200
{
  "data": {
    "job_id": "job_7hd92kfa",
    "status": "processing",
    "results_available": 3,
    "entries": [
      { "delivery_seq": 3, "item_index": 2, "entry_key": "https://linkedin.com/in/c", "operation": "enrich.profile", "input": "https://linkedin.com/in/c", "data": { "full_name": "Sam Example", "headline": "VP Sales at Example Corp", "url": "https://linkedin.com/in/c" }, "final_rank": 2 }
    ],
    "next_cursor": "eyJkZWxpdmVyeV9zZXEiOjN9",
    "has_more": true,
    "recommended_poll_ms": 2000
  },
  "meta": { "creditsUsed": 0, "creditsRemaining": 421032, "billed": false, "reason": "poll", "requestId": "req_example" }
}

#Errors

StatusTypeWhenBilled
400invalid_requestA malformed cursor, or limit out of the 1 to 1,000 range.No
401invalid_api_keyMissing, malformed, or revoked key.No
404not_foundNo job with this job_id.No
429rate_limitedOver the 300 requests/min limit. Honor Retry-After.No
500internal_errorSomething broke on the server side.No

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