---
title: "Create a candidate"
method: POST
path: "/candidates"
tags: ["Candidates"]
---

# Create a candidate

`POST /candidates`

As with all POST endpoints, a location header will be returned with a url to the newly created resource.

## Query parameters

- `check_duplicate` boolean, required

## Request body

- object
  - `first_name` string, required
  - `middle_name` string
  - `last_name` string, required
  - `title` string — The candidate's job title.
  - `emails` unknown[] — An array of email objects. Each email object should contain two keys: `email` and `is_primary`, as described [here](#candidates-create-an-email) ``` [ { "email": <email>, "is_primary": "<is this the primary email?>" } ] ```
    - unknown
  - `phones` unknown[] — An array of phone objects. Each phone object should contain three keys: `number`, `extension`, and `type`, as described [here](#candidates-create-a-phone) ``` [ { "number": <phone number with country code>, "extension": "<optional extension>", "type": "<phone number type>", } ] ```
    - unknown
  - `address` object — An object containing the address for the candidate with the following structure: ``` { "street": "<street>", "city": "<city>", "state": "<state>", "postal_code": "<postal code>" } ```
    - `street` string
    - `city` string
    - `state` string
    - `postal_code` string
  - `country_code` string
  - `social_media_urls` unknown[]
    - unknown
  - `website` string
  - `best_time_to_call` string
  - `current_employer` string
  - `date_available` string — The date the candidate is available for an opening.
  - `current_pay` string
  - `desired_pay` string
  - `is_willing_to_relocate` boolean
  - `key_skills` string
  - `notes` string
  - `source` string
  - `owner_id` number — The user id of the record owner
  - `is_active` boolean — A flag indicating if the candidate is active.
  - `is_hot` boolean — A flag indicating if the candidate should be marked as hot. A hot candidate is highlighted in the candidates view.
  - `password` string — The candidate's password if they are "registering". Registered candidate can be authenticated with `/candidates/authorization`.
  - `custom_fields` unknown[] — An array of custom field objects. Each custom field object should contain two keys: `id` and `value`. `id` is the id of a custom field definition, and `value` is the value to be set to that custom field for this candidate. ``` [ { "id": <custom field definition id>, "value": "<custom field value>" } ] ```
    - unknown
  - `work_history` unknown[] — An array of work history objects. Each work history object should conform to the work history objects passed to the normal work history create endpoint ``` [ { "title": "Engineer", "employer": { "linked": false, "name": "<employer name>", "location": { "city": "<employer city>", "state": "<employer state>" } }, "supervisor": { "linked": false, "name": "<supervisor name>", "phone": "<supervisor phone number>" }, "is_verified": true, "is_current": false, "start_date": "asdas", "end_date": "asd", "reason_for_leaving": "foo" } ] ```
    - unknown

## Response `201`

Created

---

[API](https://skmtc.net/catsone/apis/cats-api-v3.md) · [All operations](https://skmtc.net/catsone/apis/cats-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/catsone/cats-api-v3/versions/dedbbade450d/schema)
