Skip to content

Calamari Public API (v1)

API for Calamari, your HR tool

Languages
Servers
https://{tenantName}.calamari.io/api
Operations

Absence Requests API

Operations

Current Shift Status API

Operations
Operations

Shifts and Breaks API

Operations

Timesheet entries API

Operations
Operations
Operations
Operations

x-calamari-is-deprecated
Edit employee.

Request

Edit employee.

Expect error codes:

  1. INVALID_EMPLOYEE - when invalid employee id provided
  2. INVALID_FIRST_NAME - when first name is not provided or is invalid
  3. INVALID_LAST_NAME - when last name is not provided or is invalid
  4. INVALID_EMAIL - when email is not provided or is invalid
  5. INVALID_WORKING_WEEK - when provided working week is invalid
  6. INVALID_ACCEPTANCE_FLOW - when provided acceptance flow is invalid
  7. INVALID_HOLIDAYS_CALENDAR - when provided holidays calendar is invalid
  8. INVALID_SEX - when provided sex is invalid
  9. INVALID_MARTIAL_STATUS - when provided marital status is invalid
  10. INVALID_TEAM - when one of provided teams is invalid
  11. INVALID_POSITION - when one of provided positions is invalid
  12. INVALID_CONTRACT_TYPE - when contract type is invalid
  13. INVALID_PERSONAL_EMAIL - when personal email is invalid
  14. INVALID_DIRECT_MANAGER - when invalid direct manager is provided
Security
basicAuth
Bodyapplication/json
employeestringrequired

Employee e-mail or login

Example: "john.white@mycompany.com"
firstNamestring

Employee first name to update.

Example: "John"
lastNamestring

Employee last name to update.

Example: "Williams"
emailstring

Employee email to update.

Example: "john.williams@domain.com"
workingWeekstring

Working week name or identifier to update.

Example: "Working week name"
approvalFlowstring

Approval flow name or identifier to update.

Example: "Main Approval Flow"
positionstring

Position name or identifier to update.

Example: "Developer"
teamsArray of strings

List of teams names or identifiers to update.

Example: ["Primary team"]
holidaysCalendarstring

Holidays calendar name or identifier to update.

Example: "Primary calendar"
sexstring

Sex

maritalStatusstring

Marital status to update

adminboolean

Is the employee is an admin?

contractTypestring

Contract type name or identifier.

Example: "Full time"
externalNumberstring

External number.

Example: "A27D"
directManagerstring

Direct manager e-mail or login.

Example: "mark.smith@domain.com"
birthDatestring

Birth date to update in ISO format

Example: "2017-02-20"
hireDatestring

Hire date to update in ISO format

Example: "2017-02-20"
businessPhonestring

Business phone to update.

Example: "982027621"
homePhonestring

Home phone to update.

Example: "982027621"
personalEmailstring

Personal email to update. Example:

Example: "john.white@mycompany.com"
addressStreetstring

Address street to update

Example: "New Street"
addressNumberstring

Address building/flat number to update

Example: "2/12"
addressCitystring

Address city to update

Example: "Warsaw"
addressPostalCodestring

Address postal code to update

Example: "28-283"
addressProvinceStatestring

Address province/state to update

Example: "Main province"
addressCountrystring

Address country to update

Example: "Poland"
emergencyContactNamestring

Emergency contact name to update

Example: "Contact name"
emergencyContactRelationshipstring

Emergency contact relationship to update

Example: "Contact relationship"
emergencyContactPhonestring

Emergency contact phone to update

Example: "928196340"
probationEndDatestring

Probation end date to update in ISO format

Example: "2017-02-20"
plannedFiringstring

Planned firing to update in ISO format

Example: "2017-02-20"
seniorityBeforeHireYearsinteger(int32)

Seniority before hire to update- years

seniorityBeforeHireMonthsinteger(int32)

Seniority before hire to update- months

childrenCountinteger(int32)

Number of children to update

youngestChildBirthDatestring

The youngest child birth date to update in ISO format

Example: "2017-02-20"
customNotestring

Custom note to update

