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

Enrich a company

Turn any LinkedIn company URL, domain, or ID into live firmographics.

POSThttps://api.up2data.ai/v1/companies/enrich
1 creditsynchronous

Identify the company with one of url, domain, or linkedin_id; provide exactly one. For example, {"domain": "anthropic.com"} (host only, no scheme, no www, no path) resolves the same record as passing the company's LinkedIn URL. Restricting the response with fields does not reduce the cost.

Info

Send many as batch items at 1 credit each. See the batch endpoint.

#Request

FieldTypeNotes
urlstringPublic company URL or slug. Provide url, domain, or linkedin_id.
domainstringCompany website domain, e.g. anthropic.com. Provide url, domain, or linkedin_id.
linkedin_idstringNumeric LinkedIn company ID. Provide url, domain, or linkedin_id.
fieldsstring[]Restrict the response to these top-level fields. Same cost.

#Call it

cURL
curl -X POST "https://api.up2data.ai/v1/companies/enrich" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://linkedin.com/company/anthropic"
}'

#Response

200
{
  "data": {
    "url": "https://www.linkedin.com/company/anthropic",
    "linkedin_id": "74126343",
    "name": "Anthropic",
    "website": "https://anthropic.com",
    "description": "AI safety and research company.",
    "industry": "Research Services",
    "company_type": "Privately Held",
    "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_400_400/0/anthropic",
    "headcount": 2841,
    "headcount_growth_6m": 0.34,
    "company_size": { "min": 1001, "max": 5000 },
    "founded": 2021,
    "hq": {
      "city": "San Francisco",
      "region": "California",
      "country": "US",
      "address": "500 Howard St",
      "postal_code": "94105",
      "latitude": 37.78797,
      "longitude": -122.39653,
      "raw": "US, San Francisco, 500 Howard St, 94105"
    },
    "locations": [{ "city": "San Francisco" }, { "city": "London" }],
    "specialties": ["Artificial Intelligence", "AI Safety"],
    "funding": { "total_usd": 14300000000, "last_round": { "type": "Series F", "amount_usd": 3500000000, "date": "2026-03" } },
    "scraped_at": "2026-07-07T14:00:03Z",
    "followers_count": 1204800
  },
  "meta": { "creditsUsed": 1, "creditsRemaining": 98417, "billed": true, "reason": "company_found", "requestId": "req_4jd83mcy", "latencyMs": 2950 }
}

#Errors

StatusTypeWhenBilled
400invalid_requestMalformed body, unknown field, or bad URL format.No
401invalid_api_keyMissing, malformed, or revoked key.No
402insufficient_creditsBalance can't cover the call.No
422unprocessable_targetTarget not found, private, deleted, or unreachable.Yes
429rate_limitedOver the 300 requests/min per-key limit. Honor Retry-After.No
500internal_errorSomething broke on the server side.No
504upstream_timeoutThe live scrape didn't complete in time.No

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