---
title: "Get candidate"
method: GET
path: "/candidates/{id}"
tags: ["Candidates"]
---

# Get candidate

`GET /candidates/{id}`

## Request

- Base URL: `https://api.100hires.com/v2`
- URL: `https://api.100hires.com/v2/candidates/{id}`
- Auth: HTTP bearer

Returns full candidate data including application summaries.

## Path parameters

- `id` string, required

## Response `200`

Candidate

- Candidate
  - `id` integer, required: Unique identifier
  - `alias` string, nullable: Short alphanumeric alias used in profile URLs. Use this to build candidate profile links — `https://app.100hires.com/candidate/{alias}`. Also accepted as `{id}` in API requests.
  - `url_backoffice` string, uri: Absolute backoffice URL of the candidate in the 100Hires recruiter app. Use to render deep-links in agent UIs.
  - `company_id` integer, required: ID of the company this candidate belongs to
  - `first_name` string, nullable: Candidate's first name
  - `last_name` string, nullable: Candidate's last name
  - `emails` string[], nullable: List of candidate email addresses
  - `phones` string[], nullable: List of candidate phone numbers
  - `source` IdName
    - `id` integer, required: Unique identifier.
    - `name` string, required: Display name.
  - `origin` IdName
    - `id` integer, required: Unique identifier.
    - `name` string, required: Display name.
  - `profile` ProfileAnswer[]: Candidate profile field answers (application form responses). Present only when `view=full` (default); omitted entirely when `view=summary` to keep list responses inside the agent context budget — a single candidate can carry dozens of free-form answers.
    - `question_id` integer, required: Question ID.
    - `question_text` string, required: Question label.
    - `value` unknown, required
  - `ip` string, nullable: IP address from which the candidate applied
  - `applications` CandidateApplicationSummary[]: Summary of all applications this candidate has across jobs
    - `id` integer, required: Application ID.
    - `job` object, required: Job summary (id, title, status).
      - `id` integer, required
      - `title` string, required
    - `stage` IdName
      - `id` integer, required: Unique identifier.
      - `name` string, required: Display name.
  - `created_at` integer, required: Unix timestamp (seconds)
  - `updated_at` integer, required: Unix timestamp (seconds)
  - `last_message_at` integer, nullable: Unix timestamp (seconds) of the most recent message (email or SMS) sent to or received from this candidate. Null if no messages exist.
  - `days_since_last_message` integer, nullable: Number of whole days since the last message. Computed at request time. Null if no messages exist.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Too many requests

---

[API](https://skmtc.dev/100hires/apis/100hires-api.md) · [All operations](https://skmtc.dev/100hires/apis/100hires-api/llms.txt) · [OpenAPI document](https://skmtc.dev/100hires/apis/100hires-api/revisions/e63e2d3115f7?raw)