Example: "Custom note about employee"
curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/edit' \
  -H 'Content-Type: application/json' \
  -d '{
    "employee": "john.white@mycompany.com",
    "firstName": "John",
    "lastName": "Williams",
    "email": "john.williams@domain.com",
    "workingWeek": "Working week name",
    "approvalFlow": "Main Approval Flow",
    "position": "Developer",
    "teams": [
      "Primary team"
    ],
    "holidaysCalendar": "Primary calendar",
    "sex": "string",
    "maritalStatus": "string",
    "admin": true,
    "contractType": "Full time",
    "externalNumber": "A27D",
    "directManager": "mark.smith@domain.com",
    "birthDate": "2017-02-20",
    "hireDate": "2017-02-20",
    "businessPhone": "982027621",
    "homePhone": "982027621",
    "personalEmail": "john.white@mycompany.com",
    "addressStreet": "New Street",
    "addressNumber": "2/12",
    "addressCity": "Warsaw",
    "addressPostalCode": "28-283",
    "addressProvinceState": "Main province",
    "addressCountry": "Poland",
    "emergencyContactName": "Contact name",
    "emergencyContactRelationship": "Contact relationship",
    "emergencyContactPhone": "928196340",
    "probationEndDate": "2017-02-20",
    "plannedFiring": "2017-02-20",
    "seniorityBeforeHireYears": 0,
    "seniorityBeforeHireMonths": 0,
    "childrenCount": 0,
    "youngestChildBirthDate": "2017-02-20",
    "customNote": "Custom note about employee"
  }'

Responses

successful operation

Bodyapplication/json
idinteger(int64)required

Id of create employee

Response
application/json
{ "id": 0 }

x-calamari-is-deprecated
Create employee.

Request

Create employee.

Expect error codes:

  1. INVALID_FIRST_NAME - when first name is not provided or is invalid
  2. INVALID_LAST_NAME - when last name is not provided or is invalid
  3. INVALID_EMAIL - when email is not provided or is invalid
  4. INVALID_WORKING_WEEK - when working week is not provided or is invalid
  5. INVALID_ACCEPTANCE_FLOW - when acceptance flow is not provided or is invalid
  6. INVALID_HOLIDAYS_CALENDAR - when holidays calendar is not provided or is invalid
  7. INVALID_SEX - when sex is not provided or is invalid
  8. INVALID_MARTIAL_STATUS - when marital status is not provided or is invalid
  9. INVALID_TEAM - when one of provided teams is invalid
  10. INVALID_POSITION - when one of provided positions is invalid
  11. INVALID_CONTRACT_TYPE - when contract type is invalid
  12. INVALID_DIRECT_MANAGER - when invalid direct manager id is provided
  13. LICENCE_MAX_USERS_EXCEEDED - when you reach the maximum number of seats within your subscription
Security
basicAuth
Bodyapplication/json
firstNamestringrequired

Employee first name

Example: "John"
lastNamestringrequired

Employee last name

Example: "Williams"
emailstringrequired

Employee email

Example: "john.white@mycompany.com"
workingWeekstringrequired

Working week name or identifier

Example: "Working week name"
approvalFlowstringrequired

Approval flow name or identifier

Example: "Flow name"
positionstring

Position name or identifier.

Example: "Developer"
teamsArray of strings

List of teams names or identifiers. Example: [Developers Team]

Example: ["Developers Team"]
holidaysCalendarstringrequired

Holidays calendar name or identifier

Example: "Primary calendar"
sexstringrequired

Sex

Enum"MALE""FEMALE""OTHER""NOT_SET"
maritalStatusstringrequired

Martial status

Enum"SINGLE""MARRIED""WIDOWED""SEPARATED""DIVORCED""DOMESTIC_PARTNERSHIP""COMMON_LAW""OTHER""NOT_SET"
adminbooleanrequired

Is the employee is an admin?

contractTypestring

Contract type name or identifier

Example: "Contract type"
externalNumberstring

External number

Example: "A12Y"
directManagerstring

Direct manager e-mail or login

Example: "john.white@mycompany.com"
birthDatestring(date)

Birth date in ISO format

Example: "2017-02-20"
hireDatestring(date)

Hire date in ISO format

Example: "2017-02-20"
businessPhonestring

Business phone

Example: "876234928"
homePhonestring

Home phone

Example: "283018271"
personalEmailstring

Personal email

Example: "john.white@mycompany.com"
addressStreetstring

Address street

Example: "Buckfast Street"
addressNumberstring

Address building/flat number

Example: "2/20"
addressCitystring

Address city

Example: "Warsaw"
addressPostalCodestring

Address postal code

Example: "12-333"
addressProvinceStatestring

Address province/state

Example: "Main Province"
addressCountrystring

Address country

Example: "Poland"
emergencyContactNamestring

Emergency contact name

Example: "Contact name"
emergencyContactRelationshipstring

Emergency contact relationship

Example: "Contact relationship"
emergencyContactPhonestring

Emergency contact phone

Example: "198263098"
probationEndDatestring(date)

Probation end date in ISO format

Example: "2017-02-20"
plannedFiringstring(date)

