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

BatchJobResult

A batch job with its accumulated results, as returned by polling GET /batch/{job_id}.

#Fields

FieldTypeNotes
job_idstring
statusstringEnum: processing, completed, failed.
totalinteger
estimated_completionstringISO 8601 timestamp.
succeededinteger
failedinteger
pendinginteger
results_availableinteger
results[].item_indexinteger
results[].statusstring"ok" for a resolved item.
results[].operationstringPresent on every result entry: enrich.profile, enrich.company, enrich.post, search.people.sales_nav, search.companies.sales_nav, or any other batch operation, e.g. profiles.activity, companies.headcount, search.jobs.
results[].typestringprofile, company, or post for enrich items and Sales Navigator search items. Every other operation uses its own row type: activity_post, activity_comment, or activity_reaction (profiles.activity), recommendation, interest, jobs_count, company_post, headcount, job, comment, reaction, repost, or person (search.people.standard) - see the operations table on batch create.
results[].urlstringPresent for enrich items, Sales Navigator search items, and any other operation identified by a plain url field.
results[].inputstring | objectWhat was submitted for this item: the url string when identified by url, or the request body (minus max_results) otherwise.
results[].dataobjectFull entity record matching the corresponding single-entity endpoint shape (Profile, Company, or Post) for enrich items, a { results, pagination } page for a batched search operation, or that operation's own sync response data shape for every other operation.
failures[].item_indexinteger
failures[].operationstring
failures[].typestringprofile, company, or post for enrich items and Sales Navigator search items. Every other operation uses its own row type, e.g. activity_post, comment, jobs_count, job.
failures[].urlstring
failures[].statusstringAn error type. On a profile, company, post, or Sales Navigator search item, unprocessable_target and a retryable error (429, 500, 504) still bill at the item's normal rate - the job was charged in full at submission and these never refund. Every other operation refunds a failed item down to 0, the same as an empty result, once its queue settles.

#Sample

json
{
  "job_id": "job_7hd92kfa",
  "status": "completed",
  "total": 1000,
  "succeeded": 968,
  "failed": 32,
  "results": [
    { "type": "profile", "operation": "enrich.profile", "url": "https://linkedin.com/in/a", "status": "ok", "input": "https://linkedin.com/in/a", "data": { "full_name": "...", "headline": "..." } },
    { "type": "company", "operation": "enrich.company", "url": "https://linkedin.com/company/acme", "status": "ok", "input": "https://linkedin.com/company/acme", "data": { "name": "Acme", "headcount": 512 } }
  ],
  "failures": [
    { "type": "profile", "url": "https://linkedin.com/in/gone", "status": "unprocessable_target" },
    { "type": "company", "url": "https://linkedin.com/company/timed-out", "status": "upstream_timeout" }
  ]
}