# Enrich a profile

Turn any LinkedIn profile URL into a full live record, scraped at request time.

**POST** `https://api.up2data.ai/v1/profiles/enrich`

**Credits:** 1 credit - 4 with followers/connections or full skills (not stacking) - **Mode:** synchronous

Pure LinkedIn profile scraping, with no email finding or third-party blending. Typical latency is 2 to 8 seconds. Identify the profile with `url` or `urn`; provide exactly one. Restricting the response with `fields` does not reduce the cost.

> **Info:** Listing `followers_count` or `connections_count` in `fields` opts into the same extra scrape as `with_followers_and_connections`. Listing `skill_endorsements` opts into the same full-skills scrape as `with_full_skills_and_endorsements`.

> **Info:** Send many as batch items at 1 credit each. See the [batch endpoint](https://up2data.ai/docs/v1/api/batch-create/).

## Request

| Field | Type | Notes |
|---|---|---|
| `url` | `string` | Public profile URL or public identifier. Provide url or urn. |
| `urn` | `string` | LinkedIn member URN, if already known. Provide url or urn. |
| `fields` | `string[]` | Restrict the response to these top-level fields. Same cost. |
| `with_followers_and_connections` | `boolean` | Default false. Adds followers_count/connections_count via a second LinkedIn request. Raises the rate to 4 credits (does not stack with the other option); extra latency. |
| `with_full_skills_and_endorsements` | `boolean` | Default false. Returns every skill (up to 50) plus skill_endorsements, instead of the first 20 skills. Raises the rate to 4 credits (does not stack with the other option); extra latency. |

## Call it

**cURL**

```bash
curl -X POST "https://api.up2data.ai/v1/profiles/enrich" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://www.linkedin.com/in/satyanadella",
  "with_followers_and_connections": true,
  "with_full_skills_and_endorsements": true
}'
```

**Python**

```python
import requests

url = "https://api.up2data.ai/v1/profiles/enrich"
headers = {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "url": "https://www.linkedin.com/in/satyanadella",
    "with_followers_and_connections": True,
    "with_full_skills_and_endorsements": True
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
```

**Node**

```javascript
const url = "https://api.up2data.ai/v1/profiles/enrich";
const headers = {
  "X-API-Key": "YOUR_API_KEY",
  "Content-Type": "application/json",
};
const body = {
  "url": "https://www.linkedin.com/in/satyanadella",
  "with_followers_and_connections": true,
  "with_full_skills_and_endorsements": true
};

const response = await fetch(url, {
  method: "POST",
  headers,
  body: JSON.stringify(body),
});
const data = await response.json();
console.log(data);
```

**Go**

```go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.up2data.ai/v1/profiles/enrich"
	body := bytes.NewBufferString(`{
  "url": "https://www.linkedin.com/in/satyanadella",
  "with_followers_and_connections": true,
  "with_full_skills_and_endorsements": true
}`)
	req, err := http.NewRequest("POST", url, body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", "YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	respBody, _ := io.ReadAll(resp.Body)
	fmt.Println(string(respBody))
}
```

## Response

**200**

```json
{
  "data": {
    "url": "https://www.linkedin.com/in/satyanadella",
    "full_name": "Satya Nadella",
    "first_name": "Satya",
    "last_name": "Nadella",
    "public_identifier": "satyanadella",
    "headline": "Chairman and CEO at Microsoft",
    "location": {
      "city": "Redmond",
      "region": "Washington",
      "country": "United States",
      "raw": "Redmond, Washington, United States"
    },
    "about": "Empowering every person and every organization on the planet to achieve more.",
    "urn": "urn:li:member:19186432",
    "linkedin_id": "19186432",
    "profile_urn": "urn:li:fsd_profile:ACoAAAEyX8gBmX0wjgGmBhKd8rC5WYkYlKk",
    "positions": [
      {
        "title": "Chairman and CEO",
        "company": "Microsoft",
        "company_url": "https://www.linkedin.com/company/microsoft",
        "linkedin_id": "1035",
        "position_id": "urn:li:fsd_profilePosition:(ACoAAAEyX8gBmX0wjgGmBhKd8rC5WYkYlKk,2227646598)",
        "started_at": "2014-02",
        "ended_at": null,
        "description": "CEO since 2014; Chairman since 2021.",
        "skills": [
          "Cloud Computing",
          "Leadership"
        ],
        "company_industry": "Software Development",
        "company_headcount": "10001+",
        "company_logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_200_200/0/microsoft"
      },
      {
        "title": "Executive Vice President, Cloud and Enterprise",
        "company": "Microsoft",
        "company_url": "https://www.linkedin.com/company/microsoft",
        "linkedin_id": "1035",
        "position_id": "urn:li:fsd_profilePosition:(ACoAAAEyX8gBmX0wjgGmBhKd8rC5WYkYlKk,1841102234)",
        "started_at": "2011-02",
        "ended_at": "2014-02",
        "description": "Led the transformation to cloud and the launch of Azure.",
        "skills": [
          "Cloud Computing",
          "Enterprise Software"
        ],
        "company_industry": "Software Development",
        "company_headcount": "10001+",
        "company_logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_200_200/0/microsoft"
      }
    ],
    "current_company": {
      "name": "Microsoft",
      "url": "https://www.linkedin.com/company/microsoft",
      "linkedin_id": "1035",
      "title": "Chairman and CEO",
      "started_at": "2014-02",
      "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_200_200/0/microsoft",
      "industry": "Software Development",
      "headcount": "10001+"
    },
    "education": [
      {
        "school": "The University of Chicago Booth School of Business",
        "degree": "MBA",
        "field": "Business Administration",
        "activities": "President, High Tech Club",
        "education_id": "urn:li:fsd_profileEducation:(ACoAAAEyX8gBmX0wjgGmBhKd8rC5WYkYlKk,615479904)",
        "school_logo_url": "https://media.licdn.com/dms/image/v2/C4D0BAQExample/company-logo_200_200/0/chicago-booth",
        "started_at": "1994",
        "ended_at": "1996"
      },
      {
        "school": "University of Wisconsin-Milwaukee",
        "degree": "MS",
        "field": "Computer Science",
        "education_id": "urn:li:fsd_profileEducation:(ACoAAAEyX8gBmX0wjgGmBhKd8rC5WYkYlKk,615479905)",
        "school_logo_url": "https://media.licdn.com/dms/image/v2/C4D0BAQExample/company-logo_200_200/0/uwm"
      }
    ],
    "skills": [
      "Cloud Computing",
      "Leadership",
      "Enterprise Software",
      "Artificial Intelligence (AI)",
      "Strategy",
      "Product Management"
    ],
    "languages": [
      "English",
      "Telugu"
    ],
    "certifications": [
      {
        "name": "AWS Certified Cloud Practitioner",
        "authority": "Amazon Web Services (AWS)",
        "issued_at": "2023-04",
        "expires_at": "2026-04",
        "url": "https://www.credly.com/badges/example-aws",
        "linkedin_id": "2382910",
        "license_number": "AWS-CCP-4821937"
      }
    ],
    "is_open_to_work": true,
    "profile_picture_url": "https://media.licdn.com/dms/image/v2/D5603AQExample/profile-displayphoto-shrink_800_800/0/satyanadella",
    "followers_count": 11482930,
    "connections_count": 500,
    "scraped_at": "2026-07-07T14:00:04Z",
    "skill_endorsements": [
      {
        "name": "Cloud Computing",
        "endorsement_count": 312
      },
      {
        "name": "Leadership",
        "endorsement_count": 274
      },
      {
        "name": "Enterprise Software",
        "endorsement_count": 87
      },
      {
        "name": "Artificial Intelligence (AI)",
        "endorsement_count": 64
      },
      {
        "name": "Strategy",
        "endorsement_count": 52
      },
      {
        "name": "Product Management",
        "endorsement_count": 31
      }
    ],
    "publications": [
      {
        "title": "Hit Refresh",
        "publisher": "Harper Business",
        "published_at": "2017-09",
        "url": "https://www.harpercollins.com/products/hit-refresh"
      }
    ],
    "patents": [
      {
        "title": "Distributed resource management in a cloud computing environment",
        "number": "US10127086B2",
        "issued_at": "2018-11"
      }
    ],
    "awards": [
      {
        "title": "Financial Times Person of the Year",
        "issuer": "Financial Times",
        "issued_at": "2019"
      }
    ],
    "interests": [
      "Artificial Intelligence",
      "Climate",
      "Education"
    ],
    "projects": [
      {
        "name": "Microsoft Azure",
        "title": "Cloud platform",
        "description": "Hyperscale cloud for enterprises and developers.",
        "url": "https://azure.microsoft.com",
        "started_at": "2011-02",
        "ended_at": null
      }
    ],
    "recommendations": [
      {
        "text": "Satya is an exceptional leader who sets a high bar for culture and product.",
        "relationship": "Worked with Satya on the same team",
        "created_at": "2021-03-15T00:00:00Z",
        "person": {
          "url": "https://www.linkedin.com/in/example-vp",
          "full_name": "Alex Example",
          "headline": "EVP, Cloud + AI at Microsoft",
          "urn": "ACoAABOPHB8BM6example"
        }
      }
    ],
    "primary_locale": "en_US",
    "is_premium": true,
    "is_verified": true,
    "is_open_profile": false,
    "job_preferences": {
      "titles": [
        "Board Member",
        "Advisor"
      ],
      "locations": [
        "Greater Seattle Area",
        "San Francisco Bay Area"
      ],
      "workplace_types": [
        "hybrid",
        "remote"
      ],
      "start_timing": "flexible"
    }
  },
  "meta": {
    "creditsUsed": 4,
    "creditsRemaining": 98417,
    "billed": true,
    "reason": "profile_found",
    "requestId": "req_8f2ka91x",
    "latencyMs": 5240
  }
}
```

## Errors

| Status | Type | When | Billed |
|---|---|---|---|
| 400 | `invalid_request` | Malformed body, unknown field, or bad URL format. | No |
| 401 | `invalid_api_key` | Missing, malformed, or revoked key. | No |
| 402 | `insufficient_credits` | Balance can't cover the call. | No |
| 422 | `unprocessable_target` | Target not found, private, deleted, or unreachable. | Yes |
| 429 | `rate_limited` | Over the 300 requests/min per-key limit. Honor Retry-After. | No |
| 500 | `internal_error` | Something broke on the server side. | No |
| 504 | `upstream_timeout` | The live scrape didn't complete in time. | No |

See the [Errors guide](https://up2data.ai/docs/v1/guides/errors/) for every error type this version can return.