Planned firing in ISO format

Example: "2017-02-20"
seniorityBeforeHireYearsinteger(int32)

Seniority before hire - years

seniorityBeforeHireMonthsinteger(int32)

Seniority before hire - months

childrenCountinteger(int32)

Number of children

youngestChildBirthDatestring(date)

The youngest child birth date in ISO format

Example: "2017-02-20"
customNotestring

Custom note

Example: "Optional custom note about employee"
curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/create' \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName": "John",
    "lastName": "Williams",
    "email": "john.white@mycompany.com",
    "workingWeek": "Working week name",
    "approvalFlow": "Flow name",
    "position": "Developer",
    "teams": [
      "Developers Team"
    ],
    "holidaysCalendar": "Primary calendar",
    "sex": "MALE",
    "maritalStatus": "SINGLE",
    "admin": true,
    "contractType": "Contract type",
    "externalNumber": "A12Y",
    "directManager": "john.white@mycompany.com",
    "birthDate": "2017-02-20",
    "hireDate": "2017-02-20",
    "businessPhone": "876234928",
    "homePhone": "283018271",
    "personalEmail": "john.white@mycompany.com",
    "addressStreet": "Buckfast Street",
    "addressNumber": "2/20",
    "addressCity": "Warsaw",
    "addressPostalCode": "12-333",
    "addressProvinceState": "Main Province",
    "addressCountry": "Poland",
    "emergencyContactName": "Contact name",
    "emergencyContactRelationship": "Contact relationship",
    "emergencyContactPhone": "198263098",
    "probationEndDate": "2017-02-20",
    "plannedFiring": "2017-02-20",
    "seniorityBeforeHireYears": 0,
    "seniorityBeforeHireMonths": 0,
    "childrenCount": 0,
    "youngestChildBirthDate": "2017-02-20",
    "customNote": "Optional custom note about employee"
  }'

Responses

successful operation

Bodyapplication/json
idinteger(int64)required

Id of create employee

Response
application/json
{ "id": 0 }

x-calamari-is-deprecated
Get all non archived employees.

Request

If you want to find archived employees, please use search method.

Security
basicAuth
Bodyapplication/json
pageinteger(int32)

Page number

Example: 0
curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/list' \
  -H 'Content-Type: application/json' \
  -d '{
    "page": 0
  }'

Responses

successful operation

Bodyapplication/json
employeesArray of objects(EmployeeFullOut)required

List of employees

employees[].​idinteger(int64)required

Employee id number

employees[].​firstNamestringrequired

Employee first name

Example: "John"
employees[].​lastNamestringrequired

Employee last name

Example: "Smith"
employees[].​emailstringrequired

Employee email

Example: "john.smith@domain.com"
employees[].​externalNumberstringrequired

External employee number

Example: "AYU23"
employees[].​workingWeekobject(SimpleWorkingWeek)required

Working week

employees[].​workingWeek.​idinteger(int64)required

Working week id

employees[].​workingWeek.​namestringrequired

Working week name

Example: "Full time"
employees[].​approvalFlowobject(SimpleAcceptanceFlow)required

Approval flow

employees[].​approvalFlow.​idinteger(int64)required

Approval flow id

employees[].​approvalFlow.​namestringrequired

Approval flow name

Example: "Default Approval Flow"
employees[].​positionobject(SimplePosition)required

Position

employees[].​position.​idinteger(int64)required

Position id

employees[].​position.​namestringrequired

Position name

Example: "Developer"
employees[].​teamsArray of objects(SimpleTeam)required

Teams

employees[].​teams[].​idinteger(int64)required

Team id

employees[].​teams[].​namestringrequired

Team name

Example: "Main Team"
employees[].​adminbooleanrequired

Is the employee is an admin?

employees[].​contractTypeobject(SimpleContractType)required

Contract type

employees[].​contractType.​idinteger(int64)required

Contract type id

employees[].​contractType.​namestringrequired

Contract type name

Example: "Contract type"
employees[].​languagestringrequired

Employee language

Example: "EN"
employees[].​timezonestringrequired

Employee timezone

Example: "Europe/Warsaw"
employees[].​directManagerobject(SimpleEmployee)required

Employee direct manager

employees[].​directManager.​idinteger(int64)required

Employee id

employees[].​directManager.​emailstringrequired

Employee email

Example: "john.white@domain.com"
employees[].​birthDatestring(date)required

Birth date

Example: "2017-02-20"
employees[].​hireDatestring(date)required

Hire date

Example: "2017-02-20"
employees[].​businessPhonestringrequired

Business phone

Example: "827032162"
employees[].​homePhonestringrequired

