---
title: "Create Candidate"
method: POST
path: "/api/ats/v1/candidates"
tags: ["Candidate"]
---

# Create Candidate

`POST /api/ats/v1/candidates`

Creates a Candidate object with the given values.

## Headers

- `x-connector-token` string, required

## Request body

- union
  - CreateCandidate
    - `data` PostCandidate, required
      - `first_name` string, nullable — The candidate's first name.
      - `last_name` string, nullable — The candidate's last name.
      - `company` string, nullable — The name of the company where candidate has applied.
      - `title` string, nullable — The position for which the candidate has applied
      - `is_private` boolean, nullable — Whether the candidate's information is private.
      - `can_email` boolean, nullable — Whether the candidate can be emailed.
      - `locations` string[], nullable — The location of the candidate.
      - `phone_numbers` string[], nullable — The candidate's phone numbers.
      - `email_addresses` string[], nullable — The candidate's email addresses.
      - `urls` AtsUrl[], nullable — The candidate's URLs. This can include a personal website, LinkedIn profile, or other relevant URLs.
        - `value` string, nullable, required — The site's url.
        - `url_type` 'PERSONAL' | 'COMPANY' | 'PORTFOLIO' | 'BLOG' | 'SOCIAL_MEDIA' | 'OTHER' | 'JOB_POSTING' | '-', nullable, required — The type of site. If the value is not one of the defined enum values, the original value passed through will be returned.
      - `tags` string[], nullable — The candidate's tags. Tags are used to categorize candidates and can be used to filter candidates in the UI.
      - `applications` string[], nullable — The candidate's applications.
      - `attachments` string[], nullable — The candidate's attachments.
      - `avatar` string, nullable — The candidate's avatar.
      - `job_interview_stage_id` string, uuid, nullable — The job stage id for the candidate
      - `job_id` string, uuid, nullable — The job id for the candidate
    - `remote_user_id` string — The remote user's id
    - `job_requisition_id` string — The job requisition id in external ATS
  - AtsCandidateWrite
    - `additional_attributes` object, nullable — Specific fields required by the chosen HRIS
    - `custom_fields` object, nullable — The custom fields related to the model
    - `first_name` string, nullable — The candidate's first name.
    - `last_name` string, nullable — The candidate's last name.
    - `company` string, nullable — The name of the company where candidate has applied.
    - `title` string, nullable — The position for which the candidate has applied
    - `last_interaction_at` string, nullable — The date of the last interaction with the candidate.
    - `is_private` boolean, nullable — Whether the candidate's information is private.
    - `can_email` boolean, nullable — Whether the candidate can be emailed.
    - `locations` string[], nullable — The location of the candidate.
    - `phone_numbers` string[], nullable — The candidate's phone numbers.
    - `email_addresses` string[], nullable — The candidate's email addresses.
    - `urls` AtsUrl[], nullable — The candidate's URLs. This can include a personal website, LinkedIn profile, or other relevant URLs.
      - `value` string, nullable, required — The site's url.
      - `url_type` 'PERSONAL' | 'COMPANY' | 'PORTFOLIO' | 'BLOG' | 'SOCIAL_MEDIA' | 'OTHER' | 'JOB_POSTING' | '-', nullable, required — The type of site. If the value is not one of the defined enum values, the original value passed through will be returned.
    - `tags` string[], nullable — The candidate's tags. Tags are used to categorize candidates and can be used to filter candidates in the UI.
    - `applications` unknown[], nullable — The candidate's applications.
      - unknown
    - `attachments` AtsAttachmentWrite[], nullable — Please share the details like this, AtsAttachmentWrite model fields are shared in model_fields key
      - `file_name` string, nullable — The name of the file attached.
      - `file_url` string, uri, nullable — The URL where the file is stored and can be retrieved.
      - `attachment_type` 'RESUME' | 'COVER_LETTER' | 'OFFER_LETTER' | 'OTHER' | '-', nullable — The type of attachment. If the value is not one of the defined enum values, the original value passed through will be returned.
      - `file_content` string, nullable — File in base64 format
      - `content_type` string, nullable — The MIME type of the file (e.g., 'application/pdf', 'image/png').
      - `candidate` string, uuid, nullable — The candidate to whom the attachment belongs.
      - `remote_user_id` string, uuid, nullable — The id of user using the integration
    - `remote_created_at` string, nullable — When the third party's candidate was created.
    - `remote_updated_at` string, nullable — When the third party's candidate was last updated.
    - `avatar` string, nullable — The candidate's avatar.
    - `job` string, uuid, nullable — The job id for the candidate

## Response `200`

Successful Response

- unknown

## Other responses

- `401` — Missing or invalid bearer authentication credentials.
- `403` — The credentials are valid but do not permit access to this resource, e.g. a connector token used on a different API category or a model whose writes are disabled.
- `422` — Validation Error
- `429` — Rate limit exceeded.

---

[API](https://skmtc.net/bindbee/apis/bindbee-apis.md) · [All operations](https://skmtc.net/bindbee/apis/bindbee-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bindbee/bindbee-apis/revisions/7da10dc93a21/schema)
