Skip to content

Create a new person

Request

This endpoint allows you to add a new person to the Calamari. The request must include essential details such as first name, last name, e-mail address, approval process, work schedule, and holidays calendar.

Security
basicAuth
Bodyapplication/jsonrequired
firstNamestring, [ 1 .. 255 ] charactersrequired

Person's first name.

Example:"John"
middleNamestring or null
Any of:

Person's middle name (Core HR module required).

[ 1 .. 255 ] characters
string
lastNamestring, [ 1 .. 255 ] charactersrequired

Person's last name.

Example:"Doe"
emailstring, (email), [ 1 .. 255 ] charactersrequired

Valid email address.

Example:"john.doe@example.com"
approvalProcessstring or integerrequired
Any of:

Approval process name or identifier.

[ 1 .. 255 ] characters
string
workSchedulestring or integerrequired
Any of:

Work schedule name or identifier.

[ 1 .. 255 ] characters
string
holidaysCalendarstring or integerrequired
Any of:

Holidays calendar name or identifier.

[ 1 .. 255 ] characters
string
contractTypestring or null
Any of:

Contract type name or identifier.

[ 1 .. 255 ] characters
string
hireDatestring or null
Any of:

Hire date in ISO 8601 format.

string (date)
birthdatestring or null
Any of:

Birthdate in ISO 8601 format (Core HR module required).

string (date)
sexstring or null(sex-schema)

Person's sex.

Enum:"MALE""FEMALE""OTHER"null
Example:"MALE"
positionstring or integer or null
Any of:

Job position/title name or identifier.

[ 1 .. 255 ] characters
string
teamsArray of any or null
Example:
[ "Accountants", 3 ]
Any of:

List of team names or identifiers the person belongs to.

maritalStatusstring or null(martial-status-schema)

Describes a person's relationship with a significant other.

Enum:"SINGLE""MARRIED""WIDOWED""SEPARATED""DIVORCED""DOMESTIC_PARTNERSHIP""COMMON_LAW""OTHER"null
Example:"MARRIED"
terminationDatestring or null
Any of:

Termination date if applicable (ISO 8601 format).

string (date)
directManagerstring or null
Any of:

Unique e-mail address or UUID of the direct manager.

[ 1 .. 255 ] characters
string (email)
probationEndDatestring or null
Any of:

End date of probation period (ISO 8601 format).

string (date)
externalNumberstring or null
Any of:

External reference number for the person.

[ 1 .. 255 ] characters
string
symfoniaGuidstring or null
Any of:

GUID from Symfonia system (Time Off module required).

string (uuid)
customNotestring or null
Any of:

Custom note or additional information

[ 1 .. 1024 ] characters
string
businessContactobject or null
Any of:

Business contact information (Core HR module required).

personalContactobject or null
Any of:

Personal contact information (Core HR module required).

seniorityBeforeHireinteger or null
Any of:

Seniority in months before the hire date.

<= 1200 characters
integer (int64)
addressobject or null
Any of:

Person's home address (Core HR module required).

emergencyContactobject or null
Any of:

Emergency contact details (Core HR module required).

bankAccountNumberstring or null
Any of:

Person's bank account number (Core HR module required).

[ 1 .. 255 ] characters
string
contractorDetailsobject or null
Any of:

Contractor-related details (Core HR module required).

shirtSizestring or null
Any of:

Shirt size (Core HR module required).

string
Enum:"XS""S""M""L""XL""2XL""3XL""4XL"
childrenArray of objects

List of persons' children (Core HR module required).

customFieldsArray of objects

Custom attributes assigned to the person (Core HR module required). One of text, multiline text, date, single-choice list, multiple choice list, numerical, boolean.

curl -i -X POST \
  -u '<username>:<password>' \
  https://awesome-company.calamari.io/api/people/v2 \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName": "John",
    "middleName": "Paul",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "approvalProcess": "Basic Approval Flow",
    "workSchedule": "Full-time - 40h",
    "holidaysCalendar": "Default",
    "contractType": "B2B",
    "hireDate": "2025-01-15",
    "birthdate": "1990-06-25",
    "sex": "MALE",
    "position": "Senior Accountant",
    "teams": [
      "Accountants",
      3
    ],
    "maritalStatus": "SINGLE",
    "terminationDate": "2026-12-31",
    "directManager": "patricia.kite@example.com",
    "probationEndDate": "2025-07-01",
    "externalNumber": "EMP-98765",
    "symfoniaGuid": "52601c08-b7e5-4c60-a57f-2b1d74942543",
    "customNote": "Works remotely on Fridays.",
    "businessContact": {
      "phone": "+1-555-1234"
    },
    "personalContact": {
      "phone": "+1-555-5678",
      "email": "john.doe.personal@example.com"
    },
    "seniorityBeforeHire": 24,
    "address": {
      "street": "Main Street",
      "number": "123",
      "city": "New York",
      "provinceState": "NY",
      "postalCode": "10001",
      "country": "USA"
    },
    "emergencyContact": {
      "name": "Jane Doe",
      "relationship": "Spouse",
      "phone": "+1-555-9999"
    },
    "bankAccountNumber": "US12345678901234567890",
    "contractorDetails": {
      "taxNumber": "123-45-6789",
      "companyName": "Tech Solutions Inc.",
      "companyAddress": "456 Business St, San Francisco, CA, USA"
    },
    "shirtSize": "M",
    "children": [
      {
        "firstName": "Emily",
        "lastName": "Doe",
        "birthdate": "2015-09-10",
        "sex": "MALE",
        "parent": "Kathryn Doe"
      }
    ],
    "customFields": [
      {
        "name": "a0eae510-1fe5-46d4-a46d-b98a20bb5ae1",
        "value": "English"
      }
    ]
  }'

Responses

Person created successfully.

Bodyapplication/json
idstring, (uuid)required
Example:"2c11e9ec-77d2-49fe-81aa-fab21f7b5aed"
legacyIdintegerrequired
Example:1001
Response
{ "id": "2c11e9ec-77d2-49fe-81aa-fab21f7b5aed", "legacyId": 1001 }