Home phone

Example: "826021237"
employees[].​personalEmailstringrequired

Personal email

Example: "john.smith@personalDomain.com"
employees[].​addressStreetstringrequired

Address street

Example: "Small Street"
employees[].​addressNumberstringrequired

Address building/flat number

Example: "2/12"
employees[].​addressCitystringrequired

Address city

Example: "Warsaw"
employees[].​addressPostalCodestringrequired

Address postal code

Example: "15-322"
employees[].​addressProvinceStatestringrequired

Address province/state.

Example: "Main province"
employees[].​addressCountrystringrequired

Address country

Example: "Poland"
employees[].​emergencyContactNamestringrequired

Emergency contact name

Example: "Contact name"
employees[].​emergencyContactRelationshipstringrequired

Emergency contact relationship

Example: "Contact relationship"
employees[].​emergencyContactPhonestringrequired

Emergency contact phone

Example: "820321876"
employees[].​holidaysCalendarobject(GetHolidayCalendarOut)required

Emergency contact name

employees[].​holidaysCalendar.​idinteger(int64)required

Holiday calendar id

employees[].​holidaysCalendar.​namestringrequired

Holiday calendar name

Example: "Primary calendar"
employees[].​maritalStatusstringrequired

Martial status

Enum"SINGLE""MARRIED""WIDOWED""SEPARATED""DIVORCED""DOMESTIC_PARTNERSHIP""COMMON_LAW""OTHER""NOT_SET"
employees[].​probationEndDatestring(date)required

Probation end date

Example: "2017-02-20"
employees[].​plannedFiringstring(date)required

Planned firing

Example: "2017-02-20"
employees[].​seniorityBeforeHireYearsinteger(int32)required

Seniority before hire - years

employees[].​seniorityBeforeHireMonthsinteger(int32)required

Seniority before hire - months

employees[].​childrenCountinteger(int32)required

Number of children

employees[].​youngestChildBirthDatestring(date)required

The youngest child birth date

Example: "2017-02-20"
employees[].​customNotestringrequired

Custom note

Example: "Optional custom note"
employees[].​sexstringrequired

Sex

Enum"MALE""FEMALE""OTHER""NOT_SET"
employees[].​archivedbooleanrequired

Is employee archived?

currentPageinteger(int32)required

Current page

totalPagesinteger(int32)required

Total pages

Response
application/json
{ "employees": [ {} ], "currentPage": 0, "totalPages": 0 }

x-calamari-is-deprecated
Invite employee.

Request

Invite employee.

Security
basicAuth
Bodyapplication/json
employeestringrequired

Employee e-mail or login

Example: "john.white@mycompany.com"
curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/invite' \
  -H 'Content-Type: application/json' \
  -d '{
    "employee": "john.white@mycompany.com"
  }'

Responses

Invited successfully.

Response
No content

x-calamari-is-deprecated
Mark employee as archived.

Request

Mark employee as archived.

Security
basicAuth
Bodyapplication/json
employeestringrequired

Employee e-mail or login

Example: "john.white@mycompany.com"
curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/archive' \
  -H 'Content-Type: application/json' \
  -d '{
    "employee": "john.white@mycompany.com"
  }'

Responses

Successfully marked as archived.

Response
No content

x-calamari-is-deprecated
Get all employees.

Request

Get all employees.

Security
basicAuth
Bodyapplication/json
employeestring

Employee identifier. You can use e-mail or external identifier in format (externalNumber:ABC123)

Example: "john.white@mycompany.com"
contractTypesArray of strings

List of contract types names or identifiers to search. As a result there will be employees who have one of selected contract types assigned. Example: ["Employment Contract", "B2B"]

Example: ["Employment Contract"]
positionsArray of strings

List of positions names or identifiers to search. As a result there will be employees who have one of provided positions. Example: ["Developer", "Support", "Architect"]

Example: ["Developer"]
teamsArray of strings

List of teams names or identifiers to search. As a result the result will contain employees who are members of at least one of provided teams. Example: ["First Team", "Second Team", "Third Team"]

Example: ["First Team"]
withArchivedboolean

Should return also archived employees?

curl -i -X POST \
  -u <username>:<password> \
  'https://{tenantname}.calamari.io/api/employees/v1/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "employee": "john.white@mycompany.com",
    "contractTypes": [
      "Employment Contract"
    ],
    "positions": [
      "Developer"
    ],
    "teams": [
      "First Team"
    ],
    "withArchived": true
  }'

Responses

successful operation

Response
No content
Operations
Operations
Operations

Endpoints related to managing people records.

Operations