> ## Documentation Index
> Fetch the complete documentation index at: https://developers.cutshort.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /candidates/{id}/profile — Full Candidate Profile

> Retrieve a candidate's complete Cutshort profile: work history, education, projects, and verified skills. Contact details require invite acceptance.

The profile endpoint returns a candidate's complete Cutshort profile, including detailed work history, education, projects, skill validations, and salary expectations. Full contact details are included only after the candidate has accepted an invite or your account has profile-view credits.

## Endpoint

```http theme={null}
GET https://api.cutshort.io/v1/candidates/{id}/profile
```

## Path Parameters

<ParamField path="id" type="string" required>
  The candidate's unique Cutshort ID (e.g., `cand_8f3kL9mN`).
</ParamField>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET 'https://api.cutshort.io/v1/candidates/cand_8f3kL9mN/profile' \
    -H 'Authorization: Bearer YOUR_API_KEY'
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.cutshort.io/v1/candidates/cand_8f3kL9mN/profile",
      headers={"Authorization": "Bearer YOUR_API_KEY"}
  )
  data = response.json()
  ```
</CodeGroup>

## Response

Returns `200 OK` with the candidate's complete profile.

```json theme={null}
{
  "id": "cand_8f3kL9mN",
  "name": "Priya Menon",
  "headline": "Senior Python Engineer",
  "location": "Bengaluru",
  "experience_years": 5,
  "quality_score": 82,
  "availability": "active",
  "skills": [
    { "name": "Python", "verified": true, "years": 5 },
    { "name": "FastAPI", "verified": false, "years": 2 },
    { "name": "PostgreSQL", "verified": true, "years": 4 }
  ],
  "experience": [
    {
      "company": "Swiggy",
      "role": "Backend Engineer",
      "from": "2021-06",
      "to": "present",
      "description": "Built real-time order tracking APIs serving 5M daily users"
    }
  ],
  "education": [
    {
      "institution": "IIT Bombay",
      "degree": "B.Tech Computer Science",
      "year": 2019
    }
  ],
  "salary_expectation_min": 2000000,
  "salary_expectation_max": 2800000,
  "profile_url": "https://cutshort.io/candidate/priya-menon"
}
```

### Response Fields

<ResponseField name="id" type="string">
  Unique Cutshort candidate ID.
</ResponseField>

<ResponseField name="name" type="string">
  The candidate's full name.
</ResponseField>

<ResponseField name="headline" type="string">
  The candidate's professional headline or current role title.
</ResponseField>

<ResponseField name="location" type="string">
  The candidate's current city or preferred work location.
</ResponseField>

<ResponseField name="experience_years" type="integer">
  Total years of professional experience.
</ResponseField>

<ResponseField name="quality_score" type="integer">
  AI-generated quality score from 0 to 100.
</ResponseField>

<ResponseField name="availability" type="string">
  The candidate's current job-search status. One of `active`, `open`, or `not_looking`.
</ResponseField>

<ResponseField name="skills" type="array">
  List of skill objects, each containing a skill `name`, a `verified` boolean indicating Cutshort validation, and `years` of experience.
</ResponseField>

<ResponseField name="experience" type="array">
  Chronological list of work history entries. Each entry includes `company`, `role`, `from` date, `to` date (or `"present"`), and a `description`.
</ResponseField>

<ResponseField name="education" type="array">
  List of education records. Each entry includes `institution`, `degree`, and graduation `year`.
</ResponseField>

<ResponseField name="salary_expectation_min" type="integer">
  Minimum expected annual salary in INR.
</ResponseField>

<ResponseField name="salary_expectation_max" type="integer">
  Maximum expected annual salary in INR.
</ResponseField>

<ResponseField name="profile_url" type="string">
  Direct URL to the candidate's Cutshort profile page.
</ResponseField>

<Note>
  The `email` and `phone` fields are only populated after the candidate accepts an outreach invite or you use a profile-view credit from your plan.
</Note>
