Calamari Public API (v1)
API for Calamari, your HR tool
https://{tenantName}.calamari.io/api/
Comma-separated list of contract type UUIDs used to filter people by contract types.
Comma-separated list of position IDs used to filter people by positions.
Comma-separated list of team IDs used to filter people by team membership.
Filter by archived status. Set to true
to return only archived people, or false
to return only active people.
Defines the projection strategy used for the response.
FULL
(default): returns all available fields.BASIC
: returns a minimal subset of fields.CUSTOM
: returns only the fields specified in thefields
parameter. WhenCUSTOM
is used, thefields
parameter is required.
Note: Regardless of projection type, the response always includes id
, legacyId
and archived
fields.
Comma-separated list of field names to include in the response. Only applicable when projection=CUSTOM
.
Note: Regardless of the list, the fields id
, legacyId
and archived
are always returned.
The maximum number of items to return. Must be greater than or equal to 1. Default is 100.
The number of items to skip before returning the results. Must be greater than or equal to 0. Default is 0.
Sorting criteria in the format field,ASC
or field,DESC
. Can be repeated to apply multi-level sorting.
https://awesome-company.calamari.io/api/people/v2
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://{tenantname}.calamari.io/api/people/v2?contractTypes=41d2e841-7f1f-4545-be09-8a17606f0228%2C31d2e841-7f1f-4545-be09-8a17606f0228&positions=1%2C2%2C3%2C4&teams=1%2C2%2C3%2C7%2C8&archived=true&projection=CUSTOM&fields=firstName%2ClastName%2Cemail&limit=50&offset=10&sort=id%2CDESC%2Cname%2CASC&nullOrdering=NULLS_LAST'
The request was successful. A list of people matching the specified criteria is returned.
List of people returned in the current page.
Unique identifier (UUID format).
The first name of the person.
The first name of the person.
The first name of the person.
The middle name of the person.
The middle name of the person.
The middle name of the person.
The last name of the person.
The last name of the person.
The last name of the person.
Primary business email address.
Primary business email address.
Primary business email address.
System roles assigned to this person.
System roles assigned to this person.
Archiving timestamp in ISO-8601 format.
Archiving timestamp in ISO-8601 format.
Archiving timestamp in ISO-8601 format.
Current position held by the person.
Current position held by the person.
Martial status.
{ "data": [ { … } ], "meta": { "limit": 0, "offset": 0, "total": 0 } }
Person's middle name (Core HR module required).
Person's middle name (Core HR module required).
Person's middle name (Core HR module required).
Valid email address.
Approval process name or identifier.
Approval process name or identifier.
Approval process name or identifier.
Work schedule name or identifier.
Work schedule name or identifier.
Work schedule name or identifier.
Holidays calendar name or identifier.
Holidays calendar name or identifier.
Holidays calendar name or identifier.
Contract type name or identifier.
Contract type name or identifier.
Contract type name or identifier.
Hire date in ISO 8601 format.
Hire date in ISO 8601 format.
Hire date in ISO 8601 format.
Birthdate in ISO 8601 format (Core HR module required).
Birthdate in ISO 8601 format (Core HR module required).
Birthdate in ISO 8601 format (Core HR module required).
Job position/title name or identifier.
Job position/title name or identifier.
Job position/title name or identifier.
List of team names or identifiers the person belongs to.
List of team names or identifiers the person belongs to.
Describes a person's relationship with a significant other.
Termination date if applicable (ISO 8601 format).
Termination date if applicable (ISO 8601 format).
Termination date if applicable (ISO 8601 format).
Unique e-mail address or UUID of the direct manager.
Unique e-mail address or UUID of the direct manager.
Unique e-mail address or UUID of the direct manager.
End date of probation period (ISO 8601 format).
End date of probation period (ISO 8601 format).
End date of probation period (ISO 8601 format).
External reference number for the person.
External reference number for the person.
External reference number for the person.
GUID from Symfonia system (Time Off module required).
GUID from Symfonia system (Time Off module required).
GUID from Symfonia system (Time Off module required).
Custom note or additional information
Custom note or additional information
Custom note or additional information
Business contact information (Core HR module required).
Business contact information (Core HR module required).
Personal contact information (Core HR module required).
Personal contact information (Core HR module required).
Seniority in months before the hire date.
Seniority in months before the hire date.
Seniority in months before the hire date.
Person's home address (Core HR module required).
Person's home address (Core HR module required).
Emergency contact details (Core HR module required).
Emergency contact details (Core HR module required).
Person's bank account number (Core HR module required).
Person's bank account number (Core HR module required).
Person's bank account number (Core HR module required).
Contractor-related details (Core HR module required).
Contractor-related details (Core HR module required).
Shirt size (Core HR module required).
Shirt size (Core HR module required).
Shirt size (Core HR module required).
https://awesome-company.calamari.io/api/people/v2
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://{tenantname}.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-1",
"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": "Skills/Languages spoken/Speaks fluently",
"value": "English"
}
]
}'
{ "id": "2c11e9ec-77d2-49fe-81aa-fab21f7b5aed", "legacyId": 1001 }
Request
This endpoint allows you to partially update a person in Calamari. You can send any number of fields in the request body. Only the fields included in the request will be updated. If a field is set to null
, its value will be removed (if removal is allowed). Fields that are not included in the request will remain unchanged, even if they exist in the system. This means you can send both updated and unchanged fields, but only those explicitly provided in the request will be processed.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
Person's middle name (Core HR module required).
Person's middle name (Core HR module required).
Person's middle name (Core HR module required).
Approval process name or identifier.
Approval process name or identifier.
Approval process name or identifier.
Work schedule name or identifier.
Work schedule name or identifier.
Work schedule name or identifier.
Holidays calendar name or identifier.
Holidays calendar name or identifier.
Holidays calendar name or identifier.
Contract type name or identifier.
Contract type name or identifier.
Contract type name or identifier.
Hire date in ISO 8601 format.
Hire date in ISO 8601 format.
Hire date in ISO 8601 format.
Birthdate in ISO 8601 format (Core HR module required).
Birthdate in ISO 8601 format (Core HR module required).
Birthdate in ISO 8601 format (Core HR module required).
Job position/title name or identifier.
Job position/title name or identifier.
Job position/title name or identifier.
List of team names or identifiers the person belongs to.
List of team names or identifiers the person belongs to.
Describes a person's relationship with a significant other.
Identifier of the direct manager.
Identifier of the direct manager.
Identifier of the direct manager.
End date of probation period (ISO 8601 format).
End date of probation period (ISO 8601 format).
End date of probation period (ISO 8601 format).
External reference number for the person.
External reference number for the person.
External reference number for the person.
GUID from Symfonia system.
GUID from Symfonia system.
GUID from Symfonia system.
Custom note or additional information
Custom note or additional information
Custom note or additional information
Business contact information (Core HR module required).
Business contact information (Core HR module required).
Personal contact information (Core HR module required).
Personal contact information (Core HR module required).
Seniority in months before the hire date.
Seniority in months before the hire date.
Seniority in months before the hire date.
Person's home address (Core HR module required).
Person's home address (Core HR module required).
Emergency contact details (Core HR module required).
Emergency contact details (Core HR module required).
Person's bank account number (Core HR module required).
Person's bank account number (Core HR module required).
Person's bank account number (Core HR module required).
Contractor-related details (Core HR module required).
Contractor-related details (Core HR module required).
Shirt size (Core HR module required).
Shirt size (Core HR module required).
Shirt size (Core HR module required).
List of persons' children (Core HR module required).
Note: Include all active children. The excluded item will be removed.
https://awesome-company.calamari.io/api/people/v2/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
-u <username>:<password> \
'https://{tenantname}.calamari.io/api/people/v2/{id}' \
-H 'Content-Type: application/json' \
-d '{
"email": "john.doe@example.com",
"firstName": "John",
"middleName": "Paul",
"lastName": "Doe",
"approvalProcess": "name:Basic Approval Flow",
"workSchedule": "name:Full-time - 40h",
"holidaysCalendar": "name:Default",
"contractType": "name:B2B",
"hireDate": "2025-01-15",
"birthdate": "1990-06-25",
"sex": "MALE",
"position": "Senior Accountant",
"teams": [
"Accountants",
3
],
"maritalStatus": "SINGLE",
"terminationDate": "2026-12-31",
"directManager": "38715bd3-7ad5-4372-bcff-41a3c933af68",
"probationEndDate": "2025-07-1",
"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": "Skills/Languages spoken/Speaks fluently",
"value": "English"
}
]
}'
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
https://awesome-company.calamari.io/api/people/v2/{id}/archive
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://{tenantname}.calamari.io/api/people/v2/{id}/archive'
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
The person identifier. Supports:
• 24dc4a05-ef40-4c30-9b95-554bf3be8741
(UUID)
• id:12345
(legacy numeric ID)
• number:AO-00710
(external number)
• email:example@local.com
(email address)
Reserved characters in path segments
Any reserved or unsafe character—literal (#
, /
, ?
, space) or percent-encoded (%23
, %2F
, %3F
, %20
, etc.)—will be blocked or truncated by the server at that character and everything after it.
Recommendation
• Use only unreserved characters in path identifiers (no #
, /
, ?
, spaces).
• If an identifier may contain reserved characters, pass it as a query parameter or in the request body instead.
https://awesome-company.calamari.io/api/people/v2/{id}/invite
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://{tenantname}.calamari.io/api/people/v2/{id}/invite'