# Professional Profile

## Use case

Retrieve a person’s work history, education, and current role from their profile URL.

## Endpoint

```http
POST https://api-public.clodo.ai/api/public/v1/enrich/professional-profile/
```

Send your API key in the `x-api-key` header. See [Authentication](https://docs.clodo.ai/api-reference/authentication).

## Pricing

See [Credits & Pricing](https://docs.clodo.ai/guides/credits-and-pricing) for credit costs and charging behavior.

## Errors

For error responses and retry guidance, see [Handling Errors](https://docs.clodo.ai/api-reference/errors).

`POST /api/public/v1/enrich/professional-profile/` — sync. 2 credits per call.

Fetch a structured profile snapshot for a LinkedIn URL.

## Request

| Field | Type | Required | Notes |
|---|---|---|---|
| `professional_url` | string | yes | LinkedIn URL. `/in/<slug>` shape. |

## Response

```json
{
  "first_name": "Satya",
  "last_name": "Nadella",
  "full_name": "Satya Nadella",
  "headline": "Chairman and CEO at Microsoft",
  "location": {
    "city": "Redmond, Washington",
    "country": "United States",
    "country_code": "us"
  },
  "current_position": {
    "title": "Chairman and CEO",
    "company_name": "Microsoft",
    "company_industry": "Computer Software"
  },
  "experience": [
    {
      "title": "Chairman and CEO",
      "company_name": "Microsoft",
      "start": "2014-02",
      "end": null
    }
  ],
  "education": [
    {
      "school_name": "University of Wisconsin-Milwaukee",
      "degree": "Master’s Degree",
      "field_of_study": "Computer Science",
      "start": null,
      "end": null
    }
  ]
}
```

Field shapes:

- `location`: `{city, country, country_code}`. Any sub-field may be `null`.
- `current_position`: `{title, company_name, company_industry}`, or `null` when the profile has no current position.
- `experience[]`: `{title, company_name, start, end}`. `start` and `end` are `YYYY-MM` strings or `null`.
- `education[]`: `{school_name, degree, field_of_study, start, end}`. Same date format.

Any string field may be `null` when the source profile lacks it.

## Status mapping

| Outcome | HTTP | Charged |
|---|---|---|
| Profile found | `200 OK` | 2 credits |
| No profile found | `404 not_found` | 2 credits |
| Invalid URL | `400 invalid_request` | 0 |
| Upstream failure | `502 upstream_error` | 0 |

## Example

```bash
curl -X POST https://api-public.clodo.ai/api/public/v1/enrich/professional-profile/ \
  -H "x-api-key: ck_live_..." \
  -H "Content-Type: application/json" \
  -d '{"professional_url": "https://www.linkedin.com/in/patrickcollison/"}'
```

## Rate limit

| Limit | Value |
|---|---|
| Sustained rate | 18 requests / minute |
| Burst | 3 requests |

Exceeding any returns `429`.

## See also

- [Authentication](https://docs.clodo.ai/api-reference/authentication)
- [Error Envelope](https://docs.clodo.ai/api-reference/errors)
- [Credit Semantics](https://docs.clodo.ai/guides/credits-and-pricing)
